Descripción:
En el siguiente laboratorio llevaremos a cabo un circuito en el cual se controlaran 8 LEDS desde el arduino. el encendido del LED se moverá de izquierda a derecha y viceversa.
Materiales:
- Computador (con el debido software del arduino).
- Protoboard.
- Arduino ( con su respectivo cable USB).
- LED.
- Resistencia 220 ohm.
- Cables.
Diagramas:
Montaje
Esquemático
PCB
Código
Esta primera versión es sencilla de entender, tenemos 8 LEDS cada uno conectado a un pin digital del Arduino. Comenzamos configurando cada uno de los pines como salida (OUTPUT), y luego se utiliza digitalWrite()para prender y apagar cada LED en la forma que se necesita.
- /** Laboratorio #1 **
- * Universidad Santiago de Cali
- * Programación de sistemas embebidos
- * Laboratorio 01: 8 LEDs en linea
- * Autor: Johnson Camilo Barona Sanchez
- * Descripcion:
- * Mover un LED encendido de Izquierda a Derecha y viceversa
- * Conexiones:
- * 8 LEDs + resistencias a los pines D2 .. D9
- * Version: 1
- */
- /********** Librerias **********/
- // ninguna
- /********** Constantes **********/
- // ninguna
- /********** Objetos **********/
- // ninguno
- /********** Variables **********/
- // ninguna
- /********** Configuracion **********/
- void setup() {
- pinMode(2, OUTPUT);
- pinMode(3, OUTPUT);
- pinMode(4, OUTPUT);
- pinMode(5, OUTPUT);
- pinMode(6, OUTPUT);
- pinMode(7, OUTPUT);
- pinMode(8, OUTPUT);
- pinMode(9, OUTPUT);
- } // end setup()
- /********** Ciclo Principal **********/
- void loop() {
- // Acciones
- digitalWrite(2, HIGH);
- delay(1000);
- digitalWrite(2, LOW);
- delay(1000);
- digitalWrite(3, HIGH);
- delay(1000);
- digitalWrite(3, LOW);
- delay(1000);
- digitalWrite(4, HIGH);
- delay(1000);
- digitalWrite(4, LOW);
- delay(1000);
- digitalWrite(5, HIGH);
- delay(1000);
- digitalWrite(5, LOW);
- delay(1000);
- digitalWrite(6, HIGH);
- delay(1000);
- digitalWrite(6, LOW);
- delay(1000);
- digitalWrite(7, HIGH);
- delay(1000);
- digitalWrite(7, LOW);
- delay(1000);
- digitalWrite(8, HIGH);
- delay(1000);
- digitalWrite(8, LOW);
- delay(1000);
- digitalWrite(9, HIGH);
- delay(1000);
- digitalWrite(9, LOW);
- delay(1000);
- } // end loop()
- /********** Funciones **********/
- // ninguna
- /********** Fin ***********/
como podemos observar, el código anteriormente escrito es demasiado largo. Este se puede reducir por medio de un ciclo llamado en programación como (for). A continuación se muestra como se puede reducir dicha escritura.
- /**Laboratorio #1***
- * Universidad Santiago de Cali
- * Programación de sistemas embebidos
- * Laboratorio 01: 8 LEDs en linea
- * Autor: Johnson Camilo Barona Sanchez
- * Descripcion:
- * Mover un LED encendido de Izquierda a Derecha y viceversa
- * Conexiones:
- * 8 LEDs + resistencias a los pines D2 .. D9
- * Version: 2
- */
- /********** Librerias **********/
- // ninguna
- /********** Constantes **********/
- // ninguna
- /********** Objetos **********/
- // ninguno
- /********** Variables **********/
- // ninguna
- /********** Configuracion **********/
- void setup() {
- for (int pin=2; pin<=9; pin++) {
- pinMode(pin, OUTPUT);
- }
- } // end setup()
- /********** Ciclo Principal **********/
- void loop() {
- // Acciones
- for (int pin=2; pin<=9; pin++) {
- digitalWrite(pin, HIGH);
- delay(1000);
- digitalWrite(pin, LOW);
- delay(1000);
- }
- } // end loop()
- /********** Funciones **********/
- // ninguna
- /********** Fin ***********/
- /**Laboratorio #1**
- * Universidad Santiago de Cali
- * Programación de sistemas embebidos
- * Laboratorio 01: 8 LEDs en linea
- * Autor: Johnson Camilo Barona Sanchez
- * Descripcion:
- * Mover un LED encendido de Izquierda a Derecha y viceversa
- * Conexiones:
- * 8 LEDs + resistencias a los pines D2 .. D9
- * Version: 3
- */
- /********** Librerias **********/
- // ninguna
- /********** Constantes **********/
- // ninguna
- /********** Objetos **********/
- // ninguno
- void setup() {
- for (int P = 2; P <= 9; P++)
- pinMode (P, OUTPUT);
- }
- // Funciones
- void prender (int p, int t)
- {
- digitalWrite(p, HIGH);
- delay (t);
- }
- void apagar (int p, int t)
- {
- digitalWrite(p, LOW);
- delay (t);
- }
- void loop()
- {
- for ( int p = 2; p <= 9; p++)
- {
- prender (p, 200);
- apagar (p, 200);
- }
- for ( int p = 8; p >= 3; p--)
- {
- prender (p, 200);
- apagar (p, 200);
- }
- }
Proceso de Montaje
Vídeos
Incrementamos la velocidad de encendido y apagado de los LEDS.
No hay comentarios:
Publicar un comentario