가지고 있던 멀티테스터 기계가 고장나면서 내 유일한 용도였던 건전기 전압 측정을 할 방법이 없었다.

멍청하게도 단선 측정을 220V 교류 전원에다 대고 하다니! 흑...


어떻게, 고쳐 쓸 수 있을까 하고 아무리 들여다 봐도 내 주제에, 어디에 문제가 생긴 것인지 알 리가.

콘덴서가 문제일 때는 배가 부풀어 있다는데, 이건 그런 것 같지도 않고...

괜히 애꿎은 콘덴서, 퓨즈 등만 교체용으로 잔뜩 사다 놓고는 손도 대보지 못했다.


그렇다고 비싸지는 않지만 그걸 다시 사기도 그렇고 해서 망설이다가

실험용으로 사다 놓고 집에 모셔만 두고 있던 아두이노(Arduino)를 이용해서

이참에 간단한 전압 측정 장치를 만들어 보기로 했다.


내 전공이 원래 전자 계통이 아닌 데다, 어릴 적 라디오 조립에 얽힌 쓰라린 트라우마도 있어서

어지간해서는 전자 회로 같은 것은 울렁증 때문에 쳐다 보지도 않았는데,

아두이노는 납땜(!!!)을 할 필요가 없어서 비교적 쉽게 접근 가능했다.


그래서 함 해 봤다.


먼저, 컴퓨터 시리얼로 출력하는 건 뭔가 좀 모양새도 좋지 않고 컴퓨터를 꼭 켜야만 할 수 있으니,

LCD를 연결해서 출력해 보기로 했다. 이 참에 LCD 출력 원리도 좀 공부해 볼 겸.



문제는 내가 가진 LCD가 아래 사이트에서 참조하려고 마음 먹었던 LCD와 조금 다르다는 점.


>> 참조: http://blog.daum.net/rockjjy99/267



윽... 이럴 수가!


그런데, 해결책은 간단했다.

아두이노 키트에 포함된 책자에 내가 가진 LCD 모델에 대한 설명이 자세히 들어 있었던 것.


책자에 있는 대로 일단

스위치를 누르면 LCD에 랜덤하게 아무 문자열이 출력되는 예제를 바탕으로 만들어 봤다.




브레드보드를 이용해서 LCD 기판 회로를 구성한 다음,

(맨 오른쪽에 있는 스위치 및 전원/GND 확장 부분은 사용하려다 만, 불필요한 부분이다.)

7~11번의 빈 공간에다 간략히 저항 2개를 연결해서 전압 측정 부분을 만들어 봤다.
왼쪽으로 길게 나온 두 선이 전압 측정팁 부분이 되겠다. 빨간색은 양극(+), 검은색은 음극(-).




다른 방향에서 찍은 사진 한 장 더.

(브레드보드에 길게 연결하는 전선보다 점과 점 사이를 딱딱 맞게 꽂는 짧은 전선이 아주 깔끔하고 좋았다.

물론 해당 전선들도 죄다 아두이노 키트에 포함된 것들.)




그리고... 측정.


처음 아두이노 전원이 켜지면 "READY..." 라고 출력한 다음 1초 후부터 측정된 전압을 표시하도록 했는데,

아무 것에도 연결하지 않으면 당연히 "MIN!!"이라고 최소값이 표시된다.

요 부분을 그냥 "READY..."로 놔두는 것이 나았을라나?




1.3V 충전지로 테스트해봤더니... 1.3V~1.5V 사이로 왔다갔다 하는 것이 생각보다 오차가 컸다.

아무래도 사용한 저항이 10kΩ짜리와 1kΩ짜리로 도합 11배 차이가 나다 보니 그런 것일 수도 있겠다.

10kΩ짜리 대신에 4.7kΩ짜리를 사용하면 배수가 줄어드니 오차도 줄어들지 않을까?

(왜 시중 멀티테스터 장치들이 2V, 20V, 이런 식으로 측정 옵션이 다르게 있는지 이제야 이해했다.)



사실, 건전지 전압만 측정하려면 위 사진처럼 저항 2개를 연결할 필요 없이

바로 아날로그 입력 단자에 직접 건전지를 연결하면 간단하긴 하다.


>> 참조: http://pepsiman.tistory.com/37




그런데, 나는 9V 건전지까지 측정하려고 마음먹고 있었기 때문에

최대 5V까지만 측정 가능한 위 방법은 적절하지 않았다. 그래서 따로 더 찾아봤는데...


>> 참조: http://www.dynamicrc.com/bbs/view.php?id=mcu_study&no=26



내 목적에 맞는 회로를 제대로 찾긴 찾았는데,

자세히 나온 회로도나 사진이 없어서 주먹구구로 시행착오를 여러 번 거치면서 만들 수밖에 없었다.

(전자회로에 대한 이해도 부족한 데다 저항 분배 법칙도 배운 지 워낙 오래된 터라 몹시 낯설어서

처음에는 많이 헤맸다. R1이 R2보다 커야 한다는 기초적인 사실도 모르고 있었으니 헤맬 수밖에.)



아무튼, 1.5V부터 9V까지 다 쓴 건전지인지 아닌지를 판별하는 용도로 쓰기에는 부족함이 없을 듯.



아래는 해당 스케치다.

누가 다른 사람이 참고할 만한 내용은 아니고, 어디 기록해 둘 데가 없어서 그냥 여기다 남겨둔다.





여기서 내가 생각하는 핵심 부분은 바로 dtostrf 함수 사용 부분.

웃기게도 sprintf 함수를 사용할 수가 없어서 float값을 문자열로 출력하는 방법 찾느라 고생했다.



아두이노, 재밌다.


끝.





Posted by 떼르미
,


자바스크립트를 허용해주세요!
Please Enable JavaScript![ Enable JavaScript ]