lunes, 24 de febrero de 2014

Parpadeo Led con Delay

          Vamos a ver como hacer parpadear un led haciendo uso de la función delay. Esta función hace a Arduino esperar un número especificado de milisegundos antes de continuar ejecutando la siguiente línea de código. Sabiendo que hay 1000 milisegundos en un segundo, el código 'delay(1000);' crea un retraso de un segundo.

          El circuito que montaremos es sencillo, simplemente tendremos un led con una resitencia que lo conecta a tierra y el otro pin lo conectamos al pin 12 de Arduino. Aquí podéis ver el prototipo:


          Realmente podríamos hacer uso del pin 13 de Arduino para no usar la breadboard ya que en la mayoría de las placas Arduino tienen una resistencia de un KOhm en ese pin permitiendo conectar un Led directamente. Pero para ir haciendo uso de componentes lo conectamos a otro pin (cómo el 12 en nuestro caso) añadiéndole la resistencia. Los LEDs tiene polaridad, es decir, sólo se encenderán si los orientamos correctamente. Lo usual es que la patilla más larga sea el positivo y el que tengamos que conectar al pin debido, siendo la patilla corta la que debe de ir a tierra (GND).

          A continuación el código que hace nuestro propósito, que como veis es muy sencillo:

//Definimos el pin para el led
#define led   12
// Función 'Setup'
void setup() {              
  // Inicializamos el pin 'led' como salida
  pinMode(led, OUTPUT);    
}
// Función 'Loop'
void loop() {
  // encendemos el LED (Ponemos el voltaje a 'HIGH')
  digitalWrite(led, HIGH);
  // esperamos medio segundo
  delay(500);        
  // apagamos el LED (Ponemos el voltaje a 'LOW')
  digitalWrite(led, LOW);
  // esperamos medio segundo 
  delay(500);              
}

          Para entender un poco más como funcionan los Sketch, voy a hablar de otras dos funciones básicas usadas para programar Arduino. pinMode como podéis imaginar configura un pin de Arduino como entrada o salida. Para usarla, pasamos como argumento el número del pin que vamos a configurar y la constante INPUT o OUTPUT. Como input podemos manejar estados de sensores, como un botón , y como salida podemos manejar entre otras cosas Leds, como vimos en el Simple Boton Led. Por otra parte, la función digitalWrite envía un valor a un pin. Como podemos ver, si escribimos 'digitalWrite(led, HIGH)' modificamos el pin 12 como HIGH o 5 voltios.

          Y esto es todo por esta vez, os dejo que veáis como funciona: