1. DC모터 제어하기.
DC모터를 제어하기 위해서는 DC모터 , DC모터 모듈 , 9V전지가 필요합니다.
제어 부분에 대해서는 아래그림을 참고해 주시면 됩니다.
in 핀의 HIGH(또는 아날로그값 ( 0 - 250 ) , LOW 를 조절하여 방향을 원하는대로 조절하는 기능을 가졌습니다.
또한 ENA핀을 HIGH , LOW 로 조절하여 ON/OFF 관리를 할 수 있습니다.
그럼 가변저항을 이용하여 속도를 조절하며 , 버튼을 이용하여 왼쪽 오른쪽 제어하는 소스를 구현해보겠습니다.
// 소스코드 1 // 버튼하나를 이용한 DC모터제어 int P1 = 10; // IN1 Pin int P2 = 11; // IN2 Pin int onOff = 9; // on/off (ENA Pin) int btn = 2; // Left & Right Select Button Pin int sensorPin = A0; // SensorPin int sensorValue = 0; // Input Sensor Value int val=0; // Sensor Value Mapping int btn_state = 0; void setup(){ pinMode(10,OUTPUT); pinMode(11,OUTPUT); pinMode(onOff,OUTPUT); pinMode(btn , INPUT); } void loop(){ btn_state = digitalRead(btn); digitalWrite(onOff , HIGH); //onoff sensorValue = analogRead(sensorPin); val = map(sensorValue , 0, 1023, 0, 250); if(btn_state == HIGH){ analogWrite(P1 , val); digitalWrite(P2 , LOW); }else{ analogWrite(P2 , val); digitalWrite(P1 , LOW); } }
소스만 올리고 회로도가없어서 주석을 추가적으로 달았습니다.
아두이노는 한글에 너무 약해서 한글주석도 달기 힘드내요.
위와같이 소스를 구현하시면 아래처럼 작동합니다.
조금 더 응용을 해보아서 버튼 2개를 두어 오른쪽 왼쪽 방향키처럼 제어해보겠습니다.
버튼하나만 더 추가해주시면 됩니다.
// 소스코드 2 // 버튼두개를 이용한 DC모터제어 int P1 = 10; int P2 = 11; int onOff = 9; int btn1 = 2; int btn2 = 3; int btn_state1 = 0; int btn_state2 = 0; void setup(){ pinMode(10,OUTPUT); pinMode(11,OUTPUT); pinMode(onOff,OUTPUT); pinMode(btn1 , INPUT); pinMode(btn2 , INPUT); } void loop(){ btn_state1 = digitalRead(btn1); btn_state2 = digitalRead(btn2); digitalWrite(onOff , HIGH); //onoff if(btn_state1 == HIGH && btn_state2 == LOW ){ digitalWrite(P1 , HIGH); digitalWrite(P2 , LOW); }else if(btn_state1 == LOW && btn_state2 == HIGH){ digitalWrite(P2 , HIGH); digitalWrite(P1 , LOW); }else{ digitalWrite(P2 , LOW); digitalWrite(P1 , LOW); } }
버튼 다시는 방법은 제글을 찾아보시면 됩니다.
'Programming > Arduino' 카테고리의 다른 글
이더넷 포트를 통한 아두이노 제어하기 (1) | 2013.03.25 |
---|---|
아두이노를 이용한 온도,습도,조도 제어 및 LCD , 7segment 로 출력하기. (1) | 2013.01.29 |
소리를 이용한 LED를 ON/OFF하기 (0) | 2013.01.22 |
초음파 센서를 이용한 차량 후방 감지기 구현 (2) | 2013.01.22 |
74HC595를 이용한 3핀->8핀 만들기 (1) | 2013.01.17 |