03.T-Watchのバッテリー残量表示
03.T-Watchのバッテリー残量表示
説明
T-Watch 2020v3のバッテリー残量(%)を画面右上に表示します。Arduino-IDE > ファイル > スケッチ例 > TTGO TWatch Library > BasicUnit > AXP20x_ADC > AXP20x_ADC.ino
を参照しました。
%値は、getBattPercentage();
充電中は、isChargeing();
によります。
表示は、バッテリー残量(%)が
0~ 20%の時、赤字
21~ 40%の時、黄色
41~ 80%の時、緑字
81~100%の時、白字
で、充電中の時は、
水色の%値と"充"の表示
です。
スケッチ
// BT.ino
// バッテリー残量表示
#define LGFX_AUTODETECT // 機種の自動認識
#include <LovyanGFX.hpp> // ヘッダをinclude
#include <LGFX_AUTODETECT.hpp> // クラス"LGFX"を用意
static LGFX lcd; // LGFXのインスタンスを作成
#define LILYGO_WATCH_2020_V3 // T-Watch2020v3を使用
#include <LilyGoWatch.h> // LilyGoWatchを使用
TTGOClass *ttgo; //
AXP20X_Class *power; // 電源管理 AXP202
void SetFont() { // Font等初期化関数
ttgo = TTGOClass::getWatch(); // ttgoに略します
ttgo->begin(); // 本体の初期化
lcd.init(); // LCDの初期化
lcd.setRotation(2); // 画面回転 0-3 (4-7で上下反転)
lcd.setBrightness(128); // バックライト輝度 0-255(実際は256通りの輝度ではない)
lcd.fillScreen(TFT_BLACK); // 全画面黒
lcd.setFont(&fonts::lgfxJapanGothic_28); // 固定幅ゴシック体 8,12,16,20,24,28,32,36,40
lcd.setTextColor(TFT_GREEN, TFT_BLACK); // (緑字,黒地)
lcd.setTextSize(1); // 文字サイズの倍数
lcd.setTextWrap(true); // 自動折返し
}
void printBT() { // バッテリー残量表示関数
lcd.setCursor(185, 0); // カーソル位置
lcd.setTextSize(0.7); // 文字サイズ(倍)
uint8_t per = power->getBattPercentage(); // 電池%測定
if (power->isChargeing()) { // 充電中の時
lcd.setTextColor(TFT_CYAN, TFT_BLACK); // (水字,黒地)
lcd.print("充"); // 画面表示
} else { // 充電中でない時
lcd.print(" "); // 画面表示
if (per <= 20) { // 0-20%時
lcd.setTextColor(TFT_RED, TFT_BLACK); // (赤字,黒地)
} else if (per <= 40) { // 21-40%
lcd.setTextColor(TFT_YELLOW, TFT_BLACK); // (黄字,黒地)
} else if (per <= 80) { // 41-80%時
lcd.setTextColor(TFT_GREEN, TFT_BLACK); // (緑字,黒地)
} else { // 81-100%時
lcd.setTextColor(TFT_WHITE, TFT_BLACK); // (白字,黒地)
}
}
lcd.printf("%3d%%", per); // 電池%表示
lcd.setTextSize(1); // 文字サイズを戻す
}
void setup() {
SetFont(); // Font等初期化関数へ
power = ttgo->power; // 簡単に書けるようにオブジェクトを受取る
lcd.setCursor(20, 50); // カーソル位置
lcd.print("バッテリー残量"); // 表示
}
void loop() {
printBT(); // バッテリー残量表示関数へ
delay(5000); // 5秒待つ
}
* flash memory(6.5Mbyte)のうち、スケッチが12%使用。RAM(4.5Mbyte)のうち、global変数が0%使用、local変数で4.5Mbyte使用可能。(1000byte=1kbyteで計算)