martes, 25 de noviembre de 2014

Los principios de la domótica

Con el fin de explicar como trabajar con arduino y para ver rápidamente ejemplos prácticos voy a disponer de un ejemplo con el que, con un poco de maña, podremos encender las luces o cualquier cosa desde nuestro ordenador.

Lo primero será ver un ejemplo básico, algo tan sencillo como encender un led en arduino es más importante de lo que parece.

/*
  Parpadeo
  Enciende un led por 1 segundo, lo apaga por otro y así repetidamente.
 
  Éste código de ejemplo es de dominio público
 */
 
// Vamos a colocar un led en el pin 11
// Pero puede estar colocado en cualquier salida digital de arduino
int led = 11;

// Setup es la rutina que se inicia una vez que pulsamos el botón reset de la placa
void setup() {                
  // Inicialización de las variables
  pinMode(led, OUTPUT);     // Con output definimos el pin de led como uno de salida
}

// Loop es la rutina que se ejecuta en bucle continuamente.
void loop() {
  digitalWrite(led, HIGH);   // Encendemos el led
  delay(1000);               // La placa espera 1000ms (1s), por lo que el led permanecerá encendido
  digitalWrite(led, LOW);    // Apagamos el led
  delay(1000);               // Esperamos por otro segundo
}

Me he tomado la molestia de traducirlo y cambiar el pin del led, puesto que en el ejemplo original usan el pin 13, que es (además de un pin más) un led integrado en la propia placa. Para evitar confusiones he colocado el led en el pin 11.

Las fotos de este tipo estarán tomadas con el móvil y en una placa quemada.
Se siente, las cosas que funcionan están bien puestas y no voy a desmontarlas xD


El ejemplo, como se ve, es bastante sencillo. Lo único que hace es encender y apagar continuamente un led pero, ¿y si en vez de ser un led fuese una bombilla? Además, nos podemos comunicar con arduino por bluetooth, ethernet o puerto serie, entonces ¿y si en vez de ser un parpadeo constante, le decimos nosotros mismos cuando encender o apagar?

Para la primera interrogante hay una respuesta muy sencilla: un relé de 5v.

El funcionamiento de un relé es como un interruptor, pero controlado por un circuito eléctrico en el que, por medio de una bobina y un electroimán, se acciona un contacto que permite abrir o cerrar otros circuitos eléctricos independientes.

Hay otras formas obtener nuestro "interruptor digital", pero con esta tenemos la ventaja de que nuestro circuito no se va a quemar con la tensión ya que se trata de un circuito independiente. También tenemos la desventaja que, por el funcionamiento interno del relé (la bobina o el electroimán), vamos a tener un ligero retardo en las acciones, pero teniendo en cuenta que si encendemos y apagamos rápidamente una luz podemos fundirla, esta latencia no es importante a mi parecer puesto que los tiempos de encendido-apagado siempre van a ser mayores.

Entonces, dicho esto, ¿cómo cambia nuestro circuito?

Los relés tienen 3 entradas por parte de arduino para controlarlo (VCC, GND, IN), así que conectaríamos de ésta forma: VCC=5V, GND=GND e IN=pin 11 (o cualquier otro pin digital, el que hayamos indicado en el programa).

En cuanto a las conexiones de la parte del relé, bastaría conectarlo como si fuese un interruptor de toda la vida, es decir, un cable paralelo que vaya del enchufe al aparato eléctrico (bombilla o lo que sea) y de uno de los paralelos, cortarlo y conectarlo al relé. Como veo que soy horrible explicando las cosas, mejor hacer un pequeño dibujo ilustrativo.

Con esto, nuestro programa ya sería capaz de encender luces de verdad, abrir una persiana o encender cualquier otro aparato eléctrico sin problemas. Pero seguiría dependiendo de lo que estuviese programado a priori.

Para solucionar esto, nuestro programa debe ser más complejo y es cuando se trata de echarle imaginación dependiendo de lo que estemos interesados en hacer. Pensaba mostrar como hacerlo en ésta misma entrada, pero prefiero hacer entradas más cortas y centradas en un solo objetivo. En cuanto pueda: reconocimiento de instrucciones en arduino mediante serial.

No hay comentarios:

Publicar un comentario