지난 주 그로스로그에서 프로젝트 팀빌딩이 진행되었다. 나는 아직 개발 경험은 없지만 사회적으로 의미 있는 좋은 프로젝트가 있어 용기 내서 참여하게 되었다. 내가 참여하게 된 프로젝트의 산출물은 IoT로 구현되기 때문에 기본적으로 C를 사용한 임베디드 프로그래밍이 필요하다. 내가 프로그래밍에 직접 참여할 수 있을지는 모르지만 어쨌든 프로젝트가 진행되는 동안 맥락을 이해하는 것이 반드시 필요할 것이기 때문에 나도 아두이노와 좀 친해져 보기로 했다. 우선 알리익스프레스에 아두이노 우노 키트를 주문해놨다. 어차피 키트를 받자마자 바로 코딩을 할 준비가 안 되어있기 때문에, 키트 없이도 아두이노를 실습해볼 수 있는 TinkerCAD로 먼저 간단한 실습을 해 보기로 했다.
마침 야심차게 1년치 구독중인 교보문고 sam 프리미엄에서 이번 달 이용권 3개 중 한 개도 소진이 안 됐다고 빨리 쓰라고 카톡이 왔다. 그래서 이용권 3개를 몽땅 아두이노 관련 책에 털었는데, 그 중 처음으로 열어본 책이 바로 <키트없이 학습하는 TinkerCAD 아두이노>이다.
TinkerCAD(팅커캐드)는 Autodesk사가 제공하는 아두이노 웹 시뮬레이터로서 웹상에서 아두이노와 관련된 보드, 부품, 그리고 소프트웨어를 제공하기 때문에 입문자에게 상당히 좋은 학습 툴인듯 하다.
https://www.tinkercad.com/ 로 들어가 계정을 하나 만들고, [회로] 탭으로 가서 '새 회로 작성'을 클릭하면 회로를 설계하고 아두이노를 시뮬레이션할 수 있는 창이 뜬다.
오늘 첫 실습으로 LED를 아두이노에 연결하여 회로를 만들고, LED를 1초 간격으로 깜빡이게 하는 프로그램을 만들어 보았다.
1단계: 회로 설계
회로 작성 창에 다음과 같이 만들어 보았다.
우선 기본적으로 아두이노 UNO 보드를 가져와야 하고, 여기에 LED와 220Ω 레지스터(=저항) 두 가지 부품만 있으면 된다.
LED의 양극 다리는 D13핀에 연결하고 음극 다리는 GND(접지) 핀에 연결한다.
책에서는 여기에 레지스터를 연결해야 하는 이유를 다음과 같이 설명한다.
만일 [D13] 핀으로 5V를 출력시키면, LED의 <양극> 다리에는 5V, <음극> 다리에는 0V의 전압이 연결되므로 5V의 전압 차이가 발생하여 LED가 켜질 것이고, [D13] 핀으로 0V를 출력시키면, LED의 <양극> 다리에는 0V, <음극> 다리에도 0V의 전압이 연결되므로 전압 차이가 0V가 되어 LED는 꺼질 것입니다. 그런데 여기서 한 가지 문제점이 있습니다. LED는 1V 이상의 전압을 걸어주면 켜진다고 했습니다. 그런데 이 회로에서 LED가 켜지면 [D13] 핀과 [GND] 핀 사이에 5V의 과도한 전압이 걸리기 때문에 LED에게 부담을 주어 LED의 수명이 짧아지게 됩니다. 보통은 LED에 약 2~3V의 전압을 걸어주는 것이 일반적입니다. 그래서 레지스터를 이용하여 LED와 전압을 분담하게 하여야 합니다. 회로에서는 LED 아래에 220Ω의 레지스터를 연결하였습니다. LED에는 보통 200Ω 내외의 레지스터를 연결합니다....
키트없이 학습하는 TinkerCAD 아두이노중에서
https://ebook-product.kyobobook.co.kr/dig/epd/ebook/E000002909140
2단계: C 코딩
이제 코딩을 할 차례다.
일반적인 C 프로그래밍에서는 main함수로 시작해서 main함수가 끝날때 끝나지만, 아두이노에서는 main함수를 쓰지 않고 그 대신 setup()함수를 먼저 코딩하고 loop()함수를 코딩하면 끝이다. 그렇게 해놓으면 setup()은 한 번만 동작하고 loop()에서 계속 반복 동작하는 것이다. 실제로는 main()함수 안에 setup()과 loop()가 있는거라는데, 솔직히 무슨 말인지 잘 모르겠다. 지금 그게 중요한 건 아닌거 같아서 그냥 그렇다고 알고 넘어가려고 한다.
어쨌든 매뉴얼대로 C 코딩을 해서 시뮬레이션을 해보니 LED가 1초 간격으로 깜빡이는 것을 확인할 수 있었다.
레지스터를 연결하지 않고 시뮬레이션을 해보면 전압이 너무 높게 걸려 부품에 부담을 줄 수 있다는 경고 표시가 나온다.
실제 아두이노 보드를 가지고 실습을 하기 전에 팅커캐드에서 가상으로 시뮬레이션을 해보고 하면 적어도 부품을 망가뜨릴 일은 없을 것 같다. ㅎㅎ
'KNOU CS > 그로스로그' 카테고리의 다른 글
그로스로그 북클럽 파이브북스 두 번째 책, "스타트업 서바이벌"을 읽고... (2) | 2025.05.12 |
---|---|
그로스로그 북클럽 파이브북스 첫번째 책, "IT세계의 괴물들" 모임 후기 (0) | 2025.04.21 |