YPVSに流れる電圧を計測します。
YPVSの開度0の時と開度100の時の電圧を測って代入してください。(25、26行)
現状はRZR用になっています。(27行)
上部の朱色がバッテリ電圧表示、下部の水色がPV電圧です
(撮影時は偽情報を表示させています)
バッテリ電圧を測るため抵抗分圧としていますが、直接抵抗値が代入できるため、入手困難な精密級抵抗の使用を止め、測定した抵抗値を使うようにします。
PV電圧は直接測定します。0~3.9Vまで測定可能です。
スケッチ(ソース)にはなるべくわかりやすいようにコメントを入れています。
デバッグ中なので多少間違ってる可能性もあります。修正をかなり入れていて時間が空いてたりしてかなりのスパゲッティ(^^;
特にカラー表示は全体的におかしいので確認中です。(白黒反転など)
GPIO1がYPVS電圧計測(今後水温計)表示下段 GPIO3がバッテリ電圧計測 表示上段
ディスプレイとの接続は GND VCC SCL(4) SDA(6) RES(9) DC(8) CS(7) BUK
YPVSロゴも入れ換えられます。その手法は後ほど。
#include <Adafruit_GFX.h>
#include <Adafruit_ST7735.h>
#include <SPI.h>
#include "driver/adc.h"
#include "esp_adc_cal.h"
// TFTピン定義
#define TFT_CS 7
#define TFT_DC 8
#define TFT_RST 9
// ADCチャンネル設定
#define POTENTIO_CHANNEL ADC1_CHANNEL_0
#define EXTVOLT_CHANNEL ADC1_CHANNEL_3
// TFT初期化
Adafruit_ST7735 tft = Adafruit_ST7735(TFT_CS, TFT_DC, TFT_RST);
// グローバル変数
float potentio_voltage = 0;
float potentio_var = 0;
byte openVar_LV = 0;
float extVolt = 0;
esp_adc_cal_characteristics_t adcChar;
const float POTENTIO_MIN_VOLT = 1.2; // 開度0の電圧
const float POTENTIO_MAX_VOLT = 2.4; // 開度100の電圧
const bool INVERT_POTENTIO_DIRECTION = false; // trueで2.4→1.2V方向(LANZAなど)
// RGB変換
uint16_t color565(uint8_t r, uint8_t g, uint8_t b) {
return ((b & 0xF8) << 8) | ((g & 0xFC) << 3) | (r >> 3);
}
void setup() {
Serial.begin(115200);
tft.initR(INITR_MINI160x80);
tft.setRotation(1);
tft.fillScreen(ST7735_WHITE);
// ADC設定
adc1_config_width(ADC_WIDTH_BIT_12);
adc1_config_channel_atten(POTENTIO_CHANNEL, ADC_ATTEN_DB_11);
adc1_config_channel_atten(EXTVOLT_CHANNEL, ADC_ATTEN_DB_11);
esp_adc_cal_characterize(ADC_UNIT_1, ADC_ATTEN_DB_11, ADC_WIDTH_BIT_12, 1100, &adcChar);
// インジケーターラベル描画
tft.setTextColor(ST7735_BLACK);
tft.setTextSize(1);
const char* labels[] = {"0", "20", "40", "60", "80", "100"};
for (int i = 0; i < 6; i++) {
tft.setCursor(3 + i * 28, 2);
tft.print(labels[i]);
}
// 'ypvs_LOG_4', 80x26px YPVSロゴ表示 thank you image2cpp
const uint16_t pull_bitmap_ypvs_LOG_4 [] PROGMEM = {
0xffff, 0x0861, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0020, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xad75,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf79e, 0x0000, 0x0020, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x9cd3, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4a69,
0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xffff, 0xffff, 0x0020, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x6b6d, 0x5acb, 0x632c, 0x630c, 0x5aeb, 0x630c, 0x630c, 0x630c, 0x630c, 0x630c, 0x630c, 0x630c, 0x630c, 0x630c, 0x5aeb, 0x630c,
0x630c, 0x5aeb, 0x630c, 0x632c, 0x5acb, 0x630c, 0x630c, 0x630c, 0x630c, 0x630c, 0x630c, 0x630c, 0x632c, 0x630c, 0x630c, 0x630c,
0x632c, 0x5aeb, 0x5aeb, 0x632c, 0x5aeb, 0x5aeb, 0x6b4d, 0x3186, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0020,
0xffff, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x52aa, 0x0000, 0x0000, 0x0020, 0x6b4d,
0x632c, 0x5aeb, 0x630c, 0x632c, 0x6b4d, 0x6b6d, 0x632c, 0x6b4d, 0x630c, 0x630c, 0x630c, 0x630c, 0x630c, 0x5aeb, 0x632c, 0x630c,
0xffff, 0xffff, 0xffff, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xbdd7, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0xf79e, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xa534, 0x0000, 0x0000, 0x0000, 0xc638, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xe73c, 0xdedb, 0xe71c, 0xf79e, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0x9cf3, 0xa514, 0xa514, 0xa534, 0xa514, 0xa534, 0xa514, 0xa534, 0xa514, 0xc638, 0xffff, 0xffff, 0xffff, 0xffdf, 0xffff, 0xa534,
0xa514, 0xa534, 0x9cf3, 0xa534, 0xffff, 0x9cd3, 0xa514, 0xa514, 0xa534, 0xa534, 0xa534, 0xa534, 0x9cf3, 0xa514, 0xa534, 0xa534,
0xa514, 0xa534, 0xa534, 0x9cf3, 0xa534, 0xe73c, 0xffff, 0xffff, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x94b2, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf7be, 0x0000, 0x0000, 0x0000, 0x738e, 0xffff, 0xffff,
0x9492, 0x31a6, 0x0020, 0x0000, 0x0000, 0x0000, 0x0020, 0x0000, 0x0000, 0x0861, 0x8410, 0xf7be, 0xffff, 0xffff, 0xffdf, 0xffff,
0x4228, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0020, 0x0000, 0x0000, 0x0000, 0xffff, 0xffff, 0xffff, 0xffff, 0x630c, 0x0000,
0x0000, 0x0000, 0x0000, 0xef5d, 0xce79, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0020, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x632c, 0xffff, 0x18c3, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x4208, 0xffff, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffdf, 0xffff, 0xffff, 0x10a2, 0x0020, 0x0000, 0x2124, 0xffff, 0x7bef, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0020, 0x0000, 0x0000, 0x0000, 0x0020, 0x0020, 0x0000, 0x0000, 0x6b4d, 0xffff, 0xffff, 0xffdf,
0xbdd7, 0x0000, 0x0000, 0x0020, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0020, 0xdefb, 0xffff, 0xffff, 0x8410, 0x0020, 0x0000,
0x0000, 0x0000, 0xd6ba, 0xffdf, 0x738e, 0x0000, 0x0000, 0x0020, 0x0000, 0x0000, 0x0000, 0x0000, 0x0861, 0x52aa, 0x10a2, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xef7d, 0x738e, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0861, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xffff, 0xffff, 0x528a, 0x0000, 0x0000, 0x0000, 0xffff, 0x6b4d, 0x0020, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x630c, 0xb5b6, 0x8c51, 0x0000, 0x0000, 0x0000, 0x0020, 0x0000, 0x2124, 0xffff, 0xffff,
0xffff, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x738e, 0xffff, 0x8c71, 0x0000, 0x0000, 0x0000,
0x0000, 0xbdd7, 0xffff, 0xffff, 0x3186, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xffff, 0xffff, 0xffff, 0x1082,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0020, 0x0000, 0xad55, 0xd6ba, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0xe71c, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xad75, 0x0000, 0x0000, 0x0000, 0xc618, 0xdefb, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x8c51, 0xffff, 0xffff, 0xffff, 0xffff, 0x18e3, 0x0000, 0x0000, 0x0000, 0x0000, 0x39e7, 0xffff,
0xffff, 0x4208, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2104, 0xc638, 0x0000, 0x0000, 0x0020, 0x0000,
0x9492, 0xffff, 0xffff, 0xffff, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2945, 0xffff, 0xffff, 0xf7be, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0020, 0xbdf7, 0xffff, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x8430, 0xffff, 0xffff, 0xffff, 0xffff, 0xef5d, 0x0000, 0x0000, 0x0000, 0x632c, 0xffff, 0x6b6d, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0xdefb, 0xffff, 0xffff, 0xffff, 0xffff, 0xe71c, 0x8430, 0x9492, 0x9cd3, 0x9cd3, 0x9492, 0xffdf,
0xffff, 0xb5b6, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0020, 0x0000, 0x52aa,
0xffff, 0xffff, 0xffff, 0xdedb, 0x0000, 0x0020, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6b4d, 0xffff, 0xffff, 0xce59, 0x0000,
0x0000, 0x0020, 0x0000, 0x0000, 0x0020, 0x0000, 0x0000, 0xef5d, 0xffff, 0x2104, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x4a49, 0xffff, 0xffdf, 0xffff, 0xffdf, 0x1082, 0x0000, 0x0000, 0x18c3, 0xffff, 0xffff, 0x630c, 0x0020, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x5aeb, 0xffff, 0xffff, 0xffff, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0020, 0x0000, 0x0000, 0x0020, 0x0000, 0x0000, 0x3186, 0xffff,
0xffff, 0xffff, 0xffff, 0x9cd3, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xbdd7, 0xffff, 0xffff, 0x73ae, 0x0000,
0x0000, 0x0020, 0x0000, 0x0000, 0x0000, 0x0000, 0x1082, 0xffff, 0xffdf, 0x8410, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0020,
0x0000, 0x0000, 0xffff, 0xffff, 0xffff, 0x52aa, 0x0000, 0x0000, 0x0000, 0xf7be, 0xffff, 0xffff, 0xb5b6, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0020, 0x0000, 0x2945, 0xf79e, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf,
0xffff, 0xffff, 0x4a69, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0020, 0x0000, 0x0000, 0x0000, 0x0841, 0xffff, 0xffff,
0xffff, 0xffdf, 0xffff, 0x4228, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xf79e, 0xffff, 0xffff, 0x31a6, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0020, 0x0000, 0x3186, 0xffff, 0xffff, 0xc618, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0xd6ba, 0xffff, 0xad75, 0x0000, 0x0000, 0x0000, 0xc638, 0xffff, 0xffff, 0xffff, 0xffff, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x52aa, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xc638, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0841, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0x18c3, 0x0000, 0x0000, 0x0000, 0x0000, 0x0020, 0x0000, 0x18c3, 0xffff, 0xffdf, 0xffff, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8430, 0xffff, 0xffff, 0xffff, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0020, 0x8c71, 0xffff, 0x0000, 0x0000, 0x0000, 0x630c, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xef5d, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0020, 0x0000, 0x0000, 0x0000, 0x0000, 0xb596, 0xffff, 0xffff, 0xffdf, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0x0020, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xef5d, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xef5d, 0x0000, 0x0000, 0x0000, 0x0841, 0x0000, 0x0000, 0x0000, 0x4228, 0xffff, 0xffff, 0xe73c, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xbdf7, 0xffdf, 0xffff, 0xffff, 0x31a6, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x3186, 0x3186, 0x0000, 0x0000, 0x2104, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xffff, 0xffff, 0xc638, 0x0000,
0x0000, 0x0000, 0x0020, 0x0000, 0x0000, 0x0020, 0x0000, 0x0000, 0x0000, 0x0020, 0x9cf3, 0xffff, 0xffff, 0xffdf, 0xffff, 0xffff,
0xffff, 0xffff, 0xe71c, 0x0020, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0020, 0x0000, 0xb5b6, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xb5b6, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xa514, 0xffff, 0xffff, 0x9cd3, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xffff, 0xffff, 0xffff, 0xffff, 0x7bef, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0020, 0x0000, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xffff, 0xffff, 0xffdf,
0x18e3, 0x0000, 0x0000, 0x0020, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xef5d, 0xffdf, 0xffff, 0xffff, 0xffff,
0xffdf, 0xffff, 0xb5b6, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0861, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0x6b4d, 0x0000, 0x0000, 0x0000, 0x0020, 0x0000, 0x0000, 0x0000, 0xe73c, 0xffff, 0xffdf, 0x4a69, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0020, 0x0000, 0x8c51, 0xffff, 0xffff, 0xffff, 0xffff, 0xd6ba, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xbdd7, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0x94b2, 0x0000, 0x0000, 0x0020, 0x0000, 0x0020, 0x0000, 0x0000, 0x0000, 0x0000, 0x630c, 0xffff, 0xffff, 0xffdf, 0xffff,
0xffff, 0xffff, 0x632c, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x3186, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0x2124, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0020, 0x0000, 0xffff, 0xffff, 0xffff, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x2965, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x0020, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x5aeb, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xffff,
0xffff, 0xffff, 0xf79e, 0x10a2, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x18c3, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0x18c3, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8c51, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0x0000, 0x0000, 0x0020, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x39e7, 0x528a, 0x0000, 0x0000, 0x0000, 0x0000,
0x0020, 0x0000, 0x0000, 0x2965, 0xffff, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffdf, 0xffff, 0x31a6, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x10a2, 0xffff, 0xffff, 0xffff, 0xe71c, 0xef5d, 0xf79e, 0xef5d, 0xf79e, 0xf79e, 0xffdf, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0x39e7, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x10a2, 0xffdf, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xc638, 0xffdf, 0xffff, 0xffdf, 0xffff, 0xffff,
0xffff, 0xd69a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0020, 0x0000, 0x0000, 0x0020, 0x0000,
0x0000, 0x0000, 0x9cf3, 0xffff, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x9492, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0xef7d, 0xffff, 0xffff, 0xffff, 0x4a69, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xbdd7, 0xffff, 0xffff,
0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0x0841, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x528a, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xc638, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0x8c51, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8c51, 0xa514, 0x9cd3, 0x8430, 0x73ae, 0x632c, 0x8410,
0xbdd7, 0xffff, 0xffff, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xe73c, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0xbdd7, 0xffff, 0xffdf, 0xffdf, 0xffff, 0xffff, 0x2945, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xd69a, 0xffff,
0xffff, 0xffff, 0xffdf, 0xffff, 0xffff, 0x8410, 0x0000, 0x0000, 0x0000, 0x0020, 0x0000, 0xd6ba, 0xffdf, 0xffff, 0xffff, 0xffff,
0xffff, 0x8430, 0x0020, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x18c3, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0x39c7, 0x0000, 0x0000, 0x0000, 0x0020, 0x0000, 0x0000, 0x0000, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x630c, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xffff, 0xffff, 0x39c7, 0x0000, 0x0000, 0x0000, 0x0000, 0x0020, 0x7bcf,
0xffff, 0xffdf, 0xffff, 0xffff, 0xffff, 0x10a2, 0x0000, 0x0020, 0x0020, 0x0000, 0x52aa, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0x2965, 0x0020, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x632c, 0xffff, 0xffdf, 0xffff, 0xffff, 0xffdf, 0xffff,
0xffff, 0x0861, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x18e3, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xffff, 0x4a69, 0x0000, 0x0000, 0x0000,
0x1082, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x7bef, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x2124, 0x528a, 0x39e7, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x528a, 0xffff, 0xffdf, 0xffff, 0xffff, 0xf7be, 0xffff,
0xffff, 0x0020, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xb596, 0xffff, 0xffff, 0xffff, 0xffdf, 0xffff, 0xffff,
0xdefb, 0x0000, 0x0020, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5acb, 0xffff, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x9cd3, 0x0000, 0x0000, 0x0000,
0xffff, 0xffff, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xffff, 0xffff, 0xffff, 0xf79e, 0x5acb, 0x0000, 0x0000, 0x0020,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1082, 0xbdd7, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xf7be, 0x8c51, 0x94b2, 0x9cd3, 0x94b2, 0x94b2, 0x9492, 0x94b2, 0x8c71, 0xf79e, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xdefb, 0x8c51, 0x94b2, 0x9cd3, 0x94b2, 0x94b2, 0x94b2, 0x8c71, 0xd6ba, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xe73c, 0x0000, 0x0000, 0xa534,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xb5b6, 0x6b4d,
0x2965, 0x0000, 0x0020, 0x0000, 0x18c3, 0x630c, 0xc638, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xffff, 0x0020, 0x52aa, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x6b6d, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff
};
tft.drawRGBBitmap(78,47, pull_bitmap_ypvs_LOG_4, 80, 26);
}
void loop() {
// PV電圧平均取得
potentio_voltage = 0;
for (int i = 0; i < 5; i++) {
potentio_voltage += adc1_get_raw(POTENTIO_CHANNEL) * (3.9 / 4095.0); // 11dBでの補正 3.9Vスケーリング
}
potentio_voltage /= 5;
// PV開度計算(双方向対応)
float range = POTENTIO_MAX_VOLT - POTENTIO_MIN_VOLT;
float adjusted_voltage = constrain(potentio_voltage, min(POTENTIO_MIN_VOLT, POTENTIO_MAX_VOLT), max(POTENTIO_MIN_VOLT, POTENTIO_MAX_VOLT));
if (INVERT_POTENTIO_DIRECTION) {
potentio_var = (POTENTIO_MAX_VOLT - adjusted_voltage) / range * 100.0;
} else {
potentio_var = (adjusted_voltage - POTENTIO_MIN_VOLT) / range * 100.0;
}
potentio_var = constrain(potentio_var, 0.0, 100.0);
openVar_LV = potentio_var / 10;
// 外部電圧計測
uint32_t voltage = 0;
for (int i = 0; i < 10; i++) {
uint32_t v;
esp_adc_cal_get_voltage((adc_channel_t)EXTVOLT_CHANNEL, &adcChar, &v);
voltage += v;
delay(10);
}
voltage /= 10;
extVolt = voltage * (1200.0 / 200.0); // 分圧換算 (1KΩ + 200Ω)
// サブルーチン呼び出し表示更新
Display_indicator();
Display_Potentio_voltage();
Display_ExtVolt();
delay(100);
}
// YPVSインジケーター描画
void Display_indicator() {
char square[] = { (char)218, ' ', '\0' }; // 全角■文字
const int blockCount = 10;
const int startX = 2, spacing = 16;
const uint16_t colors[] = {
color565(120, 8, 40), color565(120, 8, 40), color565(122, 8, 247), color565(198, 8, 247),
color565(8, 8, 247), color565(8, 30, 247), color565(8, 66, 247), color565(8, 123, 247),
color565(0, 156, 255), color565(0, 222, 255)
};
const uint16_t offColor = color565(30, 30, 30);
tft.setTextSize(2);
for (int i = 0; i < blockCount; i++) {
uint16_t color = (openVar_LV > i) ? colors[i] : offColor;
tft.setTextColor(color);
tft.setCursor(startX + i * spacing, 12);
tft.print(square);
}
}
// PV電圧表示
void Display_Potentio_voltage() {
tft.fillRect(10, 60, 60, 20, ST7735_WHITE);
tft.setTextColor(color565(250, 8, 40));
tft.setTextSize(2);
tft.setCursor(10, 60);
tft.printf("%.1fV", potentio_voltage);
}
// バッテリ電圧表示
void Display_ExtVolt() {
tft.fillRect(10, 38, 60, 20, ST7735_WHITE);
tft.setTextColor(color565(0, 255, 156));
tft.setTextSize(2);
tft.setCursor(10, 38);
tft.printf("%.1fV", extVolt / 1000.0);
}
//copyright© 2025 Mooncat
中身が分かる方は改変して個人利用する分は結構ですがこのソースを使った商業利用だけはお止めください。親告の上、対抗手段を講じます。
コメント