아두이노 코딩-164: 앱인벤터 Slide Bar로 아두이노 LED AnalogWrite

codingart(66)
Published in
#kr
Words
562
Reading
3 min
Listen
Play
8y

noname01.png

앱인벤터에서 0∼100까지 움직이는 슬라이드 바를 사용하여 블루투스에 의해서 아두이노 우노 디지털 핀 9번에 설치된 LED 밝기를 조절해보자.
digitalWrite 명령으로 단순한 LED ON OFF가 가능하지만 LED 의 밝기를 조절하기 위해서는 analogWrite 명령을 사용해서 0∼127까지의 밝기를 조절할 수 있다.

한편 앱 인벤터에서 slide 요소를 사용함에 있어서 그 범위를 0∼100까지의 범위가 아닌 0∼127 까지를 사용하게 되면 정수가 아닌 실수 값이 생성되어 블루투스 전송상의 통신 에러가 발생하게 된다. 이러한 점을 감안하여 0∼100까지의 범위만을 사용하여 아두이노에서의 LED 의 밝기 범위를 조금 희생하도록 하자. 우리으 감각으로는 거의 느끼지 못할 정도이니 아무런 염려를 할 필요가 없을 것이다.

#아두이노 배선

LED 두 리드 선중 길이가 긴 의 양극은 디지털 핀 9번에 음극과 220Ω저항을 직렬 연결하여 GND(0V) 에 배선한다. dl 전류제한 저항을 연결하지 않고 직접 배선하는 경우 밝기가 더욱 밝아지며 전류가 많이 흐르게 되어 수명이 감소하거나 탈 수도 있음에 유의하자.

블루투스 보드 HC-06 배선은 보드 뒷면 핀을 보고 배선도와 같이 정확하게 배선하도록 하자. RX TX 배선을 정확하게 하지 않으면 HC-06 보드가 훼손될 수도 있다. 아두이노에서 핀번호 0번과 1번은 각각 RX, TX 로 명명되어 있다.

noname02.png

반면에 HC-06에서는 TXD와 RXD가 아두이노의 RX, TX에 각각 연결됨에 유의하자.
한가지 더 주의할 점은 아두이노 IDLE에서 컴파일 업로딩 할 때에는 반드시 RX, TX 핀을 빼 놓은 상태에서 하도록 한다. 컴파일 업로딩이 끝난 후 이 두 핀을 다시 끼우도록 하며 앱인벤터와 Pairing 이 되기 전까지는 LED 가 점멸하는 상태로 나아 있는다.

앱 인벤터 Designer 코딩

앱인벤터 리모우트 콘트롤을 위해 필요한 팔레트 요소는 다음의 그림과 같다.

noname03.png

ListPicker 는 블루투스 페어링 과정에서 체크되는 주변에 깔린 다수의 블루투스 기기들의 리스트를 선택하는 역할을 한다.
HorizonatalArrangement 박스는 클릭을 위한 버튼이나 문자표시를 위한 라벨을 넣어 두는 서랍장으로 보면 된다.
하나의 버튼이 필요하다. “After setting slide bar, AnalogON” 설명 그대로 이다. 슬라이드 바를 조정한 후 이 스위치를 클릭하면 아두이노에서 수행할 analogWrite 명령의 밝기 값이 정수 형태로 HC-06을 통해 전달 된다.
Brightness 라벨은 slide bar setting 후 그 값을 디스플레이 하는 곳이다.
아울러 컴포넨트의 요소들은 끌어다 놓은 후 Rename 버튼을 이용해 사용자가 좋아하는 이름으로 편집하도록 한다.

버튼과 라벨 및 슬라이더는 디자이너 창 가장 오은쪽의 속성 창에서 배경색이라든지 폰트 크기 또는 굵기 등을 지정하고 Text 박스에서 사용자가 원하는 명칭으로 입력하도록 한다.
특히 slide bar 속성창에서는최소 최대 값을 각각 0과 100으로 입력하고 ThumPosition 값을 100 으로 입력한다. 이 값을 바꿀 경우 소숫점으 ㄹ가지는 실수 값 발생으로 인해 통신 실패가 발생하므로 반드시 지키도록 하자.

앱 인벤터 Blocks 코딩

ListPicker1.BeforePicking 단계에서는 스마트폰 블루투스 지정 화면에서 찾기 과정을 통해 출력되는 리스트 목록 중에서 등록된 블루투스 어드레스와 디바이스 이름을 가져온다.

이 과정이 성공적으로 완료되면 즉 ListPicker.AfterPicking 단계에서 “Connected with Arduino” 라는 메시지를 출력하게 된다.

noname05.png

다음그림을 참고해서 퍼즐 요소를 끄집어 내어 맞추도록 하자.

noname04.png

블루투스 연결을 위한 두 개의 퍼즐 뭉치는 마우스 오른 쪽 버튼 메뉴에서 Collapse 명령을 사용하여 압축하였다. 원상 복구를 위해서는 오른 쪽 버튼 메뉴의 Expand Block을 사용하기 바란다.

Blocks 편집 작업이 끝났으면 Designer 로 빠져 나와 파일을 저장하고 Connect 탭에서 AI Companion 을 클릭하여 QR 코드를 스캔해서 앱 인벤터를 실행하도록 한다.

아울러 아두이노에서는 컴파일 업로딩이 완료되었으면 반드시 HC-06으로부터의 배선을 정확하게 아두이노의 RX,TX 즉 0번과 1번에 점퍼선을 끼우도록 한다.
블루투스 보드의 LED 가 점멸하면 스마트폰의 위단 Arduino LED Dimmer를 눌러 디바이스 페어링 넘버가 나타나면 눌러서 페어링 작업을 완료시키도록 한다.
Pairong 이 완료되면 LED 점멸이 멈추게 된다.

마지막으로 슬라이드바를 움직인 후 AnalogON 수위치를 누르면 LED 밝기가 변하는 것을 볼 수 있을 것이다.
지금 현재 코드 구조로는 슬라이드 바를 움직임에 따라 연속적으로 밝기를 조절할 수는 없다. 또 한번의 코딩 기술 업그레이드가 필요한 지점인 듯하다.

이번 코딩은 앱인벤터 나 아두이노 각각의 코딩 매우 쉬우나 양측의 인터페이스가 정확해야 하므로 난이도가 매우 높아 보인다는 점을 참고하기 바란다.