Proyecto 6: LED secuencial
Introducción:
El proyecto de luces secuenciales consiste en seis LEDs que prenden y apagan de forma secuencial, este efecto es muy utilizado en anuncios luminosos, en este proyecto escribiremos un programa que simule dicho efecto.
Hardware autilizar:
Placa Arduino
Cable USB
6 LEDs
6 resitencias 220 ohms
Cables
Diagrama esquemático:
Conexióndel circuito:
Sketch de ejemplo:
/////
int BASE = 2; //declaramos variable BASE número del pin donde inician los LEDs
int NUM = 6; //declaramos variable NUM número total de LEDs
void setup()
{ //se abre llave función void setup
for (int i = BASE; i< BASE+NUM; i++) //crea variable entera i, le asigna el valor BASE
//compara i con el valor BASE +NUM, si se cumple la condición ejecuta las instrucciones //de la función, incrementa el valor de i en uno
{ //se abre llave función for
pinMode(i,OUTPUT); // configura pin i como salida (OUTPUT)
} //se cierra llave función for
} //se cierra llave función void setup
void loop()
{ // se abre llave función void loop
for(int i=BASE;i<BASE +NUM; i++) //crea variable entera i, le asigna el valor BASE
//compara i con el valor BASE +NUM, si se cumple la condición ejecuta las instrucciones //de la función, incrementa el valor de i en uno
{ // se abre llave función for
digitalWrite(i,LOW); // pone el pin i correspondiente en estado apagado (LOW)
delay(200); // espera 200 milisegundos
} // se cierra llave función for
for(int i=BASE;i<BASE +NUM; i++) //crea variable entera i, le asigna el valor BASE
//compara i con el valor BASE +NUM, si se cumple la condición ejecuta las instrucciones //de la función, incrementa el valor de i en uno
{ // se abre llave función for
digitalWrite(i,HIGH); // pone el pin ien estado encendido (HIGH)
delay(200) ; // espera 200 milisegundos
} // se cierra llave función for
} // se cierra llave función void loop
/////
En este programa utilizamos la función for para ejecutar varias veces una instrucción en vez de escribir cada instrucción 6 veces (una para cada LED). Revisa y sube el sketch a la placa Arduino, observa como camina la secuencia.
Analicemos detenidamente el sketch:
void setup()
{ //se abre llave función void setup
for (int i = BASE; i< BASE+NUM; i++) //crea variable entera i, le asigna elvalor BASE
//compara i con el valor BASE +NUM, si se cumple la condición ejecuta las instrucciones de la
//función, incrementa el valor de i en uno
{ //se abre llave función for
pinMode(i,OUTPUT); // configura pin icomo salida (OUTPUT)
} //secierra llave función for
} //se cierra llave función void setup
Con los conocimientos que tenemos hasta este punto hubiéramos configurado los pines de salida de la siguiente forma:
pinMode (2,OUTPUT);
pinMode (3,OUTPUT);
pinMode (4,OUTPUT);
pinMode (5,OUTPUT);
pinMode (6,OUTPUT);
pinMode (7,OUTPUT);
En vez de escribir 6 instrucciones podemos “optimizar” el código, en este caso utilizando la función for
for (int i = BASE; i< BASE+NUM; i++)
- Declara la variable i y le asigna el valor BASE(declarado como 2 al principio del programa)
- pregunta ¿es i menor que BASE+NUM? (BASE = 2, NUM = 6, BASE+NUM = 8)
- SI, ejecuta la instrucción pinMode(i,OUTPUT). NO, termina la función for
- i ++ (i es igual a i +1)
- regresa a comparar de nuevo i con BASE+NUM
De esta forma asigna los pines de salida del 2 al 7, en el momento que el valor de i es igual a 8 ya no se cumple la condición de la función for y ésta termina.
La misma función se utiliza en void loop(), primero enciende los leds de uno por uno y después los apaga de la misma manera.
Reto Proyecto 6:utilizando el potenciómetro cambia la velocidad de la secuencia de LEDs (de 0 a1023 milisegundos) necesitarás la salida analógica del potenciómetro y asignarsu valor a una variable, yo usé velocidad
********************************************************************************
Problemas escribiendo el código? descarga los ejemplos desde mi carpeta compartida en Dropbox:
https://www.dropbox.com/sh/w5h38cdrynqdwhf/AABP7b9T3ADbO4KqiPm4pO-9a?dl=0
Sigue: Proyecto 7: Uso de botones
http://www.taringa.net/posts/ciencia-educacion/19692015/Tutoriales-Arduino-Proyecto-7-Uso-de-Botones.html
Introducción:
El proyecto de luces secuenciales consiste en seis LEDs que prenden y apagan de forma secuencial, este efecto es muy utilizado en anuncios luminosos, en este proyecto escribiremos un programa que simule dicho efecto.
Hardware autilizar:
Placa Arduino
Cable USB
6 LEDs
6 resitencias 220 ohms
Cables
Diagrama esquemático:
Conexióndel circuito:
Sketch de ejemplo:
/////
int BASE = 2; //declaramos variable BASE número del pin donde inician los LEDs
int NUM = 6; //declaramos variable NUM número total de LEDs
void setup()
{ //se abre llave función void setup
for (int i = BASE; i< BASE+NUM; i++) //crea variable entera i, le asigna el valor BASE
//compara i con el valor BASE +NUM, si se cumple la condición ejecuta las instrucciones //de la función, incrementa el valor de i en uno
{ //se abre llave función for
pinMode(i,OUTPUT); // configura pin i como salida (OUTPUT)
} //se cierra llave función for
} //se cierra llave función void setup
void loop()
{ // se abre llave función void loop
for(int i=BASE;i<BASE +NUM; i++) //crea variable entera i, le asigna el valor BASE
//compara i con el valor BASE +NUM, si se cumple la condición ejecuta las instrucciones //de la función, incrementa el valor de i en uno
{ // se abre llave función for
digitalWrite(i,LOW); // pone el pin i correspondiente en estado apagado (LOW)
delay(200); // espera 200 milisegundos
} // se cierra llave función for
for(int i=BASE;i<BASE +NUM; i++) //crea variable entera i, le asigna el valor BASE
//compara i con el valor BASE +NUM, si se cumple la condición ejecuta las instrucciones //de la función, incrementa el valor de i en uno
{ // se abre llave función for
digitalWrite(i,HIGH); // pone el pin ien estado encendido (HIGH)
delay(200) ; // espera 200 milisegundos
} // se cierra llave función for
} // se cierra llave función void loop
/////
En este programa utilizamos la función for para ejecutar varias veces una instrucción en vez de escribir cada instrucción 6 veces (una para cada LED). Revisa y sube el sketch a la placa Arduino, observa como camina la secuencia.
Analicemos detenidamente el sketch:
void setup()
{ //se abre llave función void setup
for (int i = BASE; i< BASE+NUM; i++) //crea variable entera i, le asigna elvalor BASE
//compara i con el valor BASE +NUM, si se cumple la condición ejecuta las instrucciones de la
//función, incrementa el valor de i en uno
{ //se abre llave función for
pinMode(i,OUTPUT); // configura pin icomo salida (OUTPUT)
} //secierra llave función for
} //se cierra llave función void setup
Con los conocimientos que tenemos hasta este punto hubiéramos configurado los pines de salida de la siguiente forma:
pinMode (2,OUTPUT);
pinMode (3,OUTPUT);
pinMode (4,OUTPUT);
pinMode (5,OUTPUT);
pinMode (6,OUTPUT);
pinMode (7,OUTPUT);
En vez de escribir 6 instrucciones podemos “optimizar” el código, en este caso utilizando la función for
for (int i = BASE; i< BASE+NUM; i++)
- Declara la variable i y le asigna el valor BASE(declarado como 2 al principio del programa)
- pregunta ¿es i menor que BASE+NUM? (BASE = 2, NUM = 6, BASE+NUM = 8)
- SI, ejecuta la instrucción pinMode(i,OUTPUT). NO, termina la función for
- i ++ (i es igual a i +1)
- regresa a comparar de nuevo i con BASE+NUM
De esta forma asigna los pines de salida del 2 al 7, en el momento que el valor de i es igual a 8 ya no se cumple la condición de la función for y ésta termina.
La misma función se utiliza en void loop(), primero enciende los leds de uno por uno y después los apaga de la misma manera.
Reto Proyecto 6:utilizando el potenciómetro cambia la velocidad de la secuencia de LEDs (de 0 a1023 milisegundos) necesitarás la salida analógica del potenciómetro y asignarsu valor a una variable, yo usé velocidad
********************************************************************************
Problemas escribiendo el código? descarga los ejemplos desde mi carpeta compartida en Dropbox:
https://www.dropbox.com/sh/w5h38cdrynqdwhf/AABP7b9T3ADbO4KqiPm4pO-9a?dl=0
Sigue: Proyecto 7: Uso de botones
http://www.taringa.net/posts/ciencia-educacion/19692015/Tutoriales-Arduino-Proyecto-7-Uso-de-Botones.html