![[多機能メーター製作]時計と電圧計編 [多機能メーター製作]時計と電圧計編](https://cdn.snsimg.carview.co.jp/minkara/blog/000/045/073/191/45073191/p1m.jpg?ct=49090a067077)
前回有機ELディスプレイ(OLED)と接続できたので、今回は時計と電圧計を作ります。まずはプロトタイプの製作からです。これには
keyestudioのKS0068(37 in 1 Sensor Kit for Arduino Starters)というセンサーモジュールキットを使用しました。
箱を開けるとこんな具合に37種類ものセンサーが入っています。各センサーとピンヘッダーが小さな基板上に実装されており、これをブレッドボードに挿し込んで使用します。
使用するのはDS3231というデバイスが搭載されたクロックモジュールと、可変抵抗器です。クロックモジュールはマイコンとI2Cで通信して現在時刻を取得することができます。ボタン電池が載っており、メイン電源が切れても時刻のカウントを継続できるので、バイクのACCをオフにしても時計が停止する心配がありません。また、温度測定機能も搭載されています。可変抵抗器モジュールの方は、電圧計の機能をデバッグするために使用しました。マイコンのアナログ入力端子に接続します。
接続図です。fritzingというソフトを使用して作成しています。ネットで探してもkeyestudioのクロックモジュールのパーツデータが見つからなかったので、同じDS3231を搭載した他社モジュールのパーツデータで代用しています。また、前回からOLEDの接続を変更しました。NucleoボードにはLEDが載っており出力ポートで制御できるのですが、このポートが前回OLEDで使用していたSCK/D13と重複しているため、OLED使用時にLEDも点灯してしまうという問題があったからです。
ディスプレイ表示はこんな感じで作成しました。時計の下にバーグラフで分を視覚的に表示しています。また、電圧計はノイズの影響で表示がふらつくため、移動平均処理によるローパスフィルターを入れました。100msec周期でサンプリングし、1sec周期で移動平均処理した上でディスプレイ表示を更新しています。電圧計も同様に右下にバーグラフを表示してみました。
画面表示のモードを切り替えると、DS3231で測定した温度を折れ線グラフで表示できるようにしています。横軸が時間で、過去30分の温度履歴を表示しています。縦軸が温度で、過去30分の最大/最小温度から自動的にレンジを調整してくれるようになっています。
第一段階で盛り込みたい機能の確認が出来ました。
ブログ一覧 |
多機能メーター製作 | 趣味
Posted at
2021/05/03 00:37:02