아두이노2016. 12. 22. 11:00

2016 크리스마스가 얼마 남지 않았다. 이 즈음 집안에 크리스마스 트리를 장식하거나 각종 크리스마스 장식들을 하곤 한다. 그래서 나도 하나 만들고 싶어서 검색을 해봤다. 그 중에 마음에 드는 것이 있었다. Maker 사이트인 코코아팹에서 공개했던 ATtiny85를 이용한 크리스마스 트리 만들기이다. (http://kocoafab.cc/make/view/309)그걸 그대로 따라해 보았다. 


ATtiny85는 위의 그림과 같이 PB0 ~ PB5 까지 6개의 GPIO 핀이 있다. 그래서 상식적으로는 6개 이상의 LED는 연결하는게 불가능하다고 생각할 수도 있겠다. 하지만 1995년 찰리 알렌이라는 사람이 고안한 찰리플렉싱 (Charlieplexing) 이라는 기술을 적용하므로써 적은 IO핀으로도 많은 수의 LED의 제어가 가능하다. 제어가능한 LED의 갯수는 다음의 수식으로 구할 수 있다. 


※ 찰리플렉싱으로 제어 가능한 LED의 개수 구하기

n : GPIO 핀의 개수

LED개수 = n*(n-1)


즉, 오늘 ATtiny에서는 4개의 핀을 사용할 것이므로 12개의 LED를 제어할 수 있다. 아두이노 우노에 있는 14개의 핀으로는 무려 182개의 LED를 제어할 수 있는 것이다. 간단한 원리는 PIN을 INPUT 모드로 변환할 때 임피던스가 커지게 되고 마치 선이 연결되지 않은 효과를 가져온다. 이런 현상을 이용해서  INPUT/LOW, OUTPUT/LOW , OUTPUT/HIGH 의 3가지 상태를 가지고 각각의 LED를 제어할 수 있는 것이다. 자세한 내용은 검색해보면 많이 나온다. 어떻게 이런 아이디어를 생각을 했을까? 찰리라는 사람은 아이큐가 매우 높은 사람임에 틀림이 없다. ^^


트리만들기는 위에서도 말했지만 코코아팹 (http://kocoafab.cc/make/view/309) 의 내용을 그대로 따라 했다. 그래서 회로도나 코드도 링크의 것을 이용하면 된다. 다만 코코아팹의 글 내용 중에 프릿징 브레드보드 회로도가 나오는데 PB5 에 파란색 선을 연결한 것으로 나오지만 그대로 연결하고 소스를 업로드하면 LED가 켜지지 않는다. PB5 에 연결하지 말고 바로 아래의 PB3에 연결하면 제대로 작동한다. 검토가 제대로 안된 듯 하다. 그래서 그 회로도만 수정해서 여기에 올린다.


수정한 회로도 (원본 : http://kocoafab.cc/make/view/309)



이번에 사용할 LED들과 ATtiny85, 저항(220옴), 브레드보드 이외에도 LED 들을 연결할 전선이 필요하다.


회로도대로 납땜으로 연결한 모습이다. 헷갈리지 않게 극성을 잘 보고 연결해야 하고 전선의 길이를 잘 조절해서 연결해야 한다. 


전원으로는 AA건전지 4개가 들어간 6V 배터리팩을 이용하였다. 스위치가 달려서 켜고 끄기가 편하다.


전원을 ON 해 보았다. 꽤 이쁜 LED 반짝이가 만들어졌다.


녹색 하드보드지를 잘라서 트리모양을 만들었는데... 트리 맞나? 암튼 트리이다. 저기에 군데군데 구멍을 뚫고 LED를 하나씩 꼽을 것이다.


구멍을 뚫고 LED들을 모두 꼽은 다음 테스트


마지막으로 트리 맨위에 달 별모양의 LED를 만들어 주었다. 같은 극성끼리 LED다리를 납땜하고 220옴 저항을 중간에 연결하고 PB4 와 GND에 연결하였다. 딱 보기에 만들기 어려워 보이는데 의외로 별거 아니었다.


완성된 모습이다. 안쓰는 화분에 트리를 꼽고 탈지면으로 눈장식을 해 보았다. 그런데 눈이 너무 많이 온 것 같다.


뒷면의 모습이다. 지저분...


징글벨을 배경음으로 깔고 완성 후 찍어 보았다. 어설프지만 직접 만들었다는데에 의의가 있을 것이다. 그리고 방안에 불끄고 켜두면 꽤 이쁘다. 쓸만하다. 아두이노로도 만들 수 있지만 작은 MCU 인 ATtiny를 이용했다는 것도 의미가 있을 것이다. 한가지 아쉬운 점은 맨 위의 별을 만든 LED의 다리가 너무 길어서 별로 별 같지가 않은 것이다. 다리를 좀 더 짧게 자르는 것이 나을 것 같다.


그냥 의례적으로 말이 아니라 정말로 다사다난했던 한 해가 가고 있다. 가족과 함께하는 따뜻한 연말연시가 되었으면 좋겠다. Merry Christmas & Happy New Year.

반응형
Posted by 대네브 (deneb)

댓글을 달아 주세요