아두이노 TX 깜빡임 - adu-ino TX kkamppag-im

아두이노 정상유무 확인

05.15.2012, arduino, by .

아두이노와 PC도 연결이 되었다.

그러면 우리의 아두이노가 불량인지 아닌지는 확인해봐야 할것이다.

불은 들어오는데 저것이 정상 동작인지도 모르겠고… ^^;

아두이노는 프로그램을 짜는 것을 스케치라고 한다.

아두이노의 예제로 있는 간단한 스케치로서 아두이노가 제대로 동작하는지 보자.

아두이노와 USB케이블만 있다면 가능하다.

아두이노 보드에 있는 LED를 1초 간격으로 on/off를 하는 것임으로 주위 다른 외부 장치가 필요 없다.

우선 그냥 따라만 해보자.

우선 아두이노를 USB와 연결하게 되면 오른쪽에 ON이라고 쓰여 있는 부분의 LED가 연두색으로 빛나고 있을 것이다.

이는 전원이 정상적으로 들어오고 있음을 나타낸다.

File에 Examples / 1.Basics / Blink 를 선택하자.

그러면 프로그램을 직접 입력할 필요없이 새창을 통해 자동으로 예제가 나올것이다.

이런 세심한 배려…

너무 좋다~ ^^;

그리고 프로그램의 상단에 아이콘중에 체크 모양을 눌러주자.(프로그램의 설명은 다음 기회에 설명하도록 하겠다. 지금은 그저 따라만 가보자…)

아래의 옥색 부분에 Done compiling.이 나오고 검은 부분에 또 다른 얘기들이 나온다.

그리고나면 아까 체크 모양의 아이콘 옆에 있는 오른쪽 화살표를 클릭하자.

만약 Done uploading.라고 나왔다면 아두이노로 정상적으로 프로그램을 보냈음을 의미한다.

이때 아두이노 보드의 Tx, Rx LED가 깜빡일것이다.

이는 컴퓨터와 아두이노가 데이터를 서로 주고 받았다는 것이다.

정상적으로 데이터를 보냈다면 상단에 있는 L이라는 LED가 1초 간격으로 On/Off를 반복할것이다.

아두이노 보드가 정상적으로 동작을 한다는 뜻과도 같다.

프로그램의 설명은 다음에 하도록 하겠다.

아두이노를 성공적으로 PC와 연동하고 샘플 스케치를 통해 아두이노의 정상동작 여부도 살펴보았다.

이제 진정 시작이다.

아두이노 소프트웨어 설치 아두이노 스케치 프로그램

아두이노 TX 깜빡임 - adu-ino TX kkamppag-im

Arduino를 컴퓨터와 연결하면, 오른쪽의 녹색 전원과 가운데 상단의 L 표시 옆의 라이트가 오랜지색으로 불이 들어온 것을 확인할 수 있다. 이는, Arduino에 업로드 된 코드 내용이 default(초기값)일 경우에 나타나는 현상이라고 보면 된다. 즉, void setup()과 void loop()의 중괄호 안에, 어떠한 코드도 없는 경우를 말한다. 이제 이 두 함수에 코드를 집어넣어, 보드의 특정 불이 반짝반짝 빛나도록 만들어 볼 예정이다.

* 참고:  Arduino 코드 언어는 C 기반의 언어다. 따라서 C를 어느 정도 알고 있다면 코딩 상에 발생하는 에러를 쉽게 해결할 수 있다. C를 잘 모르시는 분들이라면 기초 문법이라고 훑어보실 것을 추천한다. 

1. 보드 라이트와 핀

아두이노를 정면에서 바라보면, 상단에 1부터 13까지 숫자가 적힌 부분이 있다. 이를 Pin이라고 하는데, 이 pin을 통해 Arduino의 동작을 제어하게 된다. 

아두이노 좌측, L 라이트는 13번 핀에 의해 동작한다. 따라서, 13번 핀으로 전기 신호의 입출력을 조절할 수만 있다면, 보드의 L 라이트가 깜빡거리도록 만들 수 있다는 것이다.

L 라이트 밑에 TX와 RX라고 씌여진 라이트도 보이는데, TX는 1번 핀에 의해 작동된다(아마 Transmission의 약자가 아닐까 싶다). 따라서 핀 번호 1번으로 전기 신호의 입출력을 조절할 수 있다면 L 라이트가 아닌 TX 라이트가 깜빡거리게 된다.

* 필자는 메뉴얼이 따로 없어서 노가다로 이것저것 실험 중이다. RX 라이트는 어느 핀과 연결된 것인지는 아직 알아내지 못했고, 1번과 13번을 제외한 핀은 보드 라이트 출력을 직접적으로 조절해주는 것이 없는 듯 하다. 혹시나 다른 발견 정보가 있다면 추후 이 포스트에 추가할 예정이다.

2. 코딩 진행

(1) pinMode() 함수

void setup() 함수 안에는 pinMode()함수를 사용하여, 어떤 핀에서 입/출력을 조정할 것인지를 설정한다. 따라서 pinMode()함수에서 사용되는 인자는 '핀번호'와 '입/출력' 여부이다. 정리하자면 pinMode()함수는 아래와 같은 포맷을 가진다.

===========================

pinMode( #pin, 작동상태 )

===========================

#pin은 1부터 13까지의 숫자가 입력되며, 작동상태는 INPUT 및 OUTPUT 중 하나를 입력하면 된다.

전기 신호가 L라이트로 전달되는 것은 물론, 이 신호로 인해 불이 반짝거려야 - 출력되어야 - 하기 때문에, void setup()함수의 내부에 다음과 같은 코드를 작성해준다.

아두이노 TX 깜빡임 - adu-ino TX kkamppag-im
대/소문자를 구분해서 작성해야한다. 잘못 작성된 경우, 글자 색이 바뀌지 않는다.

(2). digitalWrite() 함수

어떤 핀으로 신호를 보낼지 결정했으니, 이 신호를 어떻게 반복적으로 보낼 것인가를 생각해야한다. 이는 void loop() 함수에 코드를 작성함으로써 진행할 수 있다. 

라이트에 불이 들어오게 하는 방법은 digitalWrite()라는 함수를 사용하는 것이다. 이 함수 역시, 필수 인자를 두 개 가지며, 하나는 '핀 번호', 또 다른 하나는 '전기 신호의 강도'이다. digitalWrite()함수의 포맷은 다음과 같다.

=============================

digitalWrite( '핀번호', '전기 신호의 강도' );

=============================

핀 번호는 앞에서 설명한 pinMode()함수와 마찬가지로, 숫자를 사용해 표시한다. 반면에, '전기 신호의 강도'는 HIGH와 LOW로 나타낸다.(이것 말고도 더 있는 것 같지만 우선 2개만 설명한다) 전기 신호가 강할 경우, 라이트에 불이 들어오며, 신호가 약하면 반대로 불이 꺼지게 된다.

*  일반적으로는 신호가 없는 경우에 불이 꺼져야하지만, 전자제품이라는 것이 작동을 위한 최소의 전기는 필요하기 때문에 약한 신호를 "라이트 꺼!!"라는 신호로 받아들이게 된다. 

다음과 같이 코딩을 진행하고 코드를 Arduino에 업로드하면, 13번 핀과 연결된 L 라이트에 들어왔던 불이 꺼지게 된다.

(업로드 방법은 뒤에서 설명한다)

아두이노 TX 깜빡임 - adu-ino TX kkamppag-im

(3). delay() 함수

우리는 불을 깜빡거리도록 만들려고 한다. 하지만, 위의 코드를 Arduino에 업로드 시켜 실행할 경우, 불이 깜빡거리는 것이 아니라 영원히 꺼져있게 된다.

아두이노 TX 깜빡임 - adu-ino TX kkamppag-im

그럼, 위의 사진과 같이, "digitalWrite(13, HIGH);" 라는 코드를 void loop()함수의 가장 아래에 위치시켜주면, 불이 깜빡거리지 않을까? 그렇지 않다. 왜냐하면 Arduino는 "digitalWrite(13, LOW);" 코드를 얼마나 오랫동안 지속시켜야 하는지 명령을 받지 못했다. 따라서, 13번 핀과 연결된 L 라이트는 지속적으로 불이 꺼져있게 된다. 

그럼, 해당 동작을 얼마동안만 지속하라는 함수는 무엇인가? 바로 delay() 함수다. 

delay() 함수는 함수의 특성 상, 필수 인자를 딱 하나만 가지게 된다. 바로 지속 시간인데, 이 지속시간은 밀리세컨드(ms)단위로 표시한다. 따라서 delay(1)이라고 작성할 경우, 0.001초만 동작을 진행하게 된다. 

이제 delay()함수를 digitalWrite() 함수 아래에 작성해보자. 필자는 0.1초는 불이 들어오도록, 0.9초는 불이 꺼지도록 코딩하려한다.

아두이노 TX 깜빡임 - adu-ino TX kkamppag-im

이제, L 라이트를 깜빡거리게 만들 코드는 전부 완성되었다.

3. Arduino에 업로드

업로드 방법은 크게 어렵지 않다. 코드가 전부 작성이 되었다면, 이 코드를 저장한 뒤(필자는 first_test라는 이름으로 파일을 저장했다), IDE 좌측 상단의 '오른쪽 화살표' 모양의 아이콘을 눌러주면 된다. 

아두이노 TX 깜빡임 - adu-ino TX kkamppag-im

업로드 전에, 코드에 이상이 없는지 확인하고 싶다면, 가장 좌측의 '체크'모양의 아이콘을 눌러주면 된다. 이 아이콘은 여러분들이 작성한 코드가 문법에 맞게 작성되었는지 확인하는 아이콘이며, 문법에 이상이 있을 경우, IDE 하단에 어느 코드에 문제가 있는지를 알려준다. 

아두이노 TX 깜빡임 - adu-ino TX kkamppag-im
마지막 줄에 세미콜론을 제거하고 확인 작업을 진행하자, 오류가 있음을 IDE가 알려준다.

Arduino에 업로드가 완료되면, 코드 내용에 맞게 Arduino 보드의 L 라이트가 점멸되는지 확인해보자. 아래와 같이 작동한다면 성공이다.

아두이노 TX 깜빡임 - adu-ino TX kkamppag-im

FIN.