夕方から暇だったのでAVR – 4433LCD付き実験基盤の時から放置してた温度計をさわってみた

LM35DZというトランジスタみたいな形の温度計と、LMC662というオペアンプを使う。

サンプルコード(avr-gcc)↓

/* PORTC ADコンバータ全入力 */
outp(0, DDRC);
outp(0, PORTC);
for(;;){
outp(BV(ADEN)|BV(ADSC)|0x05,ADCSR); /* A/D コンバータの値を表示する */
outp(0,ADMUX);
cbi(ADCSR, ADIF);
sbi(ADCSR, ADSC);
loop_until_bit_is_set(ADCSR, ADIF);

lcd_gotopos(0,1); /* LCD2段目の1文字目に移動 */
lcd_print_16( inw(ADCL)/20 ); /* 文字列4桁に変換してLCD表示 */
}

最後20で割ってるのは、オペアンプの使い方がよくわかってないから。なんとなくデータシート眺めて適当に繋いで値出したら、580とか出た。丁度よいので20で割ってみた。

ビールで冷やしたり手で暖めたりすると数字が変わる。

今日の犠牲者
-可変抵抗 煙を上げて死亡

あと俺のライターがグルーガン様の力で超かっこよく生まれ変わりました。