YPVSインジケータ(ESP32編)

マルチディスプレイデフォルト版 電子工作
マルチディスプレイデフォルト版

現行分はRZR専用としました。
最上段はYPVSの開度の視覚表現
バッテリ電圧(下段)とYPVS駆動電圧(上段)を表示します。
ADCはVdd=3.3V、11dB減衰させており、ESP32のAPIで電圧値を取得補正しています。
今回は純正水温センサーによる水温測定表示を含みません。
スケッチ(プログラムソース)は他に作っていますが、こちらはテスト後に補正をかけて運用確認します。上段に水温が下段にバッテリ電圧を表示予定です。現時点で時計は時刻合わせの時刻同期のプログラムが確定しないためにボツにしました。今後、外部スイッチでの時計合わせ機能とシフトポジションの検知部が完成した時に組み込む予定です。


準備する物
1)ESP32-C3 super mini 後期のもの
2) 0.96inch 80×160(RGB) ISP ST7735S TFTディスプレイ
3) 5Vレギュレータ(5V0.1A程度供給) 
4)分圧用抵抗(誤差0.1%) 現在は1KΩと200Ω
5)47μF/35V以上 0.1μF 1μFのコンデンサ

例によって基板は完成していません。レイアウトをまだ考え中です。
補正が上手く利いているか、YPVSのインジケータ表示は適切に反応しているか、表示の切り替えタイミングは適切かなどの運用確認後、ソースと共に開示します。ライブラリは下図のスケッチ分だけですがレンダリングが遅いようであれば、他のライブラリにも変更予定です。
Arduino IDE2.3.6 ESP32-CORE(ESP32 By Espressif)は現行、V3.2.0ですがバグのため、V2.0.14にロールバックして使用しています。
ESP32の標準開発環境としてWindows10にESP-IDFを導入しています。
スケッチ(ソース)は定義の一部分だけの公開にしておきます。
開示できたら、改変可能でLANZAだろうが、RZRだろうが、全閉全開の電圧値が取れれば簡単に改変可能な状態にはしておくつもりです。

エラーも出ずにコンパイルが終わり、ESP32-C3 super miniに書き込んで動作している風にみえたので記念にここに書き込みました。ADC回りの勉強で今回かなりの時間を消費しました。

本家の3Dプリンタの振る舞いでガンガン作ってるのが非常に羨ましく思えます。
当方も欲しくなりますが、ギャンブルで増やして買うぞ!
今日のNHCマイルCは乱戦模様なので次回に期待します。

#include <Arduino.h>
#include <pgmspace.h>
#include <driver/adc.h>
#include <esp_adc_cal.h>
#include <Adafruit_GFX.h>
#include <Adafruit_ST7735.h>
#include <SPI.h>

// LCDピン設定
#define TFT_CS     7
#define TFT_DC     8
#define TFT_RST    9

Adafruit_ST7735 tft = Adafruit_ST7735(TFT_CS, TFT_DC, TFT_RST);

// ADCチャンネル設定
#define ADC_CHANNEL ADC1_CHANNEL_1  // ESP32-C3のADC1チャンネル1 (GPIO1)

コメント