M5Stack Reflective IR モジュールが 0 のままになる問題について(相談)
-
【詳しい状況の説明】
M5Stack Reflective IR モジュールを接続し、アナログ値(analogRead(36))を取得しようとしても 常に 0 のまま になってしまう。
【環境情報】
•使用モジュール:
・M5Stack Basic v2.7
・M5Stack Reflective IR(反射型赤外線センサ)
•開発環境:
・Arduino IDE 2.3.4
・CH9102_VCP_SER_Windows
•使用ボード:M5Core
•配線:
•VCC → 5V(または 3.3V)
•GND → GND
•Analog OUT → GPIO36(VP)
•Digital OUT → GPIO26【再現可能なコード】
#include <M5Unified.h> // ピン設定(M5Stack Basic の場合) #define IR_ANALOG_PIN 36 // 反射強度(アナログ) #define IR_DIGITAL_PIN 26 // デジタル出力(HIGH/LOW) void setup() { auto cfg = M5.config(); M5.begin(cfg); // ピンの初期設定 pinMode(IR_ANALOG_PIN, INPUT); pinMode(IR_DIGITAL_PIN, INPUT); // 画面の初期化 M5.Lcd.fillScreen(BLACK); M5.Lcd.setTextSize(2); M5.Lcd.setTextColor(WHITE); } void loop() { M5.update(); // センサの値を取得 int analogValue = analogRead(IR_ANALOG_PIN); int digitalValue = digitalRead(IR_DIGITAL_PIN); // 画面を更新 M5.Lcd.fillScreen(BLACK); // タイトル M5.Lcd.setTextColor(WHITE); M5.Lcd.setTextSize(3); M5.Lcd.setCursor(40, 10); M5.Lcd.print("Unit-Reflective IR"); // 波形アイコン(簡易的な描画) M5.Lcd.drawFastHLine(50, 60, 60, CYAN); M5.Lcd.drawFastVLine(80, 50, 20, CYAN); M5.Lcd.drawFastHLine(80, 70, 60, CYAN); M5.Lcd.drawFastVLine(110, 50, 20, CYAN); // アナログ値 M5.Lcd.setTextColor(CYAN); M5.Lcd.setTextSize(4); M5.Lcd.setCursor(140, 80); M5.Lcd.printf("%d", analogValue); // デジタル出力のラベル M5.Lcd.drawFastHLine(50, 150, 120, GREEN); M5.Lcd.drawFastVLine(90, 140, 20, GREEN); M5.Lcd.drawFastHLine(90, 160, 80, GREEN); M5.Lcd.drawFastVLine(130, 140, 20, GREEN); // デジタルのHIGH/LOW 表示 M5.Lcd.setTextSize(4); if (digitalValue == HIGH) { M5.Lcd.setTextColor(GREEN); M5.Lcd.setCursor(140, 170); M5.Lcd.print("HIGH"); } else { M5.Lcd.setTextColor(RED); M5.Lcd.setCursor(140, 170); M5.Lcd.print("LOW"); } delay(200); }
【試したこと】
1.シリアルモニタで確認(ボーレート 115200bps)
・Serial.println(analogRead(36)); を実行
・値が 0 のまま変化しない
2.センサーの前に手をかざしてみた
•アナログ値(0-4095)が変化するか確認
•何も変化なし
3.センサーの配線チェック
•VCC → 5V または 3.3V に正しく接続
•GND → GND に接続
•Analog OUT → GPIO36(ESP32のADCピン) に接続
•配線に間違いなし
4.センサーの電圧測定(マルチメーターでチェック)•VCC-GND 間の電圧:5V(または 3.3V)
•Analog OUT-GND 間の電圧:0V のまま(手をかざしても変化なし)
5.シンプルなコードで動作確認
•analogRead(36) の値が 0 のまま
•analogReadResolution(12); を追加 → 変化なし
•pinMode(36, INPUT); を明示的に設定 → 変化なし
6.デジタル出力(GPIO26)の確認
•digitalRead(26) でチェック → LOW のまま
•センサー自体が反応していない可能性【相談したいこと】
1.M5Stack Reflective IR の Analog OUT が 0V のままなのは正常なのか?
2.センサーの反射感度(可変抵抗)を調整しても変化がない場合、故障の可能性はあるか?
3.COM3のポートが”LilyGo T-Display”と表示されるのはなぜか、ここが原因か?💡 同じセンサーを使用している方がいれば、Analog OUT の正常な動作電圧範囲や、手をかざしたときの挙動を教えていただけると助かります!