가변저항(Potentiometer)
Potentiometer
출처: https://www.aliexpress.com/item/32846573934.html
가변저항으로 5v연결시 0~1023 의 값을 얻을 수 있다 (analogRead)
과거 라디오 볼륨조절에 많이 사용되었으나, 현재는 전자식이 많아 보기힘듦
pinMap
VCC, GND, A0 ~ A5 에 연결해서 사용
Sample Code
#define readPin A0
void setup()
{
Serial.begin(9600);
}
void loop()
{
int nRead = analogRead(readPin);
//map
int convert = map(nRead, 0, 1023, 0, 180);
Serial.print("A0: ");
Serial.println(nRead);
Serial.print("Convert: ");
Serial.println(convert);
delay(100);
}
읽어들인 아날로그 값을 Serial로 출력하는 예제
map 을 사용해서 0~1023 값을 180도로 변경한 값도 볼 수 있다
PWM
출처: https://www.theengineeringprojects.com/2018/12/how-to-use-analogwrite-in-arduino.html
디지털핀(우노보드) ~3,~5,~6,~9,~10,~11 에 해당하며
analogWrite를 이용해서 0~255 값을 사용할 수 있다
Sample Code
#define ledPin 11
void setup()
{
Serial.begin(9600);
pinMode(ledPin, OUTPUT);
}
void loop()
{
/* PWM Test */
int i=0;
unsigned long wait = 100L;
for(i = 0; i< 255; i++){
analogWrite(ledPin, i);
delay(wait);
}
for(i = 255; i > 0; i--){
analogWrite(ledPin, i);
delay(wait);
}
}
PWM핀을 사용해서 Led의 밝기조절하는 예제
사용하는 보드가 ~10 핀이 고장났나 PWM이 안되서 ~11을 사용
Servo motor
출처: https://www.aliexpress.com/item/4000595327297.html
0~180도를 회전하는 모터
pinMap
출처: https://www.allaboutcircuits.com/projects/servo-motor-control-with-an-arduino/
VCC, GND, PWM 핀에 연결하면 된다
Sample Code
#include <Servo.h>
#define servoPin 9
Servo servo;
void setup()
{
Serial.begin(9600);
servo.attach(servoPin);
}
void loop()
{
int i=0;
unsigned long wait = 100L;
/* Servo Test */
for (i = 0; i < 180; i++){
servo.write(i);
delay(wait);
}
for (i = 180; i > 0; i--){
servo.write(i);
delay(wait);
}
}
0~180도를 일정간격으로 회전하고 복귀하는 예제
Potentiometer + Servo motor Combination
Test Video(Youtube)
Sample Code
#include <Servo.h>
#define servoPin 9
#define ledPin 11
#define readPin A0
Servo servo;
void setup()
{
Serial.begin(9600);
servo.attach(servoPin);
pinMode(ledPin, OUTPUT);
}
void loop()
{
int nRead = analogRead(readPin);
//map
int servoDegree = map(nRead, 0, 1023, 0, 180);
int ledDegree = map(nRead, 0, 1023, 0, 255);
analogWrite(ledPin, ledDegree);
servo.write(servoDegree);
}
가변저항값을 map으로 0~180로 변환해서
Servo motor를 제어하는 예제
덤으로 PWM Led도 같이 있다
Ref
potentiometer
PWM
map
servo motor