pdf-icon

Arduino Guide

Module 4In8Out Arduino チュートリアル

1. 準備

2. サンプルプログラム

サンプルの説明
Module 4In8Out は、4つの無源信号入力インターフェースと8つのMOSドライブ出力インターフェースを提供し、デジタル信号入力と負荷制御を簡単に実現できます。

接続図

  • 4x 入力インターフェース:
    • 入力レベルは 5V 未満が必要です。
  • 8x 出力インターフェース:
    • 出力インターフェースの電源は Power In インターフェースから供給され、最大 24V です。したがって、負荷を駆動するためには、Power In インターフェースに適切な電圧を供給する必要があります。出力制御は MOS トランジスタスイッチを通じて行われ、1 回の通電で最大 1A の電流を通すことができます。

完全なプログラム

M5Unified と M5GFX を基にした基本的な表示とスイッチ制御を追加し、電流値の読み取りとタッチによる電源制御を実現します。

#include <M5Unified.h>
#include "MODULE_4IN8OUT.h"

MODULE_4IN8OUT module;

void setup()
{
    M5.begin();

    i2c_port_t i2c_port = M5.In_I2C.getPort();
    i2c_port_t scl_pin  = M5.In_I2C.getSCL();
    i2c_port_t sda_pin  = M5.In_I2C.getSDA();
    auto twowire        = ((i2c_port == 1) ? &Wire1 : &Wire);

    while (!module.begin(twowire, sda_pin, scl_pin, MODULE_4IN8OUT_ADDR)) {
        Serial.println("4IN8OUT INIT ERROR");
        M5.Lcd.println("4IN8OUT INIT ERROR");
        delay(1000);
    };
    Serial.println("4IN8OUT INIT SUCCESS");
}

long interval = 0;
bool level    = false;

void loop()
{
    for (uint8_t i = 0; i < 4; i++) {
        if (module.getInput(i) != 1) {
            M5.Lcd.fillRect(60 + 60 * i, 0, 25, 25, TFT_GREEN);
        } else {
            M5.Lcd.fillRect(60 + 60 * i, 0, 25, 25, TFT_RED);
        }
        M5.Lcd.drawString("IN" + String(i), 40 + 60 * i, 5);
    }
    M5.Lcd.drawString("4IN8OUT MODULE", 60, 80, 4);
    if (millis() - interval > 1000) {
        interval = millis();
        level    = !level;
        for (uint8_t i = 0; i < 8; i++) {
            module.setOutput(i, level);
            if (level) {
                M5.Lcd.fillRect(20 + 35 * i, 200, 25, 25, TFT_BLACK);
                M5.Lcd.fillRect(20 + 35 * i, 200, 25, 25, TFT_BLUE);
            } else {
                M5.Lcd.fillRect(20 + 35 * i, 200, 25, 25, TFT_BLACK);
                M5.Lcd.drawRect(20 + 35 * i, 200, 25, 25, TFT_BLUE);
            }
            M5.Lcd.drawString("OUT" + String(i), 18 + 35 * i, 180);
        }
    }
    delay(500);
}

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

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

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

4. 入力監視と出力制御

On This Page