Stap 5: Huidige code met bedrading instructies
De volgende is de code zoals het vandaag bestaat. Ik ben het toevoegen van een tweede SHT21 voor binnen/buiten meten (betekent het hacken van een tweede I2C-kanaal, als de SHT21 allemaal hetzelfde adres hebben, en archief bestaat niet op één kanaal), en ik ben nog steeds wachten op mijn real-time klok chip en barometrische druksensor te komen van de Sparkfun.com (ze arriveerde gisteren, en ik zal werken in het weekend - 9-29-10). Ik het project gemigreerd naar mijn nieuwe Arduino Mega 2560 (58 I/O lijnen), en geïnstalleerd de nieuwe 0021 IDE. Ik zal dit instructable bewerken als het project evolueert.
Verbindingen:
LCD pin 1 met Arduino GND
LCD pin 2 naar 5v van de Arduino
LCD pin 3 (Contrast) met GND
RS (LCD pin 4) aan de Arduino pin 12
RW (LCD pin 5) naar de Arduino pin 11
inschakelen (LCD pin 6) tot en met Arduino pin 10
LCD pin 15 tot en met Arduino pin 13
LCD pin 16 met Arduino GND
LCD pinnen d4, d5, d6, d7 naar Arduino pinnen 5, 4, 2 en 3
Getest met SHT21 Breakout uit Misenso
SHT21 pin SDA Arduino analoge pin 4
SHT21 pin SCL Arduino analoge pin 5
SHT21 pin met Arduino GND GND
Aan het Arduino 3v SHT21 vastmaken, VCC (niet 5v)
RGB-LED
Red kathode naar de Arduino pin 9
Blauwe kathode naar de Arduino pin 8
Groene kathode naar de Arduino pin 7
Anode naar 270 ohm weerstand naar 5V
#include #include
#include
LibHumidity vochtigheid = LibHumidity(0);
LiquidCrystal lcd (12, 11, 10, 5, 4, 3, 2);
int backLight = 13; pin 13 zal de controle van de achtergrondverlichting
int RedLEDPin = 9; Aangesloten op digital pin 9 LED
int BlueLEDPin = 8; LED aangesloten op digital pin 8
int GreenLEDPin = 7; Aangesloten op digital pin 7 LED
VOID Setup
{
pinMode (backLight, uitvoer);
digitalWrite (verlichting, hoge); Achtergrondverlichting inschakelen. Vervang 'Hoog' door "LOW" voor zwenking op vandoor.
I2C
pinMode (16, OUTPUT);
digitalWrite (16, laag); GND pin
pinMode (17, OUTPUT);
digitalWrite (17, hoge); VCC pin
Oven / AC Indicator
pinMode (RedLEDPin, uitvoer); Hiermee stelt u de digitale pen als uitvoer
pinMode (BlueLEDPin, uitvoer); Hiermee stelt u de digitale pen als uitvoer
pinMode (GreenLEDPin, uitvoer); Hiermee stelt u de digitale pen als uitvoer
}
void loop
{
LCD.begin(20,4); kolommen, rijen. 16,2 gebruiken voor een 16 x 2 LCD, enz.
LCD.Clear(); beginnen met een leeg scherm
lcd.setCursor(0,0); cursor ingesteld op kolom 0, rij 0 (de eerste rij)
LCD.Print ("vochtigheid:"); deze tekst aan wat je wilt wijzigen. Houd het schoon.
LCD.Print (hoge luchtvochtigheid. GetHumidity());
lcd.setCursor(0,1); cursor ingesteld op kolom 0, rij 1
LCD.Print ("Temp in C:");
LCD.Print (hoge luchtvochtigheid. GetTemperatureC());
lcd.setCursor(0,2); cursor ingesteld op kolom 0, rij 2
LCD.Print ("Temp in F:");
LCD.Print (hoge luchtvochtigheid. GetTemperatureF());
{
Als (vochtigheid. GetTemperatureF() < 60)
{
digitalWrite (RedLEDPin, laag); Hiermee stelt u de rode LED op
digitalWrite (BlueLEDPin, hoge); de blauwe LED vertrekt
digitalWrite (GreenLEDPin, laag); de groene LED vertrekt
}
anders als (vochtigheid. GetTemperatureF() > = 75)
{
digitalWrite (BlueLEDPin, laag); de blauwe LED ingesteld op
digitalWrite (RedLEDPin, hoge); de rode LED vertrekt
digitalWrite (GreenLEDPin, hoge); de groene LED vertrekt
}
anders
{
digitalWrite (GreenLEDPin, laag); Hiermee stelt u de groene LED op
digitalWrite (BlueLEDPin, hoge); de blauwe LED vertrekt
digitalWrite (RedLEDPin, hoge); de rode LED vertrekt
}
}
vertraging (20000);
}
Zie http://arduinotronics.blogspot.com/2010/09/our-temperature-humidity-monitor-is.html voor de eigenlijke code als instructables pauzes onze omvatten verklaringen.