Sie sind auf Seite 1von 9

Secuencia de Leds con Arduino

Publicado: febrero 10, 2012 en Arduino


Etiquetas: Arduino, led, microprocesador, open hardware
4
Hace un tiempo compre una placa de Arduino pero por falta de tiempo, haba hecho algunos ejemplos pero quera al
menos documentar como funciona de una manera sencilla (para dummies), ademas que acabando de cursar una materia de
la Universidad llamada Microprocesadores en la cual se aprendi bastante pero tambin miraba que todo lo
que hacamos en las prcticas se me facilitara la vida si usara mi placa de Arduino (adems que aunque los pics son
baratos tocaba comprar quemador de pics) y bueno de ahi surgo este pequeo ejemplo, espero que les guste y cualquier
cosa no duden en preguntar o colaborar en el aprendizaje de esta gran placa.
Materiales
1 Placa de arduino
1 Protoboard
8 Leds (cualquier color)
8 resistencias de 220
1 resistencia de 1 K
1 pulsador
Cable Utp
1 El programa consiste en que al presionar el pulsador los leds cambien de secuencia, las secuencias son las siguientes (1)
Leds Encendidos (0) Leds apagado:
a)
0 0 0 0 0 0 0 1
0 0 0 0 0 0 1 0
0 0 0 0 0 1 0 0
.
.
1 0 0 0 0 0 0 0
b)
0 0 0 1 1 0 0 0
0 0 1 1 1 1 0 0
0 1 1 1 1 1 1 0
1 1 1 1 1 1 1 1
c)
0 0 0 0 0 0 0 1
0 0 0 0 0 0 1 1
0 0 0 0 0 1 1 1
.
.
1 1 1 1 1 1 1 1
d)
0 0 0 0 1 1 1 1
1 1 1 1 0 0 0 0
.
.
2. Como sabemos los leds tiene un anodo (+) y un catodo (-), de un lado conectaremos todos los Catodos a las resistencias
de 220 y estas a GND y de los anodos conectaremos a los pines del 2 al 9, las resistencias se colocan con el fin que no
quemar los leds.
3. Conectamos el pulsador de la siguiente manera de un lado a 5V y del otro conectamos una resistencia a tierra y tambien
un cable al pin A0 que sera el que nos permita cambiar de secuencia cada vez que lo presionemos, Se coloca la resistencia
de 1 k porque haria un puente entre GND y el pin A0 de esta manera la lectura de entrada sera siempre 0, al presionar
el pulsador lo que hace es hacer puente entre 5V y A0, de esta manera conseguimos el valor de 1 con esto los valores de
entrada unicamente seran 1 y 0.
Aqu muestro el montaje realizado en un software llamado Fritzing V 0.7.0 de licencia GNU GPL v3 el cual lo pueden
conseguir en http://www.fritzing.org

Montaje en Protoboard

Esquema Proyecto
4. Cargar el siguiente cdigo, esta explicado.

int saltar=0; // Variable que 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 contrario de lo anterior
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);
}
Ahi los dejo con una imagenes y un video de lo que hace.





ARCHIVOS DE LA CATEGORA
ARDUINO
Contador Binario con Arduino
Publicado: febrero 13, 2012 en Arduino
Etiquetas: Arduino, led, microprocesador, open hardware
8
Este tutorial es una variacin del anterior tutorial Ver tutorial, solo que en este al presionar el pulsador ira
contando y se mostrara en nmeros binarios en los leds, el rango del contador es de 0 a 255 ya que contamos
con 8 leds osea 8 bits.

Montaje en Protoboard

Esquema Proyecto
Aqu el cdigo completamente explicado.
int numero=0; //el contador inicia en 0
void setup() {
pinMode(A0, INPUT); //inicializa variable de entrada
for(int i=2;i<=9;i++){ // inicializa variables de salida
pinMode(i, OUTPUT);
}
}

void loop() {
int k; // Declaro variable k
if (digitalRead(A0)==HIGH){ // Si presiono el pulsador
numero++; // Aumento el contador
if (numero>255){ // El contador llega a 255, 8bits 8 leds
numero=0; // vuelve a 0
}
while (digitalRead(A0)==HIGH){} // Al presionar no hace nada mas
}

k=numero; // El numero va a variable k
for(int i=2; i<=9; i++){ //Ciclo para ver que leds prendo
digitalWrite(i, k%2); // modulo de la division por 2 para ver si led prendido o apagado
k=k/2; // Se divide el cociente entre 2 por cada ciclo
}
}

Aqu dejo un vdeo de como es el funcionamiento
LUCAS POLDROSKY

Das könnte Ihnen auch gefallen