Facebook Twitter RSS Reset

Secuencia de luces con ARDUINO (Para principiantes)

Baja si queres saltarte la introduccion aburrida

Buenas gente de taringa, no voy a dar muchas vueltas. Estudio ingenieria electronica y e conocido y estudiado varios tipos de microprocesadores y microcontroladores, algunos mas faciles y simples y otros mas complejos y potentes.

Pero hace unos dias, para probarlo compre una placa ARDUINO, y la verdad me sorprendio la simplesa con la que se pueden armar circuitos de todo tipo, los cuales si queremos hacer con algun PIC u otro tipo de micro seria un poco mas complejo, por codigo y por todo el circuiterio que necesitariamos. Por eso se me ocurrio poder hacer algunos POST sobre como programar esta plaquetita, ya que casi sin ningun conocimiento en electronica se pueden armar con su ayuda circuitos bastante interesantes.



Segui bajando si preferis ver como se hace con un video

El circuito que implemento esta vez es muy simple, y se puede resumir en unos simples pasos:

1) Coloco 8 leds en la protoboard (se puede armar en el aire, aunque seria un poco mas complicado), conectando todas las patas negativas juntas en la linea de negativo de la protoboard.

2) Coloco una resistencia en la pata positiva de cada LED, para limitar la corriente. Como no todos tienen mucha variedad de resistencias pueden usar cualquier valor, mientras no sea muy bajo ni muy alto (No menos de 330 y no mas de 10k).

3) Conecto un cable de cada una de las salidas del arduino de la 2 a la 9 a cada una de las resistencias.

4) Por ultimo armo un pequeño circuito con un pulsador, que va a mandar un pulso positivo al pin A0 cada vez que apretemos el boton (pull down)

Secuencia de luces con ARDUINO (Para principiantes)

5) por ultimo conectamos las alimentaciones. el negativo de los leds y del pull up, y los 5v del pull up. todo esto lo sacamos de la misma placa arduino.

Listo. Ya tenemos todo listo, solo nos falta el codigo, que lo pueden copian de aca abajo:

//Secuencia de leds cambian con pulsador

int saltar=0; // Indica el numero de la secuencia a ejecutarse

void setup() {

pinMode(A0, INPUT); //indicamos el pin de entrada

for(int i=2;i<=9;i++){ //indicamos los pines de salida
pinMode(i, OUTPUT);

}

}

void loop() {

if (digitalRead(A0)==HIGH){ //Al presionar el pulsador

saltar++; // Cambia de secuencia

if (saltar>3){ //Solo hay 4 secuencias 0,1,2 y 3 al ser 3 . .

saltar=0; // Vuelve a secuencia 0

}

while (digitalRead(A0)==HIGH){} // Mientras se pulsa no haga nada mas

}

if(saltar==0){ //Si es 1 inicie funcion de secuencia1

secuencia1();

}

if(saltar==1){ //Si es 2 inicie funcion de secuencia2

secuencia2();

}

if(saltar==2){ //Si es 3 inicie funcion de secuencia3

secuencia3();

}

if(saltar==3){ //Si es 4 inicie funcion de secuencia4

secuencia4();

}

}

void secuencia1(){

for (int i=2; i<=9; i++){ //Pin 2 al 9
digitalWrite(i, HIGH); // Prenda pin actual

digitalWrite(i-1,LOW); // Apage el Anterior

delay(50); // retardo entre prender y apagar

}

for (int i=9; i>=2; i–){ //Al contrario de la

digitalWrite(i, LOW); // anterior secuencia va de 9 a 2

digitalWrite(i-1,HIGH);

delay(50);

}

}

void secuencia2(){

int k=11; // inicializo una variable auxiliar K

for(int i=6; i<=9;i++){ //leo de 6 a 9
digitalWrite(i, HIGH); // prendo pin actual

digitalWrite(k-i, HIGH); // prendo pin de la diferencia 11-6 = 5

delay(50); //retardo

}

for(int i=9; i>=2;i–){ // Al revez

digitalWrite(i, LOW);

digitalWrite(k-i, LOW);

delay(50);

}

}

void secuencia3(){

for(int i=2; i<=9; i++){
digitalWrite(i,HIGH);

delay(50);

}

for(int i=9; i>=2;i–){

digitalWrite(i,LOW);

delay(50);

}

}

void secuencia4(){

int k=11;

for(int i=2; i<=5;i++){
digitalWrite(i,HIGH);

digitalWrite(k-i,LOW);

}

delay(150);

for(int i=2; i<=5;i++){
digitalWrite(i,LOW);

digitalWrite(k-i,HIGH);

}

delay(150);

}

Aca va en video para los que no les guste leer: