Paso 5: Actual código con instrucciones de cableado
El siguiente es el código tal como existe hoy. Estoy agregando un segundo SHT21 para interiores y exteriores (significa hackear un segundo canal I2C, como el SHT21 todos tienen la misma dirección y no pueden existir en un canal) de medición, y todavía estoy esperando mi chip de reloj de tiempo real y el sensor de presión barométrica llegar desde Sparkfun.com (llegaron ayer, y voy a trabajar en este fin de semana - 29/09/10). Migrar el proyecto sobre a mi nuevo Arduino Mega 2560 (58 líneas de la entrada-salida) y había instalado el IDE 0021 nuevo. Se edito este instructable como evoluciona el proyecto.
Conexiones:
Pin 1 de la LCD a GND de Arduino
Pin de LCD 2 a 5v de Arduino
Pin 3 (contraste) de la LCD a GND
RS (pin 4 del LCD) para Arduino pin 12
RW (pin 5 del LCD) para Arduino pin 11
activar (pin 6 del LCD) para Arduino pin 10
LCD 15 a pin Arduino pin 13
Pin de LCD 16 a GND de Arduino
LCD pines d4, d5, d6, d7 a los pines de Arduino 5, 2, 3 y 4
Probado con SHT21 Breakout de Misenso
SHT21 SDA a pin analógico Arduino pin 4
SHT21 SCL a pin analógico Arduino pin 5
SHT21 pin GND a GND de Arduino
SHT21 pin VCC a Arduino 3v (no 5v)
RGB LED
Rojo cátodo a pin 9 del Arduino
Cátodo azul para Arduino pin 8
Cátodo de verde al pin 7 de Arduino
Ánodo a la resistencia de 270 ohm a 5V
#include #include
#include
Humedad de LibHumidity = LibHumidity(0);
LiquidCrystal lcd (12, 11, 10, 5, 4, 3, 2);
Iluminación int = 13; PIN 13 control de la retroiluminación de la
int RedLEDPin = 9; LED conectado al pin digital 9
int BlueLEDPin = 8; LED conectado al pin digital 8
int GreenLEDPin = 7; LED conectado al pin digital 7
void setup()
{
pinMode (luz de fondo, salida);
digitalWrite (luz de fondo, alto); Encienda la luz de fondo. Reemplace 'Alta' con 'LOW', para apagarlo.
I2C
pinMode (16, salida);
digitalWrite (16, bajo); Pin GND
pinMode (salida 17);
digitalWrite (17, HIGH); Pin VCC
Horno / indicador de CA
pinMode (RedLEDPin, salida); pone el pin digital como salida
pinMode (BlueLEDPin, salida); pone el pin digital como salida
pinMode (GreenLEDPin, salida); pone el pin digital como salida
}
void loop()
{
LCD.Begin(20,4); columnas, filas. Utilice 16.2 de 16 x 2 LCD, etc..
LCD.Clear(); comenzar con una pantalla en blanco
lcd.setCursor(0,0); coloca el cursor a la columna 0, fila 0 (la primera fila)
LCD.Print ("humedad:"); cambiar este texto a lo que te gusta. mantenerla limpia.
LCD.Print (humedad. GetHumidity());
lcd.setCursor(0,1); coloca el cursor a la columna 0, fila 1
LCD.Print ("Temp en C:");
LCD.Print (humedad. GetTemperatureC());
lcd.setCursor(0,2); coloca el cursor a la columna 0, fila 2
LCD.Print ("Temp en F:");
LCD.Print (humedad. GetTemperatureF());
{
Si (humedad. GetTemperatureF() < 60)
{
digitalWrite (RedLEDPin, bajo); el LED rojo se pone en
digitalWrite (BlueLEDPin, alto); sale el LED azul
digitalWrite (GreenLEDPin, bajo); establece el indicador LED verde
}
else if (humedad. GetTemperatureF() > = 75)
{
digitalWrite (BlueLEDPin, bajo); el LED azul se pone en
digitalWrite (RedLEDPin, alto); sale el LED rojo
digitalWrite (GreenLEDPin, alto); establece el indicador LED verde
}
otra cosa
{
digitalWrite (GreenLEDPin, bajo); el LED verde se pone en
digitalWrite (BlueLEDPin, alto); sale el LED azul
digitalWrite (RedLEDPin, alto); sale el LED rojo
}
}
retardo (20000);
}
Ver http://arduinotronics.blogspot.com/2010/09/our-temperature-humidity-monitor-is.html para el código como roturas de instructables nuestros incluyen declaraciones.