Hoy se muestra el proceso de confección de un cubo de Leds de 3x3x3 con Arduino, destacando la parte electrónica y la programación. Clase911 ha querido dar inicio a sus proyectos, es por este que decidimos crear un cubo de leds 3x3x3.
En lo personal, he observado algunos videos donde se tiene cubos de 8x8x8. En este caso para dejarlo accesible a las personas que deseen también hacerlo, se ha hecho solamente con 9 leds en tres niveles. En este proyecto se verán algunos conceptos de electrónica básica, y de arduino.
¡Manos a la obra!
Nivel: Básico
Costo: dinero > 20 USD.
Materiales:
- 27 Leds
- 3 Transistores NPN (2N3904 ó también 2N2222)
- 3 Resistencias de 10 kΩ
- 9 Resistencias de 220 Ω
- 1 Breadboard
- 1 Arduino UNO
- Cables de conexión (4 ft bastarán) ó Arduino Jumper Wires
Paso 1: Creando el circuito
En la compra de materiales, fíjense cuando vayan a la electrónica de comprar leds que tengan las patillas suficientemente largas. Por todo lo demás, no hay que tener problema.
La primera etapa consiste en la construcción del cubo. Para esto, se recomienda tener una tabla de madera y hacer una plantilla donde irán los leds cuando se vayan a soldar.
El área de esta plantilla dependerá de la longitud que tenga la patilla más larga de su led. Para abrir los huecos se recomienda el uso de un taladro con broca de 5 mm que es más o menos el diámetro de los leds.
Ya que se tiene la plantilla se prodece a doblar los cátodos de los leds. En este proyecto trabajaremos cada nivel como cátodo común. Esto quiere decir que todos los cátodos de cada leds deberán estar unidos, y mirando hacia adentro.
Existen tres manera de identificar cuál es el cátodo:
- Es la patilla más corta de led
- El lado que es plano sobre el led
- Se encuentra conectado a la pieza más grande en el interior de led
Utilice unos lagartos para mantener unidos el punto común entre los dos leds que va a soldar. Cuando haya terminado de soldar todos los leds, entonces repita este procedimiento tres veces.
Lo siguiente es conectar los niveles, uno encima de otro. Para esto, doblaremos un poco hacia afuera los ánodos de los leds, para cuando se vayan a soldar, no haya problema.
Nos quedaría algo como ésto.
A continuación se presenta el esquemático del circuito:
Ahora, para conectar el cubo al arduino, necesitaremos varios componentes. Uno de ellos son las resistencias. Como el arduino brinda a cada una de sus salidas digitales una tensión de 5 V, no podemos someter semejante voltaje a los leds, para eso se utiliza una resistencia que disminuirá el voltaje aplicado permitiendo que nuestros leds no se quemen. En este caso usamos un valor de 220 Ω .
Ahora, para lograr que los leds se enciendan necesitamos el uso del transistor en modo de conmutación es decir que los transistores cambian su región de operación: de corte a saturación. Así cuando el arduino manda una pequeña corriente (no más de 40 mA) el transistor se activa en saturación ocasionando que el colector “se conecte” con el emisor dirigiendo los cátodos a tierra.
En este caso, para operar el transistor en conmutación se necesita conectar la base del transistor a través de una resistencia de 10 kΩ con los pin digital de arduino, mientras que el colector irá conectado a los cátodos del cubo, y finalmente el emisor a tierra.
Paso 2: Creando el programa
Lo único que falta hacer es bajar el programa creado en processing/wiring para nuestro Arduino UNO que nos permitirá encender los leds. También si quiere, puede crear su propio programa para el encendido de leds.
Existe una gran cantidad de ejemplos que nos permitirá hacer de nuestro cubo, una belleza en acción =)
Gracias a Electrónica de Segundo pudimos probar el cubo con el siguiente código:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
int Columnas[] = {1, 2, 3, 4, 5, 6, 7, 8, 9}; int Filas[] = {12, 11, 10}; int RandFila; //Variable para fila aleatoria int RandColumna; //Variable para columna aleatoria void setup() { int contador; for (int contador = 0; contador < 10; contador++) { pinMode(Columnas[contador], OUTPUT); } for (int contador = 0; contador < 4; contador++) { pinMode(Filas[contador], OUTPUT); } } void loop() { RandLed(); } void RandLed() { RandFila = random(0,3); RandColumna = random(0,9); digitalWrite(Filas[RandFila], HIGH); digitalWrite(Columnas[RandColumna], HIGH); delay(75); digitalWrite(Filas[RandFila], LOW); digitalWrite(Columnas[RandColumna], LOW); delay(50); } |
También puedes bajar la siguiente librería de ejemplo de cubo de leds para arduino.
¿Cómo utilizar las librerías arduino en fedora?
Para utilizar las librerías de arduino, deberás primero descomprimir el archivo de librería que quieras utilizar, moviéndola a la carpeta /skecthbook/librareis de arduino. Si estas trabajando en fedora, puedes encontrar esta carpeta en el directorio:
/home/tuusario
Si no ves la carpeta skeetchbook, puedes ingresar al IDE de arduino y en la solapa File>Preferencespodrás encontrar la dirección del directorio sketchbook. Si no tienes la carpeta libraries creada dentro de sketchbook, creála.
Reinicia el IDE de arduino (si lo tuviste abierto) y busca en File>Sketchbook>libraries>LedCube>ledcube
Compila y chan chan!!!!!!!!!!
Espero que les haya gustado, y por favor si tienen alguna pregunta, consulta, sugerencia… coméntenla.
¿Realmente hacen falta los transistores? es decir Arduino puede encender los LEDs simplemente aplicando un HIGH (estado alto).
¿Para qué sirven realmente esos transistores ahí? Se que es por el corte-saturación, pero eso se logra con HIGH y LOW en la programación =S
Perdón por la ignorancia no llevo bien ese tema
Luis, a pesar de que consideres que podrías utilizar salida directa del arduino para encender o apagar las capas de los cubos la respuesta es que en electrónica las cosas no son tan sencillas como «aparentan».
Un transistor tiene diversas características que le hacen ser un elemento perfecto para este tipo de aplicaciones.
Por ejempo imagina que quisieras crear un cubo de leds mucho más grande y que además, quisieras cambiar la alimentación del cubo a 9 V. El uso del transistor en este caso es indispensable, primero porque te permite trabajar con una fuente de alimentación distinta que la del arduino que puede trabajar ya sea en 5V o 3.3V, segundo porque te permite aislar tu circuito de tal manera que el arduino únicamente se encargaría de indicar cuándo trabaja con una capa específica del cubo sin tener que entregar inyectarle tanta corriente a los leds. Recuerda que el arduino en sus I/O digitales te brinda un máximo de 40 mA y si tienes un cubo de leds de 5x5x5, la cantidad de corriente que tendrías que brindar sería mucho mayor a 40 mA. Recuerda que otra característica importante del transistor es que sirve como un amplificador ya que toma la corriente de base y ésta se amplifica en la corriente de colector.
Y así hay otras cosas que podría comentarte pero en general esas son una de las más importantes. Espero que te haya servido y saludos.
Mucho más claro amigo, los transistores, tan útiles pero se pueden escribir 100 libros con ellos… D:
A ver si con el tiempo domino mejor el tema jaja
Gracias.
Sí, se puede escribir muchísimo sobre los transistores. 😀
La que te escribe es Kiara, en este caso sería amiga.
Saludos,
En este caso los transistores hacen falta, para que permitan trabajar en modo multiplexado con catodo común y poder seleccionar que fila de leds encender. Pero supongamos que lo que se desea es encender toda una columna??, como harías?. Para hacer esto hay que multiplexar usando los transistores y jugar con la persistencia visulal del ojo humano que varía entre los 15 a 20 ms. Por ejemplo enciendo led 1 fila 1 un tiempo x , con el transistor fila 1, lo apago y enciendo el mismo led pero fila 2 es decir transistor fila 2 otro tiempo x, lo apago y hago lo mismo con el de fila 3. Todo esta secuencia si la hago lenta se va a notar es pestaneo, pero si entre un led y otro hay 20ms/3=x parecerá que están todos encendidos.
Buscando información por la web llegue al foro y les agradezco mucho por compartirnos este muy buen tutorial, quisiera hacerles una pregunta yo tengo en mente realizar este proyecto pero seria un 5x5x5 necesitaría los mismos componentes algo asi.
125 Leds
5 Transistores NPN (2N3904 ó también 2N2222)
5 Resistencias de 10 kΩ
25 Resistencias de 220 Ω
o tendría que variar algun componente muchas gracias de antemano por la respuesta.
Hola una consulta tienes el circuito dibujado o el conexionado electrico con sus respectivos calculos ?
Buenas tardes, te felicito muy buen tutorial mi estimada.
Estoy interasodo en hacer un cubo de leds de 8x8x8 tendras algo de informacion al respecto? de antemano gracias y espero tu respuesta.
Saludos
Pedro Pacheco B.
Buen dian disculpe una pregunta, que pasa si no quisiera usar el void random. y si soolo quisiera encender fila por fila, y columna por columna. porfavor responda.
Me despido con gratitud de su persona esperando una respusta favorable
B R O M O M E N T O
xD