본문 바로가기
AI Journey/혼자 공부하는 임베디드

TinkerCAD로 아두이노와 친해질 준비하기

by 보눔비스타 2025. 5. 10.

학교에서 8월에 소프트웨어 경진대회가 열린다. 나는 아직 개발 경험은 없지만 사회적으로 의미 있는 좋은 프로젝트가 있어 용기 내서 참여하게 되었다. 내가 참여하게 된 프로젝트의 산출물은 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초 간격으로 깜빡이는 것을 확인할 수 있었다. 

 

레지스터를 연결하지 않고 시뮬레이션을 해보면 전압이 너무 높게 걸려 부품에 부담을 줄 수 있다는 경고 표시가 나온다. 

실제 아두이노 보드를 가지고 실습을 하기 전에 팅커캐드에서 가상으로 시뮬레이션을 해보고 하면 적어도 부품을 망가뜨릴 일은 없을 것 같다. ㅎㅎ