Diodo Intermitente con Arduino

Diodo Intermitente con Arduino

placa-led

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 ?

Conceptos Básicos. La placa Arduino UNO

Simulando Arduino online

IDE el entorno de programación

¡Hola Led!: Hola Mundo con Arduino

 

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
// Daremos un nombre a nuestro pin. Le llamaremos lucero, por tanto, lo primero es llamar // al pin 13 como lucero
int lucero = 13;
// acabamos de poner nuestra primera línea de código. Seguimos
//  La rutina  setup  se ejecuta una vez al presionarse el botón resert o bien encenderse Arduino
void setup() {
// Pone el puerto 13 como salida
pinMode(lucero, OUTPUT);}
//  Ahora viene la rutina de lazo ( loop ) que al llamarse de lazo, se ejecuta una y otra vez hasta que se desconecta arduino de la fuente de alimentación
void loop() {
digitalWrite(lucero, HIGH);
  // Se enciente el  LED (HIGH es la tensión mas elevada)
delay(1000);
 // espera 1000 milisegundos, o sea, 1 segundo
digitalWrite(lucero, LOW);
 // Apaga el  LED  al poner la salida a cero voltios
delay(1000);
  // Esperamos otro segundo// al terminarse las instrucciones, vuelve al principio de loop y se vuelve a repetir el proceso
}
Ahora es le momento de hacer la 1º práctica.
1º Cogemos un diodo led y soldamos al positivo ( parta larga ) una resistencia de 220 Ohmios. Conectamos la pata corta a GND y el otro extremos de la resistencia a uno de los puertos que quieras.
2º Copiamos el programa arriba indicado y lo configuramos con el puerto que queramos
3º Conectar Arduino con un cable usb de impresora al ordenador.
4º Usando el Sofware de Arduino, cargar el programa
5º Comprobamos
Práctica 2Utilizando el ejemplo anterior, crear una variante que encienda el diodo durante un breve espacio de tiempo, por ejemplo 100 ms y esté apagado durante 1 segundo. Después, añadir las líneas necesarias para que parpadee dos veces y luego descanse durante 1 segundo, imitando el latido del corazón.
Práctica 3.Semáforo  Veremos ahora como diseñar un sistema que encienda tres diodos de forma correlativa, o sea, 1º el led1, luego se apaga led1 y se enciende led2, después se apaga led2 y se enciende led3 y para terminar el ciclo, se apaga led3 y se enciende de nuevo led1 y así sucesivamente.
Alarma ( Simulador de presencia )
 Ahora vamos a simular la presencia humana en una vivienda, activando 4 elementos ( por ejemplo, 4 luces ) en tres franjas  ( mañana, tarde y noche ). Este proyecto puede ampliarse mucho y toda sugerencia es bienvenida. Las condiciones son
  1. En la mañana se deben activar aquellos elementos que sean susceptibles de estar encendidos, por ejemplo, una radio.
  2. En las tardes, se pueden activar alguna lámparas y otro electrodoméstico como una tv
  3. 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 ?

Materiales para comprar:
Para hacer las siguientes prácticas es necesario comprar en la web banggood ( parece que tiene mejores precios), dealextreme o similares los siguientes componentes.
a) El chasis del coche. Buscarlo como  Smart Car Chassis )
b) Medidor por ultrasonidos ( Ultrasonic Module HC-SR04 )
c) La placa de Arduino Uno
d) Diodos led de 5mm ( 10 salen sobre el euro )
e) Relés para controlar los motores4 Channel Relay  )
Mas Prácticas: