pdf-icon

Arduino入門

2. デバイス&サンプル

Unit 8Angle Arduino ユーザーガイド

1. 準備作業

2. サンプルプログラム

サンプル説明
Unit 8Angle は、8 チャンネルの可変ポテンショメータ、9 個のプログラム可能な RGB LED、および 1 つのトグルスイッチを統合した入力ユニットです。このサンプルでは、CoreS3 メインコントローラの PORT.A 拡張インターフェースを介して、各チャンネルのポテンショメータの入力状態とトグルスイッチの状態を読み取り、同時に RGB LED を制御します。
cpp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
#include <M5Unified.h>
#include "M5_ANGLE8.h"
M5_ANGLE8 dev;
uint32_t color_list[] = {0xff0000, 0x00ff00, 0x0000ff};
uint8_t color_index = 0;
time_t last_update_time = 0;
void setup()
{
M5.begin();
Serial.begin(115200);
M5.Display.setFont(&fonts::lgfxJapanMinchoP_20);
Wire.begin(2, 1, 100000L);
while (!dev.begin(ANGLE8_I2C_ADDR)) {
M5.Display.drawString("Unit 8Angle init Fail!", M5.Display.width() / 2, M5.Display.height() / 2);
delay(1000);
}
}
void loop()
{
bool switch_status = dev.getDigitalInput();
M5.Display.clear();
M5.Display.setCursor(0, 0);
M5.Display.printf("Switch: %s\r\n", switch_status ? "ON" : "OFF");
for (uint8_t i = 0; i < ANGLE8_TOTAL_ADC; i++) {
uint16_t adc_v = dev.getAnalogInput(i, _12bit);
M5.Display.printf("CH[%d]: %d\r\n", i, adc_v);
}
if (millis() - last_update_time > 1000) {
color_index = (color_index + 1) % 3;
for (uint8_t i = 0; i < ANGLE8_TOTAL_LED; i++) {
dev.setLEDColor(i, color_list[color_index], 80);
}
last_update_time = millis();
}
delay(100);
}

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

    1. ダウンロードモード: 各デバイスはプログラム書き込み前にダウンロードモードに入る必要があり、この手順は主制御デバイスによって異なる場合があります。詳細は Arduino IDE 入門チュートリアル ページ下部のデバイスプログラム書き込みチュートリアル一覧を参照し、具体的な操作方法をご確認ください。
  • CoreS3 の場合、リセットボタンを約 2 秒間長押しして、内部の緑色 LED が点灯するまで押し続けた後、ボタンを離すと、デバイスはダウンロードモードに入り、書き込み待機状態となります。

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

4. 旋盤状態の読み取り

ポテンショメータとスイッチの状態を読み取り表示すると同時に、RGB LED の色を 1 秒ごとに切り替えます.

On This Page