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)
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:
Eso es todo, espero que les sirva.