마음 속 하늘은 항상 맑음~!

12F675로 대충 만들고 있는 온도계. 본문

하드웨어

12F675로 대충 만들고 있는 온도계.

파르셀수스 2014. 7. 1. 15:57

 써미스터와 12F675 PIC를 이용해서 만들려고 설계한 대충의 기본 자료.




(최종 도면. 164의 전원은 14번 7번. FM으로 만들어서 배선의 최적화는 없심. 다음 부터는 FND와 74HC164의 연결에 신경을 조금 더)


 R2는 NTC502F397F 써미스터. 선형이 아니라서 PIC에서는 선형적인 감소가 이루어지지 않기 때문에 다루기가 어려워 128바이트 EEPROM에서 테이블을 만들어서 저항값을 집어넣었다. 1도 차이로 보여주는 영역은 -14도에서 영상 49도까지. 그 이상은 PIC로는 테이블을 만들기 어려워 힘들 것 같다.


 FND(세그먼트 디스플레이)로 숫자를 표시하고 그 드라이버로는 164 시프트 레지스터를 사용한다. 클럭 값으로 내보내서 U3에는 높은 수 U2에는 낮은 수가 표시되며, 영하의 경우에는 낮은 자리에 점이 찍힌다. 두자리라서 어쩔 수 없는 제한이다. -9도까지로 해볼까 생각도.


 QA~QG는 FND의 핀과 같은 알파벳이고 QH는 DOT와 연결하면 된다. 노이즈 차단이나 정전압부는 빠졌지만 5V를 기준으로 만들어졌다.




themal-indicator-all-fix.hex.zip



(펌웨어 업데이트 6/26일자) 약간의 트윅으로 표시상태의 전력을 줄임. 한가지 설계에서 빠진게 FND를 끄고 켜는 부분. 보다 깔끔하게 보이기 위해서는 필요. FND 각각의 숫자 막대기에 약한 밝기의 점멸 상태가 보이는 것은 이 부분이 생략되었기 때문. BC547같은 트랜지스터와 GP4 신호를 이용해서 온-오프가 가능하다. FND의 접지쪽에 콜렉터를 연결하고 에미터를 접지시키면 된다. 베이스에 붙이는 저항은 10K정도면 가뿐.

(업데이트 28일자) 보다 나은 범위 측정을 위해서 일부 구간의 값 조절과 범위 외를 체크하는 코드를 더 나은 값으로 수정.

(업데이트 30일자) 2번핀을 이용해서 FND를 끄고 켤 수 있게 조절이 가능하도록 기능을 조정. 2번핀을 꼭 사용할 필요는 없심. 출력이 5V가 나오면 FND가 ON되고 0V에 OFF되도록 함.


(업데이트 8.10) 저항 R4를 1k로 조정. 전력소모를 절반으로 줄임. 영하 온도의 인덱스 값의 보정. 2.2k의 펌웨어와 4.7k의 펌웨어를 생성. 영하 12에서의 문제를 해결.


(업데이트 8.26) 약간의 저항오차로 인해 2도나 차이나는것을 1도로 줄임. 보정치를 넣는 방법을 사용해서 정확하지는 않음. 2도나 높으니 더워보여서 =ㅅ=;



 온도에 따른 저항 테이블은 아래와 같다.


 브레드보드에서 실험. FND를 연결하지는 않았지만 성공적인 것 같다. 28도 정도로 나오는데 실제 만들어봐야 제대로 확인할 수 있을 듯. 펌웨어나 하드웨어는 아직까지는 문제가 없다고 판단.




만능 기판에 옮긴 결과물.


덥...덥다.