Unit HBridge v1.1
バージョンでは、現在のモーターの電流値を読み取ることもサポートしています。#include "M5Unified.h"#include "Wire.h"#include "M5UnitHbridge.h" M5UnitHbridge driver;uint8_t fw_version = 0;bool motor_run = false; void get_current_voltage(){ // getMotorCurrent() 関数は Hbridge V1.1 バージョンでのみサポートされています if (fw_version >= 2) { Serial.printf("%.2fA\r\n", driver.getMotorCurrent()); } Serial.printf("%.2fV\r\n", driver.getAnalogInput(_12bit) / 4095.0f * 3.3f / 0.09f);} void setup(){ M5.begin(); Serial.begin(115200); M5.Display.setTextDatum(middle_center); M5.Display.setFont(&fonts::lgfxJapanMinchoP_24); while (!driver.begin(&Wire, HBRIDGE_I2C_ADDR, 2, 1, 100000L)) { M5.Display.drawString("Unit HBridge init Fail!", M5.Display.width() / 2, M5.Display.height() / 2); delay(1000); } fw_version = driver.getFirmwareVersion(); Serial.printf("Hbridge Firmware Version: %d\r\n", fw_version); M5.Display.clear(); M5.Display.drawString("Unit HBridge init OK", M5.Display.width() / 2, M5.Display.height() / 2 - 20); M5.Display.drawString("Touch to Start/Stop Motor", M5.Display.width() / 2, M5.Display.height() / 2 + 20);} void loop(){ M5.update(); auto t = M5.Touch.getDetail(); if (t.wasClicked() || M5.BtnA.wasClicked()) { motor_run = !motor_run; M5.Display.clear(); if (motor_run) { driver.setDriverDirection(HBRIDGE_FORWARD); // driver.setDriverDirection(HBRIDGE_BACKWARD); driver.setDriverSpeed8Bits(127); M5.Display.drawString("Motor Running", M5.Display.width() / 2, M5.Display.height() / 2); } else { driver.setDriverDirection(HBRIDGE_STOP); driver.setDriverSpeed8Bits(127); M5.Display.drawString("Motor Stop", M5.Display.width() / 2, M5.Display.height() / 2); } } get_current_voltage(); delay(10);}
CoreS3 の場合、リセットボタンを 2 秒ほど長押しして、内部の緑色の LED が点灯したらボタンを離します。これでデバイスはダウンロードモードに入り、プログラム書き込みの準備が整います。
Unit HBridge を使用して、モーターの回転と停止を制御します。