반응형
오늘은 푸시 버튼을 이용하여 LED와 모터를 제어하는 방법에 대해 알아보겠습니다.
푸시 버튼은 버튼을 누르는 동안 HIGH 값을 가지며 뗄 때 LOW 값을 갖습니다. 일반적으로 네 개의 단자(Terminal)로 구성되며 두 단자간 서로 연결되어 있습니다. 따라서 하나의 단자가 끊어지거나 고장이 나더라도 다른 단자로 충분히 동작 가능합니다. 푸시버튼을 누르면 1번, 2번, 3번, 4번이 모두 연결된 상태가 됩니다.
1) 푸시 버튼으로 LED제어하기
준비물
- 아두이노 우노
- 브레드 보드
- 점퍼선
- 푸시 버튼, LED
회로도
LED는 200옴, 버튼은 10k옴을 연결합니다.
소스코드
void setup(){
Serial.begin(9600);
pinMode(13, OUTPUT); //led 핀
pinMode(7, INPUT); //버튼 핀
}
void loop(){
int readValue = digitalRead(7);
Serial.println(readValue);
if(readValue==HIGH){
digitalWrite(13, HIGH);
}
else{
digitalWrite(13, LOW);
}
}
2) 푸시 버튼으로 DC모터제어하기(선풍기 만들기)
준비물
- 아두이노 우노
- 브레드 보드
- 점퍼선
- 푸시 버튼, DC 모터(선풍기 모듈)
회로도
소스코드
먼저 선풍기 모듈을 테스트해보겠습니다.
- B 방향으로 회전
void setup(){
pinMode(9,OUTPUT); // 9번 핀을 출력핀으로 설정함.
pinMode(8,OUTPUT); // 8번 핀을 출력핀으로 설정함.
}
void loop(){
digitalWrite(9,HIGH); // 9번 핀에 High 신호를 보내면 팬모터의 INB와 연결되어 있기 때문에 B방향으로 회전함.
digitalWrite(8,LOW);
}
- 1초 간격으로 회전방향을 바꿔서 돌도록 합니다.
void setup(){
pinMode(9,OUTPUT);
pinMode(8,OUTPUT);
}
void loop(){
digitalWrite(9,HIGH); // 9번 핀에 High 신호를 보내면 팬모터의 INB와 연결되어 있기 때문에 B방향으로 회전함
digitalWrite(8,LOW);
delay(1000); // 1초 Delay 후
digitalWrite(9,LOW);
digitalWrite(8,HIGH); // 8번 핀에 '1' 신호를 보내면 팬모터의 INA와 연결되어 있기 때문에 A방향으로 회전함
delay(1000);
}
이제 버튼으로 선풍기모듈을 제어해보겠습니다.
int state=0;
void setup(){
pinMode(9,OUTPUT);
pinMode(8,OUTPUT);
pinMode(7, INPUT);
Serial.begin(9600);
}
void loop(){
if(digitalRead(7)==HIGH){
if(state==0){
state=1;
}
else if (state==1){
state=0;
}
}
if (state==1){
digitalWrite(9,HIGH); // 9번 핀에 High 신호를 보내면 팬모터의 INB와 연결되어 있기 때문에 B방향으로 회전함
digitalWrite(8,LOW);
}
else{
digitalWrite(9,LOW);
digitalWrite(8,LOW);
}
}
반응형
'피지컬컴퓨팅 > 아두이노' 카테고리의 다른 글
틴커캐드(Thinkercad)로 회로 시뮬레이션하기 (0) | 2024.03.17 |
---|---|
저항없이 버튼 활용하기(LED, 모터 제어하기-선풍기 모듈) (0) | 2024.03.17 |
부저 활용하기(초음파 센서-에어피아노) (2) | 2024.03.15 |
부저 활용하기(버튼으로 제어-버튼 피아노) (0) | 2024.03.15 |
서보 모터 제어하기(가변저항 이용) (0) | 2024.03.11 |