Paso 3: Conectarlo
es como una barra transversal.
Mientras que uno puede utilizar cualquiera de los pines de I/O en el Arduino, elegí los pernos específicamente para permitirme usar código muy compacto para encender las columnas. Esto se explicará en detalle más adelante.
Para nuestra matriz de LED 5 x 5, conducimos directamente el LED usando 10 pines de I/O digitales de Arduino.
Los ánodos están conectados a los pines. Algunos diseños existentes, como la de one en el Arduino Playground no se molesten en utilizar resistencias de limitación actuales. Esto no es una práctica de buen diseño, y puede resultar en quema LED, o peor aún, un quemado de Arduino. Cada pin I/O en el Arduino puede fuente o fregadero hasta 40 mA de corriente. El LED que tiene las siguientes características eléctricas:
Voltaje delantero = 3.2 ~ 3, 4V
Máxima corriente continua adelante = 20mA
Así que si queremos manejar el LED de brillo máximo, tenemos a 20mA de corriente.
Para calcular el valor de la resistencia adecuada, utilizamos ley de Ohm:
R = (Vcc - Vf) si
donde
R = valor de la resistencia en ohmios
VCC = tensión de alimentación = 5V para el Arduino Duemilanove
VF = tensión directa del LED. Usé el promedio, 3,3 v
Si = corriente en amperios del LED = .020A
Enchufar los valores, obtenemos R = (5-3.3) /.02 = 85 ohmios. El valor más cercano del resistor estándar disponible es de 100 ohms. Siempre ronda en vez de abajo, porque si redondeo, se exceda la corriente máxima admisible.
Aviso que sólo utilizamos 5 resistencias. No tenemos que poner uno en cada LED, porque sólo se conduce una fila, un máximo de 5 LED a la vez. Dije anteriormente que cada pin I/O puede conducir 40mA de corriente continua, así que ¿por qué no podemos conducimos los LEDs todo a la vez? Es porque la otra restricción es que la corriente de paseo total resumida a través de los pernos no debe exceder 200mA. Si encendemos todos 25 LED a la vez, luego de 25 * 20 mA = 500mA flujo, que es manera encima espec.
¿Así que tal vez podemos encender 1 fila en un momento y analizar las filas, como el funcionamiento de un CRT? Si giramos a la vez en una fila entera de LED, la corriente es de 20 mA * 5 = 100mA. Esto, al principio, parece aceptar, porque cada pin de columna (ánodo) es sólo la compra de componentes 20mA, y estamos por debajo de límite de corriente de 200 mA total de Atmega368P. Sin embargo, en el análisis de más, incluso no podemos conducir 5 LED a la vez. ¿Por qué? Porque los cátodos de los 5 en una fila LED está conectados juntos en un solo pin de I/O, y no estamos autorizados a hundirse más de 40 mA por pin. Por lo tanto, escribiremos nuestro software de modo que no más de 2 LED de encender a la vez, así que los pernos de la fila (cátodo) hundirán un máximo de 40mA cada. Ahora, a pesar de que estamos en el límite permitido de corriente continuado, generalmente no es buena práctica realizar un dispositivo en su límite máximo. Sin embargo, puesto que vamos a pulso cada LED brevemente y dejar persistencia de la visión de crear la ilusión de que son todos de una vez, está bien.
Nota: he probado el mio funcionando con 5 LED iluminado por fila por varias horas y funcionaba bien, pero siempre es mejor diseñar tus circuitos dentro de las especificaciones, para asegurar la confiabilidad a largo plazo.
El diagrama del circuito está por debajo. Para resumir las conexiones:
Columnas de LED (ánodos)
Col 0 se conecta al pin digital 12 (a través de un resistor de 100 ohmios)
Col 1 se conecta al pin digital 11 (a través de un resistor de 100 ohmios)
Col 2 se conecta al pin digital 10 (a través de un resistor de 100 ohmios)
col 3 se conecta al pin digital 9 (a través de un resistor de 100 ohmios)
Col 4 se conecta al pin digital 8 (a través de un resistor de 100 ohmios)
Filas de LED (cátodos)
fila 0 se conecta al pin digital 7
fila 1 se conecta al pin digital 6
la fila 2 se conecta al pin digital 5
fila 3 se conecta al pin digital 4
fila 4 se conecta al pin digital 3
Utiliza cableado de punto a punto simple, con derretimiento caliente pegamento en la parte posterior de la pantalla. Sé que es desordenado, pero no ser visto, de todos modos.
Solución de problemas
Si tu matriz no funciona correctamente, en primer lugar, doble debe comprobar el cableado. El bosquejo también tiene un modo de prueba, que los ciclos a través de uno de los LED lentamente bastante que se puede ver. Se puede habilitar por tenga la siguiente línea en el dibujo:
#define TESTMODE / / secuencia continuamente a través de los LED
mediante la eliminación de la principal / /.
Un error potencial accidentalmente es intercambiar las columnas y filas. Si tu matriz es como este video http://www.youtube.com/watch?v=JpLgLbWMrWo en TESTMODE, entonces usted ha cometido este error y necesita intercambiar las conexiones de fila y columna a tu Arduino. Gracias a 303_addict de usuario de Instructables para postear el video.
Si el cableado es correcto y están recibiendo más de un LED a encendido un tiempo, usted podría ser uno de los desafortunados que tiene LED que tienen una elevada corriente cuando sesgada inversa de fuga. Blanco LED son particularmente susceptibles de a este problema. Si este es el caso, usted necesitará agregar serie bloqueo de diodos en las entradas a todas las columnas, así como en todas las salidas de la fila. Usted va a necesitar 10 diodos. Cualquier diodo de pequeña señal funcionará como el 1N4001, 1N4148, 1N914, etc.. Usted necesitará también ajustar los valores de resistencia, porque añadirán diodos de dos series ~1.4V de tensión. Así que en mi ecuación anterior, utiliza 3.6 para VCC. Para mi 3.3V LED de usted terminar con R = (5-1.4-3.3V)/20mA = 15 ohmios. No tengo ninguna resistencias 15 ohm útiles, para sustituir 10 ohmios en lugar de ello y utilizando un amperímetro, mide 19.5mA... dentro de especificaciones. Ver la última imagen adjunta.