# 목적
- 가변저항으로 서보모터 회전시키기
# 준비물
- 가변저항, 서보모터, 100uF 캐패시터, 점퍼케이블, 아두이노, 브래드보드
# 입출력 설명
- 입력 : 저항 값(아날로그 값, 0~1023)
- 처리 : 저항 값을 읽어(analogRead), 값의 범위를 0~1023 에서 0~179로 변환한 뒤, 서보모터의 회전 값으로 쓰기(write)
- 출력 : 서보모터의 회전 각도(PWM, 0~179)
# 회로도
(간편버전)
(안정화버전)
# 코드
## 아두이노 (arduino)
#include <Servo.h>
Servo myServo;
int potPin = A0;
int potVal;
int angle;
void setup() {
myServo.attach(9);
Serial.begin(9600);
}
void loop() {
potVal = analogRead(potPin);
Serial.print("potVal: ");
Serial.print(potVal);
angle = map(potVal, 0, 1023, 0, 179);
Serial.print(", angle: ");
Serial.println(angle);
myServo.write(angle);
delay(15);
}
## 코드아이플러스 (codeiPlus)
# 참고자료
* Arduino Projects Book
# 코드 (led 추가)
#include <Servo.h>
Servo myServo;
int potPin = A0;
int ledPin = 13;
int potVal;
int angle;
int ledVal;
void setup() {
myServo.attach(9);
pinMode(ledPin, OUTPUT);
}
void loop() {
potVal = analogRead(potPin);
angle = map(potVal, 0, 1023, 0, 179);
myServo.write(angle);
ledVal = map(potVal, 0, 1023, 0, 255);
analogWrite(ledPin, ledVal);
delay(15);
}