아두이노 기초강좌 4

Electronics 2010.05.11 16:34
지난 번에는 주변의 빛 밝기를 감지해서 LED를 끄고 켜는 것을 만들기 시작했다.  그러다 끝에는 LED를 끄고 켜는 경계가 되는 밝기의 기준을 어떻게 잡을 것이냐를 고민하다 다음번으로 미루는 것으로 마무리를 지었다. 역시 오늘일은 내일로 미루는게 제맛이다. 제맛을 너무나 냈는지 어느새 2주가 지났다.

빛센서로부터 들어오는 아날로그 신호를 숫자로 표시해서 본다면 손으로 센서를 가렸을때와 가리지 않았을때의 차이를 LED를 끄고 켜는 경계로 할것인지, 방 전등을 아예 끄거나 켰을 때의 조도 차이를 LED 끄고 켜는 경계로 할 것인지를 결정할 수 있을 것이다.   

아두이노보드에 직접 LED숫자판을 달거나 LCD를 달 수도 있지만 그건 좀 복잡하니까 나중에 내공이 쌓이면 해보고, 오늘은 간단하게 컴퓨터를 통해서 빛센서의 값을 읽는 것을 시도해보기로 한다. 

아래의 코드를 보자. 지난번 코드와 달라진점이 보이는가? 그렇다 별로 없다. 시작할때 한번만 도는 세팅인 setup()쪽에 Serial.begin(9600);가 추가되었고, 무한루프를 돌게될 loop()쪽에 Serial.println(val);이 추가 되었다. 

int sensorPin = 5;

int ledPin = 13;                            

int val = 0;


void setup()

{

  Serial.begin(9600);                   // 시리얼포트를 9600bps속도로 사용하겠다라는 설정

  pinMode(ledPin, OUTPUT);

}


void loop()

{

  val = analogRead(sensorPin);

  Serial.println(val);                     // 변수val의 값을 시리얼포트를 통해서 전송하라는 얘기

   if (val < 500)

      {digitalWrite(ledPin, HIGH);}

   else  

      {digitalWrite(ledPin, LOW);}

}


Serial.begin(9600);은 9600bps (bit per second)의 속도로 통신을 하겠다는 설정인데, 속도가 마음에 안들면 바꿔도 된다. 하지만 마음대로 쓰는건 아니고 정해진 단계가 있다. PC에 깔린 아두이노 프로그램(아두이노IDE라고도 부름)의 시리얼 모니터 버튼을 누르면 모니터링을 위한 창이 새로 뜬다. 그 창의 아래쪽에 보면 속도 세팅하는 뭔가가 있는데 거기보면 300 baud부터 115200 baud까지 단계 중에서 선택하도록 되어 있다. 



위의 작성한 코드의 시리얼포트 속도와 아두이노 IDE의 시리얼포트 속도를 맞춰주기만 하면 된다. 둘이 서로 다르면 글자가 깨져서 알아볼수 없는 글자들이 시리얼 모니터 창에 쏟아져 나온다.

여기서 잠시, 아두이노에 짜 넣는 프로그램을 프로그램이라는 용어 대신 스케치라고도 부른다. 예술가에게 좀 더 친근한 용어를 써서 쉽게 다가서려고 했는지 모르겠으나 새로시작하는 사람들에겐 또 하나의 용어 장벽이 되기도 한다. 가뿐히 뛰어 넘어주기 바란다.

위 코드의 if 문에서 판단 기준값을 500으로 잡으면 내 방에서 낮에 손바닥으로 센서위 5센티미터 가량 위를 가릴때 불이 켜지고  손을 치우면 불이 꺼진다. 방의 밝기는 각자 다를테니 시리얼 모니터를 통해서 센서의 값을 숫자로 보면서 손바닥으로 가려보거나 방 불을 꺼보거나 하면서 어떻게 달라지는지 확인해보고 자기 목적에 맞는 기준 값을 정해보자.

숫자가 너무 빨리 지나가버려서 읽기가 쉽지는 않지만 대충 알아볼 수는 있다. 그래도 변화를 그래프로 쉽게 알아볼 수 있었으면 좋겠다는 사람이 있다면 프로세싱을 이용하는 방법을 배우면 될 것이다. 이 강좌가 후반으로 가게되면 프로세싱으로 그래프를 보는 방법도 소개하도록 하겠다.


저작자 표시 동일 조건 변경 허락
신고
크리에이티브 커먼즈 라이선스
Creative Commons License

'Electronics' 카테고리의 다른 글

급기야 PIC도 시작, PIC용 프로그래머 PIC-PG1제작하다.  (4) 2010.08.20
아두이노 기초강좌 5  (36) 2010.06.22
아두이노 기초강좌 4  (15) 2010.05.11
아두이노 기초강좌 3  (13) 2010.04.28
아두이노 기초강좌 2  (34) 2010.04.14
아두이노 기초 강좌 1  (36) 2010.04.07
Trackback 0 : Comments 15
  1. Favicon of http://blog2.cctoday.co.kr BlogIcon 꼬치 2010.05.11 18:01 신고 Modify/Delete Reply

    오랜만이어서 반갑고
    숙제 없어서 조아요~
    실습을 안하니 뭔소린줄은 알겠지만
    저 외계어에 대한 거부감은 여전함. ㅋㅋ

    • Favicon of http://blog.whattomake.co.kr BlogIcon MrKiss 2010.05.13 02:28 신고 Modify/Delete

      저는 아무래도 그냥 있는걸로 할것 같습니다 ^^
      꼬치님은 정말 공부하실거면 구매버튼으로 공부를 결정하시는걸로 하죠 ㅎㅎ 그럼 자잘한 부품들은 제가 드릴테니까요

    • Favicon of http://blog2.cctoday.co.kr BlogIcon 꼬치 2010.05.13 13:21 신고 Modify/Delete

      선거끝나고 함 해볼까해요^^ 지금은 좀 정신이 없어요. 아두이노가 아니어도 내가 걸어다니는 LED처럼 깜빡거리고 있어요.

  2. 스랑 2010.05.24 12:09 신고 Modify/Delete Reply

    5편은 언제쯤 나올까요 =ㅅ=;;?

    • Favicon of http://blog.whattomake.co.kr BlogIcon MrKiss 2010.05.24 12:21 신고 Modify/Delete

      매주한편씩 올리려고 맘먹고는 있는데 맘처럼 안되는군요. 좀 더 분발하도록하겠습니다~

  3. 스랑 2010.05.24 12:10 신고 Modify/Delete Reply

    바쁘시지만...

    개인적으론 아두이노 모터제어에 대해서도 궁금해요!! ^^ (왕초보;;)

    • Favicon of http://blog.whattomake.co.kr BlogIcon MrKiss 2010.05.24 12:24 신고 Modify/Delete

      아두이노는 구입하셨나요? 직접 해보면서 공부해야 머리에 들어오거든요. 지난 강좌 다 해보셨으면 모터제어도 올려드릴께요 ^^ 약간 이른감이 있습니다만 지난 강좌를 다 해보셨다면 해볼만 합니다.

  4. 스랑 2010.05.24 12:12 신고 Modify/Delete Reply

    강좌보다 서점에도 가봤는데..없네요...ㅠ 인터넷으로 찾아보니 꼬부랑글씨 책-_-;; 남은건 mrkiss님 강좌뿐....

    • Favicon of http://blog.whattomake.co.kr BlogIcon MrKiss 2010.05.24 12:25 신고 Modify/Delete

      아두이노 이야기라는 네이버 카페도 있습니다. 한번 들러보세요

  5. 상상나눔 2010.06.11 16:01 신고 Modify/Delete Reply

    에고 질문 좀 드릴께요. 아두이노 보드 Serial 의 기본 셋팅이 어떻게 되나요 ?

    데이타 비트 , 스탑비트,패리티 비트 bging(9600) 으로 셋팅하고 PC와 통신하면 데이타가 틀리게 나오는데요.
    기본 셋팅이 틀리면 그런경우가 있는것 같아서 궁금하네요 ㅠㅠ;; 그 부분이 알고계시다면...

    • Favicon of http://blog.whattomake.co.kr BlogIcon MrKiss 2010.06.12 02:11 신고 Modify/Delete

      http://www.ladyada.net/learn/arduino/lesson1.html 이곳에 가보면 COM 포트 세팅이 나옵니다만, 전 뭐가 안된다고해서 그걸 바꿔본적이 없었습니다.
      데이타가 구체적으로 어떻게 틀리게 나오는지를 말씀해주시면 저도 좀 고민해보도록 하겠습니다. 혹시나해서 말씀드리면 기본적으로 아두이노 시리얼데이타는 아스키값인건 아시죠? 숫자 보낸다고 그 숫자가 가는게 아닌거요..

  6. 김광주 2012.05.31 21:41 신고 Modify/Delete Reply

    방금 아두이노 스토리 카페에 가입했습니다.

  7. 바이오맨 2012.09.04 15:13 신고 Modify/Delete Reply

    한국 아두이노 프로세싱 포럼에서 아두이노 무료강좌합니다.

  8. 안성우 2012.10.12 10:17 신고 Modify/Delete Reply

    정말 감사합니다 계속 댓글을 쓰게되네요!!!
    아 아아아아아아 행복합니다 정말 ㅋㅋㅋㅋ

  9. 2015.05.03 10:58 Modify/Delete Reply

    비밀댓글입니다

Write a comment

◀ PREV : [1] : ... [32] : [33] : [34] : [35] : [36] : [37] : [38] : [39] : [40] : ... [198] : NEXT ▶