안녕하세요
오늘은 아두이노 스위치 모듈을 이용하여 팬 모듈을 제어하는 방법을 소개해드리겠습니다
간단소개
자 오늘 구현하고자 하는 것은 사진과 같습니다.
1. 평상시에는 팬이 정지 상태
2. 왼쪽 스위치를 누르면 팬이 시계 방향으로 회전
3. 오른쪽 스위치를 누르면 팬이 반시계 방향으로 회전
핵심부품
아두이노 팬 모듈[L9110-FAN-MODULE]
L9110과 모터가 탑재된 모듈로 모터와 팬이 연결되어 있고,
별도의 모터 쉴드 없이 제어가 가능합니다.
2.5V ~ 12V로 제어 가능하며,
입력 전압에 따라 모터의 속도가 달라집니다.
L9110 팬 모듈의 동작 원리
INA |
INB |
결과 |
LOW |
LOW |
모터 정지 |
LOW |
HIGH |
반시계 방향 |
HIGH |
LOW |
시계 방향 |
HIGH |
HIGH |
모터 정지 |
아두이노 택트 스위치 모듈[HS-TACT-SWITCH_MODULE]
전원을 입력한 후 버튼을 누르면 출력핀을
통해 1 또는 0의 디지털 신호가 출력되는
스위치 모듈입니다.
스위칭을 해야하는 프로젝트에 활용할 수 있습니다.
(VCC와 GND를 반대로 연결하면 버튼을 누를 때 출력되는 신호가 반대로 변경됩니다.)
※누를때 변경이 되는게 아니라 누르고 있는 동안에만 신호가 변경 됩니다!!
부품 목록
회로도
소스코드
int button1 = 0; //시계 방향 스위치
int button2 = 0; //반시계 방향 스위치
int INA = 9; //INA 변수 설정
int INB = 8; //INB 변수 설정
void setup() {
pinMode(3, INPUT); // 디지털 3번핀을 입력모드로 설정 - 시계방향
pinMode(4, INPUT); // 디지털 4번핀을 입력모드로 설정 - 반시계방향
pinMode(INA,OUTPUT); // INA pinMode 설정
pinMode(INB,OUTPUT); // INB pinMode 설정
Serial.begin(9600); // 시리얼 통신을 시작하며, 속도는 9600으로 설정
}
void loop() {
button1 = digitalRead(3); //디지털 3번핀을 읽어서 button1 변수에 저장
button2 = digitalRead(4); //디지털 4번핀을 읽어서 button2 변수에 저장
if(button1 == 1){
//시계 방향
digitalWrite(INA,HIGH);
digitalWrite(INB,LOW);
Serial.println("시계 방향");
} else if(button2 == 1) {
//반시계 방향
digitalWrite(INA,LOW);
digitalWrite(INB,HIGH);
Serial.println("반시계 방향");
} else {
//모터 정지
digitalWrite(INA,LOW);
digitalWrite(INB,LOW);
Serial.println("모터정지");
}
delay(1000); // 1초 대기
}
구현영상을 참고해서 돌려보시면 스위치를
누르거나 가만히 있을때 시리얼 모니터에 아래와 같이 나타납니다.
구현영상
이상입니다 감사합니다.
'프로그래밍 > 아두이노[Arduino]&라즈베리파이[Raspberry Pi]' 카테고리의 다른 글
[아두이노] 빗물감지센서 모듈을 사용하여 LCD에 센서값을 표시하기 + LED 제어 (0) | 2019.04.26 |
---|---|
[아두이노] 수위센서[Water sensor]모듈을 사용하여 LCD에 센서값을 표시하기 + LED 제어 (0) | 2019.04.26 |
[아두이노] 1채널 릴레이(Relay) 모듈 간단 사용법(LED 제어) (0) | 2019.04.25 |
[아두이노]스위치 모듈과 모터 드라이브로 미니 워터 펌프 사용하기 (0) | 2019.04.25 |
[아두이노] 디지털 온습도 센서 DHT11로 온도/습도 확인하기! (0) | 2019.04.24 |