PIC16F18313の基本動作から応用プログラムまでを学びます。

ホーム
12F1822
16F1455
16F1459
18F14K50
18F26J50
dsPIC
その他
    
16F18313
16F18325
16F18346
16F1619
Curiosity
---
---
音声温度計 音声で知らせる
2020−06−14

温度計プログラムに音声で知らせる機能を追加しました。音声を発音要素に区切り 512k byteのEEPROMに書き込んであります。

温度を、4秒に一度測定しLCDに表示します。表示すると次の測定までSLEEP状態になり省電力に努めます。Speek SWが押されると、SLEEP状態を解除し、温度を測定し、その値を音声で知らせます。

音声は、PWMで出力しています。この例ではその出力を抵抗で分圧し、さらにローパスフィルターを通してアクティブスピーカーに入力しています。

I2CのSDA及びSCLラインにはプルアップ抵抗を取り付ける必要があります。この回路図には表現されていませんが、PICの弱プルアップを利用しています。

プログラム

プログラムを示します。
温度センサーからの直流電圧は外界ノイズの影響を受けやすいので、16回測定しでその平均値を表示します。さらに値の更新は1秒に1回とし見た目の安定性を出しています。16F18313は、プログラムメモリー容量が少ないため、printf関数を使う余裕がありません。そのため、独自関数 printTemp(int temp)で温度センサーから得られたデータを解釈してLCDに表示しています。

音声温度計ソースファイル b05TempVoice.zip

/*************************************