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 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