Lea el estado desde un LED en un MCP23017

0

Ya leí estas 2 preguntas:

Estado de lectura de LED en otro circuito

Lea el estado de un interruptor iluminado de 12v de un Arduino Uno

y puedo leer el estado en un MCP23017 controlado por una NodeMCU V1

Tengo el siguiente circuito:

simular este circuito : esquema creado usando CircuitLab

Y necesito obtener una lectura de 1 o 0 para cada LED que está ENCENDIDO o APAGADO. Este es mi código:

#include <Wire.h>
#include "Adafruit_MCP23017.h"

Adafruit_MCP23017 mcp;

int value = 0;
int total = 0;

void setup() { 
  mcp.begin(0,D2,D1);

  for (int a = 0 ; a <= 15; a++) {
  mcp.pinMode(a, INPUT);
  mcp.pullUp(a, LOW);  // 100K pullup internally <- I tried commenting it out and changing it to HIGH
  }

}

void loop() {
  total = 0;
  for (int a = 0 ; a <= 15; a++) {
    value =  mcp.digitalRead(a);
    Serial.print(value);
    total += value;
  }
  Serial.println();
  Serial.println(total);
  delay(200);
}

Todo lo que obtengo es: LED encendido y apagado, pero la lectura es 0 (o 1 si uso la opción de extracción) o recibo la luz LED pero la lectura siempre es 0.

¿Hay alguna diferencia en tener un arduinio o nodeMCU directamente o hay algo que deba hacer para que funcione?

    
pregunta nicocesar

1 respuesta

1

Como lo mencionó Peter, todas las entradas de medición están conectadas a tierra. Podrías hacer algo como esto

simular este circuito : esquema creado usando CircuitLab

De esta manera usted mide 660mV cuando el LED activo está drenando 20mA. Por cierto, el 33R parece ser bastante pequeño, es posible que desee verificar nuevamente el voltaje de avance efectivo de sus LED.

    
respondido por el Humpawumpa

Lea otras preguntas en las etiquetas