Quantcast
Channel: JH7UBCブログ
Viewing all articles
Browse latest Browse all 440

7セグメントLED表示のArduino温度計

$
0
0
 一昨年、Arduinoで温度計を作りました。記事は、こちら

 今回は、7セグメントLED表示の練習を兼ねて、Arduino(あちゃんでいいの)で、7セグメントLED表示の温度計をブレッドボード上に作ってみました。7セグメントLEDは、大きく明るく非常に見やすいです。

 PICは、LED表示を前提に設計されたと思われ、7セグメントLEDとの相性は良いのですが、Arduinoと7セグメントLEDとの相性は、今一つです。

 Arduinoで、7セグメントLEDを使うには、少し工夫が必要です。そこで、例によって使用例をWeb上を探しました。

 7セグメントライブラリ(SevSedLibrary)というのがあり、GitHubからダウンロードできます。4桁7セグメントLED用のライブラリで、ダウンロードしたSevSeg-masterを解凍し、SevSegにrenameしてArduinoライブラリに加えて使います。

 が、今回は、このライブラリを使わないでやってみました。Web上の記事からあちこち使わせていただきました。記事をUPされた皆さん、ありがとうございます。

 温度センサーは、手持ちのLM35DZを使っています。温度の測定範囲は、0~100℃で、出力は10mV/℃の使いやすいセンサーICです。

 ArduinoのAREFに1.023Vを加えると、センサーの出力(mV)を10で割れば、0.1℃まで直読できます。

 温度の測定は、1秒間隔で行います。これは、Arduino(ATmega328P)内蔵のタイマーの割り込みを利用します。

 これを使うには、MsTimer2ライブラリを使います。MsTimer2.zipはこちらからダウンロードできます。

 回路図です。

イメージ 1

 7セグメントLED(カソードコモン)は、秋月電子で販売している3桁の赤色LEDのC-335SRを使いました。

 電流制限抵抗を300Ωにした場合、 LEDの1セグメント当たり約9mA流れますので、すべてのセグメントが点灯した場合、約70mA流れArduinoのI/Oポートの最大電流40mAを超えてしまいます。そこで、2SC1815でLEDをスイッチングします。

 7セグメントLEDの各セグメント(A,B,C,D,E,F,G,DP)には、Arduinoの2~9番ピンを割り当てました。ダイナミック点灯として、各桁のON/OFFには、11~13番ピンを割り当てました。

 センサーからの出力はA0に加えています。

 ブレッドボードに組んだ様子です。

イメージ 2

 基準電圧は、10kΩのボリュームで調整してAREFに加えます。

 他の温度計を見ながらボリュームを調整して、正確な温度を表示するようにします。

 小数点は、2番目のLEDが指定されたときに表示するようにソフトで処理しています。

 ノイズ対策をほとんどしていませんので、0.1℃の値は、頻繁に動きます。移動平均をとるなどして、もう少し安定させる必要がありそうです。

 なお参考までに、詳しい説明とスケッチは、JH7UBCブログに掲載しました。

Viewing all articles
Browse latest Browse all 440

Trending Articles