🤖Have you ever tried Chat.M5Stack.com before asking??😎
    M5Stack Community
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    • Register
    • Login

    M5Stack Reflective IR モジュールが 0 のままになる問題について(相談)

    日本語フォーラム
    1
    1
    209
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • S
      shinshin8
      last edited by shinshin8

      【詳しい状況の説明】

      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 の正常な動作電圧範囲や、手をかざしたときの挙動を教えていただけると助かります!

      1 Reply Last reply Reply Quote 0
      • First post
        Last post