32

블로그 이미지
by A-HO
  • 121,978Total hit
  • 11Today hit
  • 316Yesterday hit

출처 : http://bubibuba.tistory.com/72

 

1. DC모터 제어하기.

DC모터를 제어하기 위해서는 DC모터 , DC모터 모듈 , 9V전지가 필요합니다.

제어 부분에 대해서는 아래그림을 참고해 주시면 됩니다.



in 핀의 HIGH(또는 아날로그값 ( 0 - 250 ) , LOW 를 조절하여 방향을 원하는대로 조절하는 기능을 가졌습니다.

또한 ENA핀을 HIGH , LOW 로 조절하여 ON/OFF 관리를 할 수 있습니다.


그럼 가변저항을 이용하여 속도를 조절하며 , 버튼을 이용하여 왼쪽 오른쪽 제어하는 소스를 구현해보겠습니다.



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
31
32
33
34
35
// 소스코드 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개를 두어 오른쪽 왼쪽 방향키처럼 제어해보겠습니다.

버튼하나만 더 추가해주시면 됩니다.


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
31
32
33
34
35
36
37
38
// 소스코드 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);
}
}


소스코드를 입력하시고 구동해보시면 됩니다.


버튼 다시는 방법은 제글을 찾아보시면 됩니다.





TRACKBACK 0 AND COMMENT 0

ARTICLE CATEGORY

Category (223)
이집트(09.12.04~.. (89)
Ubuntu 12.0.4 (6)
페도라16 (16)
Window 8 (2)
프로그래밍 (72)
프로젝트 (22)
IT잡다 (2)
제휴문의 (4)
공모전 (4)
Food (1)
인턴 (5)

RECENT TRACKBACK

CALENDAR

«   2014/08   »
          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
31            

ARCHIVE