Diodo Intermitente con Arduino
La electrónica de la mano de la microelectrónica y la informática, y fruto de ello es esta maravilla que se lama Arduino. Vamos a realizar proyectos diversos con ella, pero previamente vamos a ver unos que nos explican qué es Arduino.
Una vez vistos, empezaremos con tareas sencillas como encender un led hasta programas mas complejos, donde «sólo la imaginación pondrá los límites».
¿ Qué es arduino ?
[hoops name=»arduino 1″]
Conceptos Básicos. La placa Arduino UNO
[hoops name=»arduino 2″]
Simulando Arduino online
[hoops name=»arduino 3″]
IDE el entorno de programación
[hoops name=»arduino 4″]
¡Hola Led!: Hola Mundo con Arduino
[hoops name=»arduino 5″]
Como primera práctica y para tomar contacto con esta maravilla de la electrónica, vamos a poner en marcha una sencilla tarea que consiste en poner un diodo led de forma intermitente.
Importante: Si tenemos un arduino «Chino», tenemos que bajarnos el siguiente Driver Correspondiente al chip Ch341. Una vez que se baja, debemos de ir a administración de dispositivos y actualizar el controlador de usb por el que se adjunta en este archivo comprimido
En la figura que se muestra se representa muestra como se conecta junto a una resistencia de 220 Ω. Recordamos que las resistencias limitan el paso de corriente para que el diodo no se estropee.
Está conectado al terminal GND ( del inglés ground ) o sea , la tierra o masa y el puerto 13.
Los puertos son todos aquellas conexiones que tiene la placa para comunicarse con el exterior y , al igual que los puertos de aviones ( aeropuertos ), éstos pueden ser de entrada o salida, o sea puede » leer » una tensión en un puerto o bien «sacar » una tensión por ese puerto.
Veremos el Código del programa
Primero de todo es decirle a arduino que el puerto 13 va a ser una salida para que saque la tensión y pueda iluminar el led. Esto lo hacemos con esta instrucción:
pinMode(13, OUTPUT);
Una vez que Arduino sabe que es un puerto de salida tenemos que decirle que saque 5 voltios o cero ( encendido o apagado ). Para esta tarea usamos estas instrucciones
digitalWrite(13, HIGH); // En este caso es encendido
digitalWrite(13, LOW); // Ahora es apagado
Cuando veamos el programa, todos los comentarios que aparecen con un dos barras inclinadas (//) o bien */ indica que son comentarios y arduino no lo ejecuta como programa. Viene muy bien para aclarar el programa.
Entre encendido y apagado necesitamos un tiempo suficiente para que una persona aprecie el cambio, por tanto la instrucción delay()
dirá a arduino que no haga nada durante los milisegundos que indica el paréntesis.
Veremos el programa completo
Blink es el programa que nos va a encender y apagar un diodo led .Este ejemplo está en la librería de programa
*/
// Pin 13 es el pin o puerto que vamos a usar. Podemos probar con el pin 12 o el 11
int lucero = 13;
void setup() {
// Pone el puerto 13 como salida
pinMode(lucero, OUTPUT);}
void loop() {
digitalWrite(lucero, HIGH);
delay(1000);
digitalWrite(lucero, LOW);
}
- En la mañana se deben activar aquellos elementos que sean susceptibles de estar encendidos, por ejemplo, una radio.
- En las tardes, se pueden activar alguna lámparas y otro electrodoméstico como una tv
- En la noche, principalmente deben de encenderse bombillas.
Dentro del margen de tiempo de cada periodo, hay que llevar una secuencia determinada en encendido y apagado de elementos. Suponer que la mañana dura 60 segundos , la tarde 50 y la noche 70.
4.1 Alarma mas desarrollada. Os voy a poner un ejemplo de un sistema que activa una bombilla de forma aleatoria para que el «caco» no entienda que hay una rutina en la vivienda. El programa que hay que entrar en tinkercad.com es el siguiente:
long randNumber;
void setup()
{Serial.begin(9600); // Ponemos el puerto serie activo
/*Para evitar que se genere ruido por la entrada analógica 0, debemos de poner la instrucción randomSeed() a 0 . Para ello, la primera instruccion debe ser:
*/
randomSeed(analogRead(0));
}void loop() {
// Vamos a sacar por puerto serie el valor para verlo
randNumber = random(300);
Serial.println(randNumber);if (randNumber > 120) digitalWrite(12, HIGH);
else digitalWrite(12, LOW);
delay(2000);}
No olvidar poner un led en el puerto 12.
Comprobamos que cuando el número aleatorio es mayor de 120, se activa el diodo y en caso contrario ( else ) se queda apagado.
Esto nos puede venir muy bien a la práctica 4. ¿ Cómo lo puedes incorporar ?