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

Comentarios

Publicar un comentario

En entradas antiguas, los comentarios quedarán pendientes de moderación. Si tu comentario tarda en aparecer, ten paciencia ;D

Entradas populares de este blog

Cómo configurar dos PLCs

Configurar correo IMAP de mundo-R en Android

Arduino y Processing 3: Mostrar los datos de dos sensores al mismo tiempo