Los kits de iniciación vienen con una placa Arduino, varios sensores como uno que detecta señales infrarrojas, temperatura, movimiento, también traen resistencias, botones, cables para realizar las conexiones, luces led, entre otros elementos.
Programar para la plaqueta Arduino es muy sencillo, sólo hay que descargar una aplicación desde la página oficial que funciona como compilador. Además, ya viene con varios programas de ejemplo, también se puede programar por medio de una interfáz gráfica e incluso desde Scracth. El lenguaje es muy similar a C, que es bastante sencillo de aprender y divertido.
Sensor de temperatura con dos display de 7 segmentos
Materiales:
- Placa Arduino (la de este ejemplo es modelo UNO)
- 1 sensor de temperatura LM35
- 2 display LED 7 Segment (KYX-5461AS)
La parte complicada es la conexión de los display, pues cada led que permite formar los números debe estar conectado a la placa. En las siguientes fotografías se puede ver el montaje completo, con una luz LED verde extra que es opcional y la programé para que se prendiera según la temperatura ambiente que detectaba el sensor.
Circuito o esquema de conexiones:
Los LED de cada display van conectados entre sí, a su vez estos se conectan a los pines de la placa Arduino.
Los conectores o patas número 5 de cada display se pueden dejar libres o sin conectar, pues son los que prenden los puntitos del display. Los números de cada pata o conector del display son los siguientes:
El sensor de temperatura LM35 va conectado a la placa por el pin analógico:
Código o programa:
Se necesita la librería SevSeg que se puede descargar desde la página oficial aquí, la versión antigua 2.3 que ahí figura como la old version.
Una vez descargada se descomprime el archivo y la carpeta SevSeg se coloca dentro de la carpeta de libraries de la instalación del programa de Arduino.
El código que yo utilicé para mostrar la temperatura en los display es el siguiente, copiar y pegar, compilarlo para ver si hay errores y subirlo a la placa:
Código: Seleccionar todo
//foro.spamloco.net
#include "SevSeg.h"
SevSeg sevseg;
int actualizarTiempo = 500; // tiempo en milisegundos para refrescar la temperatura
unsigned long timer;
float temperaturaC = 0;
int temperaturaPin = 0;
void setup()
{
sevseg.Begin(0,2,3,4,5,6,7,8,9,10,11,12,13);
}
void loop()
{
sevseg.PrintOutput();
temperaturaC = analogRead(temperaturaPin); // captura temperatura del sensor
temperaturaC = (5.0 * temperaturaC * 100.0)/1024.0; // convierte a grados centígrados
unsigned long milisegundos=millis();
if (milisegundos-timer>=actualizarTiempo) {
timer=milisegundos;
sevseg.NewNum(temperaturaC,(byte) 2); // imprime temperatura en los display
}
}
Dentro de void setup:
Código: Seleccionar todo
pinMode(3, OUTPUT);
Código: Seleccionar todo
// enciende el LED cuando la temperatura supera los 30 grados
if (temperaturaC >= 30)
{
digitalWrite(3, HIGH);
}