Detectar qué detector de IR se activó usando un pin

3

Tengo un proyecto que tiene 6 LEDs de infrarrojos y detectores.

El proyecto debe detectar cuándo se rompe alguno de los 6 haces y exactamente cuál se rompió. Me gustaría poder usar solo un pin de entrada para detectar si se ha roto alguno de estos.

¿Qué tipo de configuración de hardware necesitaría para lograr esto?

Algunas notas más: Actualmente se lee un alto cuando se interrumpe el haz. La rotura real en el haz IR es extremadamente corta. (Una moneda cayendo) Mi método preferido sería utilizar una interrupción si esto es posible.

    
pregunta Michael Frey

3 respuestas

5

Editar: Se modificó la respuesta después de que el OP la aclaró acerca de las pulsaciones simultáneas
Si es necesario detectar varios detectores, hasta 6, para posibles interrupciones simultáneas, la solución descrita en esta publicación en los foros de Arduino es utilizable. Sustituya los "botones" a los que se hace referencia en la publicación, con sus líneas de alto cuando interrumpido de los 6 sensores. Cada línea del detector se conectará a la resistencia especificada en esa publicación, y los valores ADC recibidos indicarán qué combinación de detectores se interrumpe:

BUTTONS        VALUES     RESISTORS
btn 1          837-838    220
btn 2          737-738    390
btn 3          610-611    680
btn 4          318-319    2.2k
btn 5          178-179    4.7k
btn 6          91-92      10k
btn 1 + btn 2  896-897      
btn 1 + btn 3  877-878      
btn 1 + btn 4  851-852      
btn 1 + btn 5  844-845      
btn 1 + btn 6  840-841      
btn 2 + btn 3  821-822      
btn 2 + btn 4  769-770      
btn 2 + btn 5  753-754      
btn 2 + btn 6  745-746      
btn 3 + btn 4  674-675      
btn 3 + btn 5  643-644      
btn 3 + btn 6  627      
btn 4 + btn 5  408-409      
btn 4 + btn 6  363-364      
btn 5 + btn 6  243

Si la MCU de su elección tiene un comparador con activación por flanco en las entradas analógicas, se generará una interrupción cada vez que el voltaje aumente por encima de 0.5 voltios o algo así funcionará.

Si necesita que se detecten más de 2 interrupciones simultáneas, una alternativa sería utilizar un IC de escaneo clave que proporcione una salida en serie, como MAX6955 o TCA8418 , luego lea la salida de dicho IC usando una lectura I2C en una sola línea de entrada.

    
respondido por el Anindo Ghosh
2

¿Tienes un reloj del sistema? ¿Qué hay de usar un registro de desplazamiento? Conecte las seis entradas IR al lado paralelo del registro de desplazamiento y la serie a su microcontrolador. La desventaja aquí, ya que solo tiene un pin, necesitará leer continuamente en las entradas paralelas a una frecuencia suficiente y verificar si hay uno en el byte serie. El que obviamente indica el sensor que disparó. Esto también funciona si se rompe más de una viga a la vez. Creo que se puede conectar un diodo a cada una de las entradas paralelas al reloj de carga paralelo, pero no estoy seguro de que esto funcione. Creo que una mirada extensa a través de algunas hojas de datos diría si vale la pena probar esto o no. Siempre puede recurrir a la excelente solución analógica proporcionada.

    
respondido por el Samuel
0

La configuración del hardware depende de lo que su software pueda manejar.

Puede tener 6 detectores con salida de nivel lógico para preajustar un contador y generar un número de pulsos O un ancho de pulso que corresponde a cada valor de moneda. Podría ser una entrada de sondeo, pero preferiblemente una entrada de interrupción que se pueda medir para el conteo de pulsos o el ancho.

¿Cuál prefieres?

Pero lo que es más importante, ¿cuáles son sus limitaciones de espacio y presupuesto? ¿Ha considerado la protección de seguridad anti-piratería y los derechos de copyright de "dicho sensor de luz y dicha moneda en dicha caja de monedas"

    
respondido por el Tony EE rocketscientist

Lea otras preguntas en las etiquetas