Descripción ADM
Componentes
La placa de arduino
1 Resistencia Limitadora de 330 Ohmios.
8 diodo LED de 5mm.
Protoboard y cables para las conexiones y el cable USB para conectar el arduino al ordenador, que su vez nos servirá de alimentación.
Montaje
Ahora vamos a ver el esquema de conexionado en la protoboard usando la placa de arduino como batería o fuente de alimentación.
fijaros que para ahorrar cableado, vamos a usar la línea del negativo, para conectar a ella todos los cátodos, y finalmente desde esta línea sale a la R1 limitadora y desde la resistencia va directo a GND.
Conectaremos 8 diodos LED a 8 de los pines de Arduino y lo programaremos para que estos se enciendan de forma secuencial. Dado que solo va a estar uno encendido y el resto apagado, solo vamos a necesitar una resistencia limitadora conectadas en común a todos los diodos.
Componentes
La placa de arduino
1 Resistencia Limitadora de 330 Ohmios.
8 diodo LED de 5mm.
Protoboard y cables para las conexiones y el cable USB para conectar el arduino al ordenador, que su vez nos servirá de alimentación.
Esquema
El LED1 se ha conectado al pin 12, el LED2 al pin 11 y así sucesivamente hasta el LED8 que se ha conectado al pin 5. Los cátodos de los diodos se han conectado en común, y todos se conectan a la R1 de 330 para su protección ya que la idea es encender un solo LED en cada momento, nunca vamos a encender varios LEDs a la vez. y la R1 va conectada a GND, cualquier toma de GND de la placa de Arduino es buena.
El LED1 se ha conectado al pin 12, el LED2 al pin 11 y así sucesivamente hasta el LED8 que se ha conectado al pin 5. Los cátodos de los diodos se han conectado en común, y todos se conectan a la R1 de 330 para su protección ya que la idea es encender un solo LED en cada momento, nunca vamos a encender varios LEDs a la vez. y la R1 va conectada a GND, cualquier toma de GND de la placa de Arduino es buena.
Montaje
Ahora vamos a ver el esquema de conexionado en la protoboard usando la placa de arduino como batería o fuente de alimentación.
fijaros que para ahorrar cableado, vamos a usar la línea del negativo, para conectar a ella todos los cátodos, y finalmente desde esta línea sale a la R1 limitadora y desde la resistencia va directo a GND.
Código
void setup() {
for(int i = 5 ; i < 13 ; i++){
pinMode(i, OUTPUT);
}
}
void loop() {
for(int i = 5 ; i < 13 ; i++){
digitalWrite(i, HIGH);
delay (500);
digitalWrite(i, LOW);
delay (500);
}
}
Resaltar el uso del bucle for
El bucle for
El bucle for es un bucle que nos permite hacer que un bloque de código en su interior se ejecute un número determinado de veces, que nosotros podemos elegir. Ese código se encuentra entre las llaves de apertura y final del propio bucle for. Para ello tenemos entre paréntesis los parámetros que nos permite controlar al bucle for, separados por punto y coma. El primer apartado es la variable de control, que cuenta las repeticiones a partir del número con el que se inicializa dicha variable, y puede contar de uno en uno, de dos en dos, etcétera, dependiendo de como varía el tercer apartado y además puede contar hacia delante o hacia atrás. El segundo apartado es la condición que se debe cumplir para salir del bucle y dejar de repetir el código y en el tercer apartado se decide como se modifica la variable de control, i++ significa sumar 1 a la variable de control, i-- significa restar 1 a la variable de control. y eso es todo.
En la función setup, hemos designado los pines del 5 al 12 con el uso del bucle for.
Creamos el bucle for, con sus tres parámetros:
1 Empezar asignando a la variable i el valor 5, con esto se establece como salida el pin 5 primero.
2 Repetir el código entre llaves mientras que la variable i sea menor que 13, con lo cual cuando haya establecido el pin 12 como salida se parará y saldrá del bucle.
3 Que vaya sumando 1 al valor de i con cada repetición, es decir, primero será el 5, luego el 6 y así hasta el 12 que será el último, luego será el 13 y se cumplirá la condición.
El código que va a repetir el bucle for del setup es pinMode (i, OUTPUT) es decir, i se sustituirá por el 5, luego por el 6 y así sucesivamente, estableciendo así los pines correspondientes como salidas.
El bucle for
El bucle for es un bucle que nos permite hacer que un bloque de código en su interior se ejecute un número determinado de veces, que nosotros podemos elegir. Ese código se encuentra entre las llaves de apertura y final del propio bucle for. Para ello tenemos entre paréntesis los parámetros que nos permite controlar al bucle for, separados por punto y coma. El primer apartado es la variable de control, que cuenta las repeticiones a partir del número con el que se inicializa dicha variable, y puede contar de uno en uno, de dos en dos, etcétera, dependiendo de como varía el tercer apartado y además puede contar hacia delante o hacia atrás. El segundo apartado es la condición que se debe cumplir para salir del bucle y dejar de repetir el código y en el tercer apartado se decide como se modifica la variable de control, i++ significa sumar 1 a la variable de control, i-- significa restar 1 a la variable de control. y eso es todo.
En la función setup, hemos designado los pines del 5 al 12 con el uso del bucle for.
Creamos el bucle for, con sus tres parámetros:
1 Empezar asignando a la variable i el valor 5, con esto se establece como salida el pin 5 primero.
2 Repetir el código entre llaves mientras que la variable i sea menor que 13, con lo cual cuando haya establecido el pin 12 como salida se parará y saldrá del bucle.
3 Que vaya sumando 1 al valor de i con cada repetición, es decir, primero será el 5, luego el 6 y así hasta el 12 que será el último, luego será el 13 y se cumplirá la condición.
El código que va a repetir el bucle for del setup es pinMode (i, OUTPUT) es decir, i se sustituirá por el 5, luego por el 6 y así sucesivamente, estableciendo así los pines correspondientes como salidas.
En la función loop, ocurre lo mismos utilizando el mismo for, vamos a encender y apagar los diodos en orden. Empezando por el conectado al pin 5 y así sucesivamente La velocidad de cambio de diodo la pone los 500 milisegundos de los delays.
El efecto conseguido, es que se enciende el LED más a la izquierda, a continuación el siguiente de su derecha y así hasta que se enciende el último LED todo vuelve a empezar.
El efecto se puede cambiar, modificando el código, es decir, con el mismo circuito obtenemos otro comportamiento, cambiando el código. Para ilustrarlo vamos a hacer que cuando luzca el último diodo, se produzca un efecto rebote, y empiecen a brillar en sentido contrario hasta llegar al primer diodo, y ahí, se vuelve a producir otro rebote, y empiece todo de nuevo. Para ello vamos a modificar el código de la siguiente forma.
void setup() {
for(int i = 5 ; i < 13 ; i++){
pinMode(i, OUTPUT);
}
}
void loop() {
for(int i = 5 ; i < 13 ; i++){
digitalWrite(i, HIGH);
delay (500);
digitalWrite(i, LOW);
delay (500);
}
for(int i = 11 ; i > 5 ; i--){
digitalWrite(i, HIGH);
delay (500);
digitalWrite(i, LOW);
delay (500);
}
}