Tabla de Contenidos
Materiales
Los materiales para la actividad son:
- Arduino UNO o compatible
- Resistencia de 220 ohms
- LED de 5mm color verde
- Sensor de temperatura y humedad DHT11
- Una computadora con Arduino IDE
- Cable USB tipo A/B (de impresora)
- Cables para armar el circuito
- Bolsa con hielo (se entregara a su debido tiempo)
La práctica consistirá en construir dos circuitos electrónicos para tener un primer acercamiento al hardware libre. El primer circuito es un circuito básico en donde se activará un LED cada cierto tiempo, el segundo circuito constara de un LED y un sensor de temperatura y humedad que nos permitirá tener una lectura mas precisa para poder encerder, pare este caso, un LED.
¿Qué es Arduino?
Arduino es una plataforma de desarrollo basada en una placa electrónica de hardware libre que incorpora un microcontrolador re-programable y una serie de pines hembra, los que permiten establecer conexiones entre el microcontrolador y los diferentes sensores y actuadores de una manera muy sencilla.
Dentro de arduino es de diferencias dos cosas:
- La placa de Arduino
- El IDE de arduino (software)
Dentro de arduino existen diferentes placas con las cuales se pueden trabajar, por ejemplo estan las siguientes:
¿Qué puedo hacer con una placa Arduino?
Arduino nos permite crear proyectos de electrónica de una manera sencilla y eficaz. Siendo el limitante de su capacidad uno mismo referente a la gran gama de posibilidades para “crear” que nos permite Arduino. Actualmente hay una fuerte comunidad de desarrollo que presenta proyectos novedosos de código abierto y hay mucha documentación que nos respaldara a la hora de programar
Resistencia
Una resistencia o resistor es un componente electrónico que limita el flujo de electricidad que los atravieza. Los resistores son ampliamente utilizados en circuitos eléctricos. Son pequeños cilindros con códigos de bandas de colores que indican su resistencia eléctrica.
LED
Un LED es un diodo emisor de luz, es decir, un tipo particular de diodo que emite luz al ser atravesado por una corriente eléctrica. Los diodos (emisor de luz, o no) son unos de los dispositivos electrónicos fundamentales.
Recodemos que diferenciamos entre dispositivos eléctricos y electrónicos. Los dispositivos eléctricos engloban resistencias, condensadores y bobinas, e integran el campo de electricidad. Los dispositivos electrónicos, surgen del uso de materiales semiconductores, y dan lugar al campo de la electrónica.
Aquí tenemos la primera característica de los diodos, tienen polaridad, es decir, solo dejan pasar la corriente en un sentido. Por tanto, tenemos que conectar correctamente la tensión al dispositivo.
La patilla larga debe ser conectada al voltaje positivo (ánodo), y la corta al voltaje negativo (cátodo).
Regla menométcnica:
- La patilla “más” larga es la positiva.
- La patilla “menos” larga es la negativa.
Dado que la resistencia del diodo es muy pequeña, se genera una gran corriente que destruirá el diodo. Por ese motivo, necesitamos una resistencia que limite la cantidad de corriente que circula por el diodo.
Sensor DHT11
El DHT11 es un sensor de señal digital calibrada que mide la temperatura y la humedad en un solo chip. Lo podemos comprar de dos maneras, de forma individual donde solo tenemos el sensor DHT11, o insertado en una PCB.
La precisión de este sensor es:
La versión con PCB aporta una resistencia pull-up de 5 kΩ y un LED que nos avisa de su funcionamiento. Otra diferencia entre estas dos versiones del DHT11 son los pines.
En la versión sin PCB tenemos 4 pines y en la versión con PCB tenemos 3 pines.
Los pines de la versión sin PCB del DHT11 son:
VCC: alimentación I/O: transmisión de datos NC: no conecta, pin al aire GND: conexión a tierra
Los pines de la versión con PCB del DHT11 son:
GND: conexión con tierra DATA: transmisión de datos VCC: alimentación
Actividades
Introducción al Arduino IDE
La estructura básica de programación de Arduino es bastante simple y divide la ejecución en dos partes: setup y loop. Setup() constituye la preparación del programa y loop() es la ejecución. En la función Setup() se incluye la declaración de variables y se trata de la primera función que se ejecuta en el programa. Esta función se ejecuta una única vez y es empleada para configurar el pinMode (p. ej. si un determinado pin digital es de entrada o salida) e inicializar la comunicación serie. La función loop() incluye el código a ser ejecutado continuamente (leyendo las entradas de la placa, salidas, etc.).
Para poder tener un circuito funcional en arduino debemos:
- Abrir el Arduino IDE
- Conectar la placa Arduino (Pj. Arduino Uno)
- Seleccionar la placa desde el menú Herramientas→Placa → Placa (por ejemplo Arduino Uno)
- Seleccionar el puerto donde esta conectado el arduino desde Herramientas→Placa → el puerto (puede ser ttyUSBX, USBX, COMX, ttyACMX)
- Hacer el programa para el arduino
- Compilar
- Subir el programa
Arduino + LED
Con el arduino desconectado de la computadora, armar el siguiente circuito:
Abrir el archivo del Arduino IDE llamado *led* que tiene el siguiente código.
// PRACTICA: ENCENDER Y APAGAR UN LED //Definimos el pin del led #define LED 13 void setup() { //Definimos el pin del LED como salida pinMode(LED,OUTPUT); } void loop() { //Encendemos el led y esperamos 1000 ms (1 segundo) digitalWrite(LED,HIGH); delay(1000); //Apagamos el led y esperamos 1 segundo digitalWrite(LED,LOW); delay(1000); }
Luego deberan:
- Conectar el arduino a la computadora
- Seleccionar la placa
- Compilar
- Subir
Deberán observar como el LED que se ha conectado se enciendo un segundo, luego se apaga un segundo y asi sucesivamente.
Modifiquen el tiempo: Ahora prueben cambiar la cantidad de tiempo que esta apagado o encendido el LED.
Nota: Cada vez que cammbien el programa del Arduino IDE deberán volver a compuilar y a subir el programa a la placa.
Arduino + LED + Serial
Con el mismo curcuito del apartado anterior ( circuito “Arduino + LED”) abrir el archivo del Arduino IDE llamado *led_serial* que tiene el siguiente código.
// PRACTICA: ENCENDER Y APAGAR UN LED MOSTRANDO UN MENSAJE EN VIA SERIAL //Definimos el pin del led #define LED 13 void setup() { // Inicializamos comunicación serie Serial.begin(9600); //Definimos el pin del LED como salida pinMode(LED,OUTPUT); } void loop() { //Encendeos el led y esperamos 1000 ms (1 segundo) Serial.println("Encendemos LED"); digitalWrite(LED,HIGH); delay(1000); //Apagamos el led y esperaos 1 segundo Serial.println("Apagamos LED"); digitalWrite(LED,LOW); delay(1000); }
Deberán observar que es el mismo código del LED a exepción que se ha agregado la comunicacion con un monitor serial. En el código se ha deinfinodo que la velocidad a la que se enviaran los mensajes desde el arduino a la computadora sera de 9600 bit por segundo. Ese mismo valor deberá estar seleccionado en el Monitor Serial.
Ahora deberan:
- Conectar el arduino a la computadora
- Seleccionar la placa
- Compilar
- Subir
Deberán abrir el monitor serial en el Arduino IDE desde Herramientas→Monitor Serie. Se abrirá una ventana donde observarán mensajes de “Encendemos/Apagamos el LED”. Con esta caracteristica podemos mostrar en la computadora lo que esta haciendo el arduino mientras esta en funcionamiento nuestro programa.
Modifiquen los mensajes: Ahora prueben cambiar los mensajes que se muestran en la ventana del monitor serial.
Arduino + DHT11 + Serial
Con el arduino desconectado de la computadora, armar el siguiente circuito:
Abrir el archivo del Arduino IDE llamado *dht11_serial* que tiene el siguiente código.
// PRACTICA: LEER TEMPERATURA Y HUMEDAD DE SENSOR DHT11 Y MOSTRARLO VIA SERIAL //Incluimos libreria para controlar el sensor #include <DHT.h> // Definimos el pin digital donde se conecta el sensor #define DHTPIN 4 // Definimos el tipo de sensor #define DHTTYPE DHT11 // Inicializamos el sensor DHT11 DHT dht(DHTPIN, DHTTYPE); void setup() { // Inicializamos comunicación serie Serial.begin(9600); // Inicializamos el sensor DHT dht.begin(); } void loop() { // Esperamos 5 segundos entre lecturas delay(5000); // Leemos la humedad relativa float h = dht.readHumidity(); // Leemos la temperatura en grados centígrados (por defecto) float t = dht.readTemperature(); //Imprimimos en la consola serial los datos que leimos Serial.print("Humedad: "); Serial.print(h); Serial.print(" %\t"); Serial.print("Temperatura: "); Serial.print(t); Serial.println(" *C "); }
Deberán observar que se ha incorporado el sensor DHT11 que se ha descrito antes. Ahora deberan:
- Conectar el arduino a la computadora
- Seleccionar la placa
- Compilar
- Subir
El sensor es leído cada cinco segundos y nos devuelve la temperatura y la humedad relativa donde se encuentre el sensor. Para ver los datos deben abrir el monitor serial.
Arduino + DHT11 + Serial + LED
Con el mismo curcuito del apartado anterior ( circuito “Arduino + DHT11 + Serial”) abrir el archivo del Arduino IDE llamado *dht11_serial_led* que tiene el siguiente código.
// PRACTICA: LEER TEMPERATURA Y HUMEDAD DE SENSOR DHT11 Y MOSTRARLO VIA SERIAL CON ALERTA DE DE LED #include <DHT.h> //Definimos el pin del LED #define LED 13 // Definimos el pin digital donde se conecta el sensor #define DHTPIN 4 // Definimos el tipo de sensor #define DHTTYPE DHT11 // Inicializamos el sensor DHT11 DHT dht(DHTPIN, DHTTYPE); void setup() { // Inicializamos comunicación serie Serial.begin(9600); //Definimos el pin del LED como salida pinMode(LED,OUTPUT); // Inicializamos el sensor DHT dht.begin(); } void loop() { // Esperamos 5 segundos entre lecturas delay(5000); // Leemos la humedad relativa float h = dht.readHumidity(); // Leemos la temperatura en grados centígrados (por defecto) float t = dht.readTemperature(); //Si la temperatura leida es mayor a 30 grados centigrados encedemos el led, sino lo apagamos if(t>30) { digitalWrite(LED,HIGH); }else{ digitalWrite(LED,LOW); } //Imprimimos en la consola serial los datos que leimos Serial.print("Humedad: "); Serial.print(h); Serial.print(" %\t"); Serial.print("Temperatura: "); Serial.print(t); Serial.println(" *C "); }
Deberán observar que se ha incorporado 6 lineas de código adicionales donde le decimos que encienda el LED cuando la temperatura alcance los 30°C . Ahora deberan:
- Conectar el arduino a la computadora
- Seleccionar la placa
- Compilar
- Subir
Ahora para ver la temperatura deben abrir el Monitor Serial. Soplar aire frio: Cuando ya hayan observado ciertas lecturas pueden solicitar hielo para soplar aire frio al sensor de manera que se observer un descenso en la temperatura leída.
Modificar el umbral de temperatura: Ahora pueden probar cambiar el humbral de temperatura para que el led se encienda a temperaturas mas bajas.