Arduino: Una LED parpadea: el "hola mundo" de Arduino
Este es un ejercicio basado en el que podemos ver en http://ardx.org/CIRC01.
Es lo más básico que podemos hacer con una Arduino tras haber instalado el compilador y haberla conectado a nuestro PC. Podemos ver el resultado final en este vídeo:
Este el código que he utilizado para la primera parte: el parpadeo.
/* * Enciende una LED durante un segundo y luego la apaga durante un segundo * y repetir, sieeempre repetir * */ int ledPin = 13; // Conectamos una LED en el pin digital 13 // El metodo setup() se ejecuta una sola vez: al principio del programa void setup() { pinMode(ledPin, OUTPUT); // Inicializa el pin digital como de salida } // El metodo loop() se repite una y otra vez, hasta que desenchufemos la Arduino void loop() { digitalWrite(ledPin, HIGH); // Encendemos la LED delay(1000); // Esperamos 1 segundo digitalWrite(ledPin, LOW); // Apagamos la LED delay(1000); // Esperamos 1 segundo }
Como vemos, es muy sencillo: enciendo LED, espero, apago LED, espero... y repetimos.
Una variante algo más interesante es la siguiente, en la que en vez de encender y apagar vamos variando la intensidad paulatinamente de apagado a encendido y viceversa:
/* * Haciendo un fade (aumenta y disminuye el brillo suavemente) en una LED * */ int ledPin = 9; // Defino el pin en el que ira la LED void setup() { pinMode(ledPin, OUTPUT); // Indico que ese pin sera de salida } void loop() { // Variamos el brillo desde 0 hasta el máximo de 5 en 5 for(int brillo = 0; brillo <= 255; brillo += 5) { analogWrite(ledPin, brillo); // aplicamos el brillo (entre 0 y 255) delay(30); // pausamos durante 30 milisegundos, para poder ver el efecto } delay(250); // una pequeña pausa estando a brillo máximo // Variamos el brillo desde 255 hasta 0 de 5 en 5 for(int brillo = 255; brillo >= 0; brillo -=5) { analogWrite(ledPin, brillo); // aplicamos el brillo (entre 255 y 0) delay(30); // pausamos durante 30 milisegundos, para poder ver el efecto } delay(250); // una pequeña pausa estando a brillo mínimo }
En esta variante, utilizamos un bucle para ir "enviando" la intensidad al LED. En realidad, no es que indiquemos "brillo al 100%" cuando ponemos 255, si no que la Arduino manda un pulso constante. Para el "brillo al 50%" (sobre 127) no es enviemos un pulso más "suave", si no que se mandan pulsos muy muy cortos al LED y parece que brilla menos (no podemos percibirlos por lo rápidos que son, pero sí notamos que baja la intensidad).
Muy buena iniciativa, a ver hasta donde das llegado ;-)
ResponderEliminarA ver a ver...
ResponderEliminar