pdf-icon

Arduino Guide

Unit HBridge Arduino チュートリアル

1. 準備

2. サンプルプログラム

サンプルの説明
Unit HBridge は、モーターの速度、方向、電圧などを設定することができる DC モータードライバモジュールです。Unit HBridge v1.1 バージョンでは、現在のモーターの電流値を読み取ることもサポートしています。

電源スイッチ

モーターの電源選択
Unit HBridge は、DC/DC バックコンバータ回路を内蔵しており、外部から入力された 6 ~ 12V を 5V に変換して、異なるモーターの電源要求に適応できます。また、モーターの電源を外部からの 6 ~ 12V 入力または DC/DC で変換された 5V から選択するためのスイッチも搭載されています。スイッチを HPWR に設定すると外部入力電圧を使用し、5V に設定すると DC/DC 変換後の 5V 電圧を使用します。使用する際は、モーターの仕様に応じて適切な駆動電圧を選択してください。

モーター接続

完全なプログラム


#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);
}

3. コンパイルとアップロード

    1. ダウンロードモード:異なるデバイスではプログラム書き込み前にダウンロードモードに入る必要があります。この手順は使用するメインコントロールデバイスによって異なる場合があります。詳細については、 Arduino IDE のはじめにガイド を参照し、デバイスごとのダウンロード手順をご確認ください。
  • CoreS3 の場合、リセットボタンを 2 秒ほど長押しして、内部の緑色の LED が点灯したらボタンを離します。これでデバイスはダウンロードモードに入り、プログラム書き込みの準備が整います。

    1. デバイスのポートを選択し、Arduino IDE の左上にあるコンパイル&アップロードボタンをクリックして、プログラムのコンパイルとアップロードを行います。

4. モーター制御

Unit HBridge を使用して、モーターの回転と停止を制御します。

On This Page