본문 바로가기

프로그래밍/아두이노[Arduino]&라즈베리파이[Raspberry Pi]

[아두이노] 스위치 모듈을 이용한 팬 모듈 제어하기



안녕하세요
오늘은 아두이노 스위치 모듈을 이용하여 팬 모듈을 제어하는 방법을 소개해드리겠습니다


간단소개

 

 

자 오늘 구현하고자 하는 것은 사진과 같습니다.


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초 대기
}

 

구현영상을 참고해서 돌려보시면  스위치를 

 

누르거나 가만히 있을때 시리얼 모니터에 아래와 같이 나타납니다.

 



구현영상

 

 

이상입니다 감사합니다.