detectar voltaje por arduino

0

He cableado un circuito simple con batería de 9V, LED rojo, resistencia de 10K para encender la luz.

Y me gustaría saber si el LED está encendido o no usando arduino.

Simplemente conecté el pin A0 de Arduino y el cable + LED. A continuación, si obtengo valor de A0 utilizando la función analogRead (), devuelve 0 siempre. Si acabo de leer A0 sin cable, devuelve valores aleatorios (no sé si es aleatorio o no, de todos modos, parece ser irregular).

Pregunta: ¿Cómo puedo saber si el LED del circuito externo está encendido o no está utilizando Arduino?

PLUS

la pregunta está relacionada con esta pregunta

He probado el siguiente esquema (perdón por su pobre dibujo)

4 digits display ----- 4N35(PIN 1)
           ㄴ---------- 4N35(PIN 2)

ARDUINO 5V ----------- 4N35(PIN 5)
        GND ---------- 4N35(PIN 4)
        A0 ----------- 4N35(PIN 4) <--- This is the goal

Si coloco los LED para cada lado, funciona bien.

El problema es que el voltaje que he medido desde la pantalla de 4 dígitos es demasiado bajo como alrededor de 0.14. Por lo tanto, puede ser la razón por la que el 4N35 no emita ninguna señal (creo que si encendí el rango portátil, el LED lateral de Arduino está encendido por un momento).

Bien, pregunta otra vez por favor !!! Me gustaría saber el estado del alcance portátil y mi intento es averiguar qué LED se enciende en la pantalla de 4 dígitos. Pero, 4N35 no pudo captar su voltaje (aunque no estoy seguro). ¿Cómo puedo hacer esto? Cualquier comentario será útil.

    
pregunta Hongseok Yoon

2 respuestas

1

Supongo que simplemente va a medir la caída de voltaje en el LED y usarlo para determinar si el LED está encendido, esto funcionará pero necesitará un par de componentes adicionales, puede dañar su arduino si se alimenta en una tensión superior a 5V.

simular este circuito : esquema creado usando CircuitLab

En lo anterior, R1 y R2 forman un divisor de voltaje para reducir el voltaje en el pin A0 de tu arduino. Podemos calcular el voltaje máximo que puede usar para permanecer a menos de 5 V en A0:

Vmax = 5.0 / (R2 / (R1 + R2))
     = 5.0 / (47000 / (100000 + 47000))
     = 15.6V

Finalmente, lea el valor de A0 en su código arduino y use la siguiente fórmula para convertir ese valor en un voltaje:

float r1 = 100000;
float r2 = 47000;

float vRaw = (analogRead(0) * 5.0) / 1024.0;
float vDrop = vRaw / (r2 / (r1 + r2));

Dependiendo de la precisión necesaria, es posible que deba meterse con el valor de 5 V anterior y ajustar r1 / r2 a un valor medido (dependiendo de la precisión de las resistencias que esté usando).

Para ver un ejemplo completo, consulte enlace

    
respondido por el Tim
0

Podrías usar un fotorresistor.

           PhotoR     10K
 +5    o---/\/\/--.--/\/\/---o GND
                  |
 Pin 0 o-----------

enlace

    
respondido por el hanoo

Lea otras preguntas en las etiquetas