티스토리 뷰
서보모터는 입력한 각도만큼 회전하는 모터입니다. 프로그램에 각도를 미리 지정해도 되지만, 만약 외부 입력장치를 이용한다면 실시간으로 모터를 제어할 수 있습니다. 오늘은 입력 장치 중 가장 간단한 포텐셔미터로 서보모터를 제어해 보겠습니다.
<그림 1> 아두이노, 포텐셔미터, 서보모터
포텐셔미터
포텐셔미터(Potentiometer)는 사용자가 조작해서 내부 저항을 바꿀 수 있는 부품입니다. 흔히 가변저항이라 부르기도 합니다. 저항에 따라 받은 전압 중 일부분을 내보냅니다. 핀이 3개인데 각각 입력, 출력, GND 입니다. 아두이노의 5V를 입력으로 받았다고 가정해 보겠습니다. 포텐셔미터를 돌려 최소로 맞추면 0V가 출력되고, 최대면 5V가 출력됩니다. 이렇게 손잡이를 돌려가며 출력값을 바꿀 수 있고 이 값을 아두이노로 읽어 사용할 수 있습니다. 이번 회로에서는 모터의 동작을 제어하는 데 쓰였지만, 볼륨 조절이나 LED 밝기 조절에 쓸 수도 할 수 있습니다.
<그림 2> 포텐셔미터
(출처: 위키피디아)
완성된 회로
<그림 3> 포텐셔미터로 서보모터 제어하기 회로
완성된 코드
#include <Servo.h> //servo motor library Servo servo; int potentio = 0; //Get potential meter input at A0 int val; void setup() { servo.attach(9); //Servo motor control with pin9 } void loop() { val = analogRead(potentio); val = map(val, 0, 1023, 0, 180); //mapping 0-1023 potentiometer input to 0-180 degree servo motor angle servo.write(val); delay(15); }
코드 중간에 map 함수가 나옵니다. 두 범위 값을 대응시켜 주는 함수 입니다. 아두이노는 아날로그 핀으로 입력된 전압을 1023으로 나누어 그 크기를 읽습니다. 서보모터는 0-180중 입력된 각도에 맞춰 돌아 갑니다. (0 : 1023 = 0 : 180)으로 맞추고 나면 아날로그에 입력된 값에 맞춰 비례적으로 서보모터를 돌릴 수 있습니다.
작동 모습
<그림 4> 포텐셔미터를 돌려 서보모터 각도를 조절하는 모습
'아두이노' 카테고리의 다른 글
[아두이노] 스텝 모터 사용하기 (4) | 2019.02.01 |
---|---|
[아두이노] LED 서서히 켜고 끄기 (0) | 2019.01.24 |
[아두이노] 시리얼 모니터로 DC모터 제어 (2) | 2019.01.22 |
[아두이노] LED 색깔 별 특성 (1) | 2019.01.18 |
[아두이노] DC모터 사용하기 (3) | 2019.01.17 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- agile
- Solar Sharing
- 아두이노
- 태양광 공유
- 초음파센서
- 온도
- DHT22
- LED
- 태양광
- Fading LED
- Renewable
- 코딩
- Arduino
- dc 모터
- 습도
- DC Motor
- Scrum
- 릴레이
- 시리얼 모니터
- 서보모터
- dht
- Step Motor
- solar
- Potentiometer
- Solar Panel
- 애자일
- 4 원칙
- 스크럼
- relay
- Stepper Motor
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
글 보관함