티스토리 뷰
모터란 전기에너지를 기계(회전)에너지로 바꿔줍니다. 전기가 모터 안으로 들어가 회전체에 감겨있는 구리선을 흐르면 회전체는 전자석이 됩니다. 이 전자석과 모터의 껍데기 안에 있는 자석과 작용하여 회전체는 돌아 갑니다. 일단 회전하면 이 힘을 이용해 다양한 기계를 만들 수 있습니다. 모터는 DC(직류) 모터와 AC(교류) 모터가 있습니다. 아두이노에서는 주로 DC모터를 사용합니다.
<그림 1> Arduino DC Motor
DC 모터
직류전원을 사용하는 DC 모터는 구조가 단순하고 가격이 저렴합니다. 배터리에서 나오는 직류 전원을 바로 사용하기 때문에 전원연결도 간편합니다. 저희가 일반적으로 사용하는 제품에 들어있는 것은 대부분 DC 모터라고 보시면 됩니다. 선풍기, 컴퓨터 냉각 팬, RC 카 등에 사용됩니다.
<그림 2> DC 모터 작동 원리
(출처: 위키피디아 DC 모터)
위 그림은 DC 모터의 구동원리를 설명한 것 입니다. 회전체(회전자)에 직류전류가 계속 공급되고 있습니다. 전자석으로 변한 회전자는 모터 껍데기(고정자)에 있는 자석과 반응해 회전하게 됩니다. 회전하면 배터리와 닿아 있는 극이 바뀌고 전류방향도 바뀝니다. 이로서 계속 회전하는 것을 볼 수 있습니다.
DC 모터 사용하기
<그림 3> 인터넷에서 판매하는 DC Motor 세트
DC 모터는 사용 방법이 쉽습니다. 전류를 적게 주면 살살 돌고 많이 주면 쎄게 돕니다. 회전 방향을 바꾸려면 전류의 방향을 반대로 주면 됩니다. 아두이노에서 모터를 사용할 때는 주로 모터 드라이버를 같이 사용합니다. 저용량 모터는 아두이노의 출력으로 사용할 수 있지만, 대부분의 모터는 그것만으로 부족하기 때문에 외부 전원을 사용해야 합니다. 이 때 드라이버가 있어야 외부 전원의 크기와 방향을 제어할 수 있습니다.
L9110 모터 드라이버
<그림 4> L9110 모터 드라이버
L9110 모터 드라이버는 사용법이 간편하고 가격이 저렴합니다. 드라이버 한 개로 모터를 2개까지 제어 할 수 있습니다. 입력 단에는 모터를 전원을 공급할 전원 핀과 전류의 크기와 방향을 제어할 제어 핀이 있습니다. 전원 핀에는 아두이노나 외부 전원을 연결하면 됩니다. 테스트 구동 시에는 아두이노 전원을 사용해도 됩니다. 하지만 자동차 같은 제품을 움직일 때는 많은 전원이 필요하니 외부 전원을 사용해야 합니다. 전원을 연결한 후 사용할 모터에 맞춰 입력 핀을 연결하면 됩니다. 아두이노 출력 핀 중 PWM 기증이 있는 핀을 사용합니다.
<그림 5> L9110 모터 드라이버 설명
DC 모터 회로연결
<그림 6> 아두이노 DC 모터 회로
완성된 코드
void setup() { pinMode(5, OUTPUT); // 5번핀 출력모드 pinMode(6, OUTPUT); // 6번핀 출력모드 } void loop() { analogWrite(5, 0); // 5번핀 0(0V) 출력 analogWrite(6, 150); // 6번핀 150(3V) 출력 (아두이노 Vcc 5V x 150/225) analogWrite(5, 150); // 5번핀 150(3V) 출력 analogWrite(6, 0); // 6번핀 0(0V) 출력 delay(3000); // 3초간 대기 후 반복 }
모터를 돌린 후 다시 방향을 바뀌 돌리는 간단한 코드 입니다. DC 모터를 제어할 때는 analogWrite 명령어를 사용합니다. analogWrite 명령의 괄호는 첫 번째 글짜가 사용할 핀 번호, 그리고 두 번째가 펄스 크기 입니다.
회전력 제어: 0이 최소 값이고 255가 최대 값입니다. 여기서는 150을 사용했으니 모터 드라이버가 입력 받은 전원인 Vcc 5V의 (150 / 255)배인 약 3V가 입력됩니다.
회전 방향 제어: 모터 드라이버의 제어핀에 연결된 5번, 6번 핀의 출력에 따라서 방향이 결정됩니다. 처음에는 5번 핀이 0, 6번 핀이 155였다가 그 후 5번 핀에 155, 6번 핀에 0이 출력됩니다. 이렇게 드라이버의 제어 핀 중 어떤 것이 입력 받느냐에 따라 모터 회전 방향이 결정됩니다.
'아두이노' 카테고리의 다른 글
[아두이노] 시리얼 모니터로 DC모터 제어 (2) | 2019.01.22 |
---|---|
[아두이노] LED 색깔 별 특성 (1) | 2019.01.18 |
[아두이노] Web Editor 사용하기 (2) | 2019.01.16 |
[아두이노] RGB(3색) LED 사용하기 (3) | 2019.01.15 |
[아두이노] LED 저항 계산하기 (2) | 2019.01.11 |
- Total
- Today
- Yesterday
- 4 원칙
- Scrum
- Step Motor
- 습도
- agile
- 온도
- Solar Sharing
- DHT22
- relay
- dc 모터
- 릴레이
- 애자일
- 스크럼
- Fading LED
- 태양광
- LED
- 아두이노
- 초음파센서
- 태양광 공유
- 서보모터
- Potentiometer
- Solar Panel
- DC Motor
- solar
- dht
- Renewable
- Arduino
- 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 | 29 | 30 |