아두이노 두에밀라노베(Arduino Duemilanove) 완성 - 기초 LED 깜박이기

2013.01.16 17:12




직장 근무로 인해서 블로그 관리에 어려움이 있습니다_2019.07.27


한동안 뜸한동안 여러가지를 테스트삼아 만들어보고, 부품이 올때까지 포스팅을 지연하고 있었습니다만 부품도착으로 아두이노 두에밀라노베를 완성했습니다.

그럼 아두이노가 무엇이냐?


아두이노(Arduino)는 오픈소스를 기반으로 한 피지컬 컴퓨팅 플랫폼으로, AVR을 기반으로 한 보드와 소프트웨어 개발을 위한 통합 환경(IDE)를 제공한다. 아두이노는 많은 스위치나 센서로부터 값을 받아들여, LED나 모터와 같은 것들을 통제함으로써 환경과 상호작용이 가능한 물건을 만들어낼 수 있다. 또한 플래시, 프로세싱, Max/MSP와 같은 소프트웨어를 연동할 수 있다.

- 위키백과 -


 이론 정리는 재미없어서 싫지만 ... 내용의 충실함을 위해 어쩔수 없겠죠!!..


아두이노는 AVR시리즈의 칩에 부트로더라는 프로그램을 올려서 마이크로프로세서를 모르는 사람도 쉽게 다룰수 있도록 만들어놓은 도구입니다.

주로 미디어아트나 교육용로봇등에 사용되고 아두이노는 통합개발환경(IDE)를 갖추고있고,

시리얼 통신으로 프로그램을 업로드 시키기 때문에 별도의 프로그래밍장치가 필요없습니다.

아두이노와 부품들 연결을 돕는 서드파티 프로그램이나 도구들이 많아서 쉽게 사용 할 수 있습니다.


 Fritzing에 아두이노보드가 있어서 프로그램에서 연결해본다음에 실제로 연결해서 테스트 할 수 있습니다.



제작중.....


여지없이 돌아온 사진으로 본문체우기 입니다. 하핫

보드는 아두이노가 오픈소스이기 때문에 회로도가 공개되있어서 직접 PCB기판을 떠도 되지만서도

귀찮아서 OR 다른작업때문에? 사진에 있는 어떤 사이트에서 무료로 1개 공급받았습니다.^









사진순서의 과정을 거쳐서 완성시켰습니다. 솔더위크로 작업했기에 실제로 판매하는 정품 두에밀라노베와 차이가 없지요.!


 자꾸 두에밀라노베 하는데 (Duemilanove)는 이탈리아어로 숫자 2009를 의미한다더랍니다.


이제 이걸로 뭐할까요?? 



전자의 기본은 LED 켜기


뭔가를 하기위해서는 준비과정이 필요하겠지요.!

아두이노 보드와 보드를 연결하기 위한 USB 케이블이 준비되었다면 아두이노는 아두이노 IDE 프로그램만 있으면 기본적인 준비는 끝납니다.

먼저 http://arduino.cc/en/Main/Software 다음 사이트에서 아두이노 프로그램을 다운로드 받거

나 아래 다운로드 링크에서 다운로드를 받아 압축을 풀어 놓습니다.



 Arduino IDE 다운로드 - 구글 드라이브로 연결됩니다.





기본적인 준비가 끝났으면 하드웨어를 준비해야지요.... !

전자의 기본 LED 켜기를 하기 위해서 LED를 디지털입출력핀 13번과 GND에 연결해줍니다.






압축푼 Arduino - Version 폴더에 들어가서 Arduino.exe를 실행시키면 다음과 같은 빈 화면을 보게 됩니다.

프로그램에서도 내가 어떤 아두이노 보드를 사용하고 통신하는 포트는 몇번인지 설정할 필요가 있는데 다음처럼 설정해줍니다.




사용하는 보드를 여기서 선택하면 되는데요. 저는 Duemilanove를 사용하고 32K 용량인 Atmega328 버전을 사용중이기에 Arduino Duemilanove W/ Atmega328을 선택했습니다.




그 다음으로 포트를 아두이노와 통신하기 위한 포트를 설정해야 하는데요.

아두이노 우노의 경우는 아두이노 폴더내에 있는 드라이버를 설치하시고, 두에밀라노베를 사용중이라면 FT232R 드라이버를 설치하면 컴퓨터 기본 포트 COM1, COM2를 제외 하고 새로운 포트가 하나 생길겁니다. 

안 생긴다면 내컴퓨터- 속성- 장치관리자- 포트 or USB장치에서 확인해보세요.^




모든준비가 끝났습니다. 이제 그럼 아두이노 IDE로 코딩해볼까요.!!



아두이노는 굉장히 간단한 함수를 사용해서 제어합니다.

아두이노 보드를 보면 DIGITAL이라고 적혀있는 13개의 포트가 있는데 이 숫자가 아두이노 IDE

서 제어시에 사용되는 포트번호입니다.... 따라서 AVR보다는 수십배 쉽죠.ㅎ

기본적으로 프로그래밍시에 void setup()과 void loop()부분은 아두이노 프로그래밍시에 

반드시 하나이상 들어가야하는 함수입니다.


소스코드를 해석하면 다음과 같습니다.


아두이노에서는 소스코드를 스케치라고 부른답니다.


void setup()
{

pinMode(13,OUTPUT);    // 핀의 입출력을 결정합니다. 13번을 출력으로 설정

}

void loop()

{

digitalWrite(13,HIGH);    // 디지털출력을 합니다. 13번에 논리1 (5V) 출력

delay(1000);    // 을 1초 유지합니다.

digitalWrite(13,LOW);    // 디지털 출력을 합니다. 13번에 논리0 (0V) 출력

delay(1000);    // 을 1초 유지합니다.

}


이 프로그램을 아두이노 보드에 다운로드 하면 처음으로 pinMode를 만나 13번을 출력으로 설정하고 제가 보드의 13번 핀에 LED를 연결해 두었으니 1초 LED가 켜지고, 1초 LED가 꺼지고를 무한정 반복하겠죠.


 동작영상...




AVR 다음 만들어 볼 부품올 때까지 아두이노로 놀려고 합니다.ㅎ


BinGoon ARDUINO/Arduino 기본 , , , ,

  1. BoardFree면 ...... 저걸 다 납땜하신건가요 ??? ㄷㄷㄷ 대단하십니다.

    포스팅 내용 잘 보았습니다 :-)

  2. 안녕하세요^ 오랜만에 방문해 주셨네요.^ 아두이노는 보드 프리에서 PCB만 받아 직접 납땜했습니다.
    핀셋으로 집어다 차근차근 납땜했습니다^
    댓글달아주셔서 감사드립니다^

  3. Blog Icon
    ami

    인터넷 검색하다 우연찮게 들르게 되었네요. ^^
    보드 깔끔하게 잘 만드셨네요.~
    저두 PCB를 무료로 받아 제작해보고 싶은데요
    부품이 일반적인게 아니라 구하기가 수월찮을것 같은데 부품은 어디서 구매하셨나요?
    칩부품은 소량 구매가 힘들지 않은지요?
    완성하신 사진을 보니 보드프리 홈피에 있는 회로도에서 R2(100_NM)부분이 빠졌던데
    상관이 없는지도 궁금하고...
    괜찮으시다면 부품리스트와 규격 그리고 구매하신 사이트를 알려주시면 감사하겠습니다. ^^;;

  4. 방문해 주셔서 감사드려요.^ 그럼 질문 답변부터 속히 달겠습니다. :-)
    R2(100_NM)은 무슨 용도인지는 잘 모르겠는데요, 보드프리에서 제공하고 있는 두에밀라노베 PCB가 판매하는 제품과 완전히 동일하다 보니, 판매하는 제품에도 연결이 되어있지 않길래 제외하고도 정상적으로 동작해서 연결안해두었습니다.

    칩 저항, 콘덴서는 디바이스마트에서 용량별로 100개씩 벌크로 판매하고 있습니다. 하지만 일부 몇몇 부품이 디바이스마트에서는 판매하지를 않아서 엘레파츠에 일부 구매하고, 디바이스마트에 일부 구매하고 했답니다.^

  5. Blog Icon

    비밀댓글입니다

  6. 별로 큰 도움이 되지는 못했지만, 작은 정보라도 보내드렸습니다.

  7. Blog Icon
    하하하

    안녕하세요
    인터넷 검색하다 우연히 들어오게 되었습니다.
    다름이 아니라 atmega328이 들어간 PCB로 만든 보드에 헥사파일을 부트로더 하여
    아두이노에서 작업을 할려고 하는데 그보드에는 크리스탈이 없어 그런지 업로드가 되지 않습니다.
    크리스탈이 없으면 업로드가 불가능한가요?

  8. 안녕하세요.^
    신입사원이라 정신없는 생활을 하고 있는 터라 뒤늦게 답글 작성하여 드립니다.^ 아마 아두이노를 설치하면 있는 부트로더 파일에 보시면 주파수 값이 기재되어 있을 텐데요. Atmega8을 제외하고는 168, 328은 16Mhz밖에 없는 것으로 알고 있습니다.

    그리고 업로드가 불가능한 이유는 다음과 같은 이유에서라고 판단되는데요, 먼저 Atmega328도 AVR이기 때문에 부트로더를 제작하신 분이 크리스탈 16Mhz기준으로 UART(직렬통신), 아두이노에서는 코드를 다운로드할 때 사용되는 (RX,TX)의 속도가 맞춰져 있습니다. 따라서 Atmega328의 내부 R(저항)C(캐패시터) 클럭으로 16Mhz를 맞췄다 하더라도 RC는 온도에 따라 값의 변동이 크므로 오차율이 커져서 업로드가 되지 않거나 애초에 16Mhz 값이 아닐 가능성이 있어 보입니다.

    따라서 16Mhz 크리스탈 설치가 필요해 보입니다.^
    정확한 정보가 아닐 수 있으니 참고 부탁드립니다.^^

  9. Blog Icon
    무지 쪼끄만칩 사이즈점여

    안녕하세요
    저두 만들려하는대 저 무지쪼끄만 칩저항있잖아요.
    1608을 사용하였나여? 아님 2012를 사용하였나여??
    헷갈려서. 어떤걸 사용했는지 궁금해서. 어떤사이즈를 사용하였나여????

  10. 안녕하세요^
    답변이 늦어 죄송합니다. 사이즈는 mm단위 1608 또는 inch단위 0603을 사용하였습니다. 참고 부탁드립니다^^

  11. Blog Icon
    람보미안

    이제 막 아두이노 시작한 입문자입니다.
    멋진 글 너무 감사드려요.