안녕하세요 이번에는 스위치 모듈을 이용하여 모터드라이브와 미니 워터 펌프를 사용해보고자 합니다.
간단하게 설명드리자면 택트 스위치를 눌렀을때, 모터드라이브를 통해서 미니 워터 펌프가 작동 시키는 것이 주 목적 입니다.
핵심 부품
아두이노 L9110 듀얼 모터 드라이버 모듈
[L9110 Dual H-Bridge Motor Controller module]
- 아두이노회로 만으로는 DC모터에 충분한 전류의 양을 공급할 수 없고, 전류의 제어가 어렵고 복잡합니다.
- 모터 드라이버는 DC모터를 쉽게 제어 할 수 있도록 돕습니다. - 하나의 모터 드라이브는 2개의 모터를 제어할 수 있습니다.
- 모터 드라이버에는 모터를 제어하기 위한 H브릿지라는 칩이 있습니다. 발열이 심하여 검은색 방열판이 달려 있습니다.
아두이노 미니 워터 펌프 [HS-WATER PUMP]
- 빨간색이 +, 검은색이 -입니다.
- 밑에 부분으로 물을 빨아들이고 옆의 구멍으로 물을 배출합니다
아두이노 택트 스위치 모듈[HS-TACT-SWITCH_MODULE]
전원을 입력한 후 버튼을 누르면 출력핀을 통해 1 또는 0의
디지털 신호가 출력되는 스위치 모듈입니다.
스위칭을 해야하는 프로젝트에 활용할 수 있습니다.
(VCC와 GND를 반대로 연결하면 버튼을 누를 때 출력되는 신호가 반대로 변경됩니다.)
※누를때 변경이 되는게 아니라 누르고 있는 동안에만 신호가 변경 됩니다!!
부품 목록
회로도
1. 아두이노 우노보드의 5V 와 브레드 보드의 + 에 연결 합니다.
2. 아두이노 우노보드의 GND 와 브레드 보드의 - 에 연결 합니다.
3. 스위치 모듈의 VCC, GND 를 브레드 보드의 +, -에 각각 연결합니다.
4. 스위치 모듈의 OUT 과 아두이노 우노보드의 Digital 4번 핀에 연결합니다.
5. 모터 드라이브의 VCC, GND 를 브레드 보드의 +, -에 각각 연결합니다.
6. 모터 드라이브의 A-1A와 Digital 11번 핀에 연결합니다.
7. 모터 드라이브의 A-1B와 Digital 12번 핀에 연결합니다.
8. 모터 드라이브 MOTOR A에 미니 워터 펌프를 연결합니다.
(모터 드라이드를 사용하기 때문에 선 구분 상관없습니다.)
소스코드
int A_1A = 11; //모터드라이브 A_1A 핀 변수 선언
int A_2A = 12; //모터드라이브 A_1B 핀 변수 선언
void setup()
{
pinMode(4, INPUT); //스위치 모듈의 pinMode 선언
pinMode(A_1A, OUTPUT); //모터드라이브 A_1A의 pinMode 선언
pinMode(A_2A, OUTPUT); //모터드라이브 A_1B의 pinMode 선언
}
void loop(){
int button = digitalRead(4); //스위치 모듈의 값을 읽음.
if(button == 1){ //스위치 모듈을 누르면 값이 1로 변경이됨.
pump(1); //pump 함수 호출
} else{
stop(); //스위치 모듈을 누르고 있지 않은 경우 모터 멈춤
}
delay(1000); //지연 1초
}
void pump(int flag)
{
boolean inPin1 = HIGH;
boolean inPin2 = LOW;
if(flag == 1){
inPin1 = HIGH; //서로 값이 달라야 정방향, 역방향 회전
inPin2 = LOW; //혹시나 모터가 약하다 싶으면 역방향 회전이므로
//inPin1과 inPin2의 값을 서로 바꿔준다.
}
digitalWrite(A_1A, inPin1); //워터 펌프 A_1A에 write
digitalWrite(A_2A, inPin2); //워터 펌프 A_1B에 write
}
void stop(){
digitalWrite(A_1A, LOW); //A_1A와 A_2A 둘다 LOW 면 모터가 멈춤
digitalWrite(A_2A, LOW);
}
구현영상을 참고해서 돌려보시면
스위치를 누르거나 가만히 있을때 시리얼 모니터에 아래와 같이 나타납니다.
구현영상
이상입니다 감사합니다.
'프로그래밍 > 아두이노[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 |