[아두이노] 아두이노 버튼 선풍기 만들기1- 팬모터 테스트 하기

아두이노는 내 손 안의 작은 컴퓨터, 특정 기능을 반복하여 작동할 수 있게 하는 보드입니다. 이런 아두이노를 이용하여 피지컬 컴퓨팅의 기초를 학습하고 실생활 문제를 해결해 보려고 합니다. 아두이노는 창의적·융합적 사고를 바탕으로 다양한 아이디어를 구현하고 프로그래밍할 수 있는 아주 적합한 보드이며, 컴퓨팅적 사고력을 향상 시킬 수 있는 도구가 될 수 있습니다.


특히, 아두이노는 텍스트 프로그래밍이라 C언어를 모르는 초보자들은 약간 어려울 수 있습니다. 하지만 지금 연재하는 아두이노 시리즈는, 스크래치와 같은 블록형 언어인 엠블럭을 이용해 아두이노 코드로 변환해서 업로드하는 방법을 병행합니다. 따라서 C언어를 몰라도, 프로그래밍에 대해 잘 몰라도 아두이노 코드를 스스로 학습할 수 있게 합니다. 물론 초등학생들까지도 아두이노로 프로그래밍이 가능하도록 쉽게 안내할 예정입니다. 그리고 실제로 작품을 만들어 보는 과정으로 구성하였으니, 따라 하다 보면 간단한 아두이노 제품을 제작할 수 있을 것입니다.


첫 번째 아두이노 시리즈는 '아두이노 버튼 선풍기 만들기' 입니다.


아두이노 버튼 선풍기 만들기 1- 버튼 테스트



'아두이노 버튼 선풍기 만들기'는 아두이노를 사용하고 뭔가 만들기 위해 시작하는 초보자에게 가장 적합한 예제입니다. 아두이노의 기본적인 입출력을 실습하면서, 우리가 진짜 실생활에서 사용하는 선풍기를 만들어 보는 것입니다. 기존 제품인 시중의 선풍기와 기능이 비슷하고 제품 디자인이나 겉모양을 무엇으로 만드느냐에 따라 제품 퀄리티가 달라지며, 만들어 놓고 실제로 사용하기도 한답니다. 초·중·고 학생들도 충분히 만들 수 있는 작품이므로 아두이노 초보자라면 한번 도전해 보시기 바랍니다.


버튼으로 디지털 입력 0과 1을 받아들이고, 그 조건에 맞게 팬모듈 프로펠러에 신호를 보내는 것으로, 이 실습을 통해 아두이노의 디지털 입출력의 기본을 알게 됩니다. 



  1단계 : 프로펠러(펜모터 테스트하기)  


1) 준비물 : 아두이노 우노 1개, usb케이블 1개, 점퍼케이블(암수 4개), 팬모터(L9110 Fan Motor) 1개


2) 부품 자세히 보기


① 프로펠러 모듈 : 팬모터 (L9110 Fan Motor) 1개




 - 아두이노 프로펠러 모듈

 - 모터드라이버 내장 회전방향속도제어 가능

 - 권장전압 : 5V

 - 동작전압 : 2.5 ~ 12V

 - 사용전류 약 300mA

 - 전압에 따라 속도가 조절됨


② 아두이노 UNO와 USB 케이블 1개



아두이노 UNO는 일반적으로 가장 많이 쓰이는 아두이노 기본 보드입니다. 물론 초보자가 사용하기 가장 알맞은 보드입니다. 많은 예제들이 아두이노 UNO를 사용하여 제시되어 있습니다. 그리고 컴퓨터와 연결할 USB 케이블이 필요합니다.


③ 암수 점퍼케이블 4개



점퍼 케이블은 위 사진에서 세 번째 모양은 '암', 두 번째 모양은 '수'입니다. 모듈에 따라 알맞은 종류를 선택해야 합니다. 팬모듈과 아두이노 보드를 연결해야 하므로 암수 케이블(한쪽은 암, 반대쪽은 수, 첫 번째 사진) 4개(4가닥)가 필요합니다.


이제 팬모터가 프로그램에 의해 잘 돌아가나 테스트를 해보기 위해 다음과 같이 연결을 합니다.


  팬모터 연결하기  



점퍼케이블로 팬모터와 아두이노 보드를 회로와 같이 연결합니다. 팬모터 아래를 보면 바닥에 GND, VCC, INA, INB라고 적혀 있습니다. GND는 ground로 '접지'이며, 아두이노 바닥의 GND와 연결합니다. 팬모터의 VCC는 아두이노의 VCC와 연결하며, 5V 전원 공급핀입니다. INA와 INB는 방향에 관한 핀으로 이곳에 디지털 신호를 보내서 방향을 결정합니다. 따라서 아두이노의 숫자가 적힌 (3~13)번 중 아무 핀에 꽂아도 되지만, 예에서는 INA를 아두이노의 8번 핀에, INB를 9번 핀에 연결했습니다.



  팬 모터 테스트를 위한 코드(Code)  


팬모터가 아두이노 프로그램으로 제대로 동작하는지 테스트하기 위하여 위와 같이 연결하고, 아두이노 USB케이블로 아두이노와 컴퓨터를 연결합니다. 그리고 아두이노 스케치를 열고, 다음과 같이 입력을 합니다. 


① 팬모터 회전 Test


  ☞ 한방향으로 계속 회전합니다.( B방향으로 회전) 


void setup()   

    pinMode(9,OUTPUT);  // 9번 핀을 출력핀으로 설정함.

    pinMode(8,OUTPUT);  // 8번 핀을 출력핀으로 설정함.

}


void loop(){    

    digitalWrite(9,HIGH); // 9번 핀에 High 신호를 보내면 팬모터의 INB와 연결되어 있기 때문에 B방향으로 회전함.

    digitalWrite(8,LOW); 

}


아두이노 프로그램의 구조는 setup()과 loop()로 구성됩니다. setup에서는 기본 설정을 해주고, loop에서는 반복되는 동작을 입력합니다. 위의 코드에서는 8번 핀과 9번 핀을 OUTPUT으로 프로펠러에 신호를 내보내는 핀으로 설정하고, loop()에서 9번 핀에 digitalWrite로 HIGH 신호를 보내 프로펠러가 계속 돌아갈 수 있도록 프로그래밍 합니다.


☞ 반대 방향으로 계속 회전합니다.( A방향으로 회전) 


void setup(){    

    pinMode(9,OUTPUT);  // 9번 핀을 출력핀으로 설정

    pinMode(8,OUTPUT);  // 8번 핀을 출력핀으로 설정함.

}


void loop(){    

    digitalWrite(9,LOW); 

    digitalWrite(8,HIGH); // 8번 핀에 High 신호를 보내면 팬모터의 INA와 연결되어 있기 때문에 A방향으로 회전함

}



핀8번과 핀9번에 HIGH와 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,0);        

    digitalWrite(8,1);  // 8번 핀에 '1' 신호를 보내면 팬모터의 INA와 연결되어 있기 때문에 A방향으로 회전함      

    delay(1000);    

 }


신호에서 HIGH와 LOW신호는 디지털 신호이므로 0과 1로 코드를 작성하여도 같은 동작을 하게 됩니다. 마찬가지로 8, 9번 핀을 사용하고, 9번 핀에 HIGH신호를 보내면 9번 방향으로 돌게 됩니다(왼쪽인지 오른쪽인지 회전 방향은 살펴보시기 바랍니다). 그리고 delay 신호를 보내면 1000이라는 숫자는 1초 단위이며, 1초후 반대로 돌아가는 것을 반복하게 됩니다. 


[정리] 아두이노 프로그램 구조는 setup과 loop로 이루어져 있습니다. setup에서는 초기화를 하고 loop에서는 계속 반복되는 동작을 프로그래밍합니다. 위 에서는 팬모터의 초기 설정(setup)에서 8,9번 핀(pinMode)을 출력(OUTPUT)으로 설정 하고, 신호를 넣었을 때(digitalWrite) 해당되는 동작을 반복(loop)합니다.


이 글을 공유하기

댓글

Designed by JB FACTORY