Arduino LCD Thermometer / temperatuurregeling met TMP36GZ Temp sensor toegevoegd 2 chanel estafette, RTC ds1307 toegevoegd, een case.based op WWC gids toegevoegd. (12 / 36 stap)

Stap 12: Upload deze sketch om toe te voegen van de rtc naar de projekt. worden voortgezet.


toont de huidige temperatur
< ~25°c/77° F koude 2 chanel relay beide chanels inschakelen.
> ~ 30° c / 86° F hot 2 chanel relay beide chanels uit te schakelen.
Toont de real-time.

/*
september 22 2013 toegevoegd RTC
September 13 2013 toegevoegd 2 chanel estafette
12 september-2013
25 oktober 2012
Gebaseerd off van een project van DJ Mentzik bevat http://www.arduino.cc/en/Tutorial/SwitchCase
Verbeterd en aangepast door WWC, citin
Bewijsstukken kan gevonden worden op wwwc

Citin

Gebruik en modife zo nodig.

Toont huidige, 8 sec gemiddelde, Max en Min temperatuur, 2 chanel-relay switch
in- / uitschakelen door bereiken min/max sensor ruwe gegevens en waarschuwt koud/warm/ok.

Sluit de volgende pinnen om de draad van uw LCD-scherm tot je Arduino:
LCD Pin 6 aan digitale pin 12
LCD Pin 4 tot en met digital pin 11
LCD Pin 11 tot en met digital pin 5
LCD Pin 12 aan digitale pin 4
LCD Pin 13 tot en met digital pin 3
LCD Pin 14 tot digitale pin 2
LCD PIN 15 tot +
LCD PIN 16 met GNd

*/
Deze constanten niet gewijzigd:
Const int sensorMin = 160;      de minimale needet van de sensor om minimale tempratuur, ontdekt door experiment
Const int sensorMax = 215;    sensor-maximum, 41, 9celsius = 248 rawdata ontdekt door experiment

#include < LiquidCrystal.h >
#include < Time.h >
#include < Wire.h >
#include < DS1307RTC.h > / / een elementaire DS1307-bibliotheek die tijd als een time_t retourneert
#include < LiquidCrystal.h >
omvatten van de LCD-stuurprogrammabibliotheek

variabelen declareren
zweven tempC = 0;                                                 Variabele voor het houden van Celsius temp (zwevend voor decimalen nauwkeurig)
zweven tempf = 0;                                                 variabele voor het houden van Fareghneit temp
int tempPin = 0;                                                 Waarbij de analoge ingang als 0 (A0) van de Arduino board.
float monsters [8];                                                Matrix te houden van 8 monsters voor gemiddelde temp berekening
float maxi = 0, mini = 100;                                       Max/Min temperatuur variabelen met de beginwaarden. LM35 in eenvoudige opstelling meet slechts Temp boven 0.
int i;

LiquidCrystal lcd (12, 11, 5, 4, 3, 2);                          initialiseren van de bibliotheek met de nummers van de pennen van de interface

VOID Setup
{

Serial.begin(9600);                                             Seriële poort wordt geopend, wordt gegevenssnelheid ingesteld op 9600 bps
setSyncProvider(RTC.get);   de functie om de tijd van de RTC
if(timeStatus()! = timeSet)
Serial.println ("Unable to sync met de RTC");
anders
Serial.println ("RTC heeft de systeemtijd instellen");
LCD.begin (16, 2);                                               De LCD's aantal kolommen en rijen instellen:

lcd.setCursor (2, 0);                                            Instellen van de positie van de cursor van de LCD (kolom, rij)
LCD.Print("Bartagamen");                                      Print tekst op LCD-
lcd.setCursor (3, 1);                                            Instellen van de positie van de cursor van de LCD (kolom, rij)
LCD.Print("thermometer");                                       Print tekst op LCD-
delay(500); wachten 500ms / / vertraging om te lezen van de tekst
LCD.Clear(); duidelijk LCD-scherm / / Schakel het weergeven
lcd.setCursor (2, 0);                                            Instellen van de positie van de cursor van de LCD (kolom, rij)
LCD.Print ("LCD weergegeven");                                     Print tekst op LCD-
lcd.setCursor (1, 1);                                            Instellen van de positie van de cursor van de LCD (kolom, rij)
LCD.Print ("Averaged Temp");                                   Print tekst op LCD-
delay(2000);                                                    Vertraging om tekst te lezen
LCD.Clear();                                                    Clear LCD

}

void loop
{
digitalClockDisplay();
delay(1000);
}

VOID digitalClockDisplay()
{

Serial.println("");                                            Lege regel voor de regelafstand in de seriële monitor
Serial.println ("u zoekt bij een project gebouwd door WWC, Citin");  Print tekst op seriële monitor
Serial.Print ("Feal gratis te gebruiken en modife zo nodig.");
Serial.println("");                                            Lege regel voor de regelafstand in de seriële monitor
Serial.Print ("TMP36GZ ruwe gegevens:");                               Print tekst op seriële monitor
Serial.println(analogRead(tempPin));                           De bemonsterde waarde vóór omzetting naar echte temperatuur lezing weergegeven op seriële monitor

Begin van berekeningen FOR-lus.
voor (ik = 0; ik < = 7; i ++) {/ / krijgt 8 monsters van temperatuur
monsters [i] = (4.4 * analogRead(tempPin) * 26) / 1024.0;    conversie math voor tmp26gz moeten kruis controleren.
5V is de volt van de levering van tmp26gz. Appropriatelly dat de correcte meting wijzigen Mijn geval is 4.4Volts.
Als gevoed vanuit USB gebruikt u waarde 4.4v te 4.6v. Als macht 7v < aan de Arduino en gebruik vervolgens 4.9v om 5.1v
De spanning is van cruciaal belang voor nauwkeurige metingen
Serial.println(samples[i]);                                    Afdrukken van monsters [i] sertiual monitor

(LCD Opmerking: lijn 1 is de tweede rij, aangezien tellen met 0 begint):
lcd.setCursor (0, 0);                                           Instellen van de positie van de cursor van de LCD (kolom 0, rij 0)
LCD.Print ("huidige Temp is:");                                Print tekst op LCD-
lcd.setCursor (1, 1);                                           Instellen van de positie van de cursor van de LCD (kolom 1, rij 1)
LCD.Print ("Celsius");                                     Print tekst op LCD-
lcd.setCursor (12, 1);                                          Instellen van de positie van de cursor van de LCD (kolom 12, rij 1)
LCD.Print(samples[i]);                                         huidige Temp drukproef op LCD-
tempC = tempC + monsters [i];                                    doen de toevoeging voor gemiddelde temperatuur
delay(4000);                                                    wachten 800ms
Lees de sensor:
int sensorReading = analogRead(A0);                           krijgen van de ruwe gegevens van de Sensor aan de huidige modus instellen
het sensorbereik worden toegewezen aan een bereik van vier opties:
int bereik = kaart (sensorReading, sensorMin, sensorMax, 0, 3);   sensor output don t wijzigen.

iets anders is afhankelijk van de
bereik de waarde:
schakelaar (bereik) {}
geval van 0: / / kalt / / display koude en switch beide chanels op aan warmte selectievakje estafette staat doorgeven.
analogWrite(8,HIGH);
analogWrite(10,HIGH);
Serial.println("Dark");
lcd.setCursor (1, 1);                                           Instellen van de positie van de cursor van de LCD (kolom 0, lijn 1)
LCD.Print("Cold");                                               Print tekst op LCD-
lcd.setCursor (1, 1);
delay(800);                                                     wachten zodat u het bericht zien kunt
breken;
geval 1: / / ok, niets te doen beide Relais chanels zijn OFF
Serial.println("Dim");
analogWrite(8,LOW);
analogWrite(10,LOW);
lcd.setCursor (1, 1);
LCD.Print("Rise");                                        Print tekst op LCD-
lcd.setCursor (1, 1);
delay(800);                                                   wachten zodat u het bericht zien kunt
breken;
geval 2: / / uw hand is een paar inch van de sensor / / ok, niets te doen beide Relais chanels zijn in laatste stat
Serial.println("medium");
lcd.setCursor (1, 1);
LCD.Print("OK");                                         Print tekst op LCD-
lcd.setCursor (1, 1);
delay(800);                                              wachten zodat u het bericht zien kunt
breken;
Case 3: / / uw hand is nergens in de buurt van de sensor
Serial.println("Bright");                                 om de hete Relais alle chanels stop verwarming uit.
digitalWrite (8, laag);                                     om de hete Relais alle chanels stop verwarming uit. relay status controleren
digitalWrite (10, laag);                                    om de hete Relais alle chanels stop verwarming uit. relay status controleren
lcd.setCursor (1, 1);
LCD.Print("hot");                                       Print tekst op LCD-
lcd.setCursor (1, 1);
delay(800);                                               wachten zodat u het bericht zien kunt
breken;

}}                                                              // END of FOR loop

Serial.println("");                                            Lege regel voor de regelafstand in de seriële monitor
Serial.println("");                                            Lege regel voor de regelafstand in de seriële monitor
tempC = tempC/8.0;                                             de averare voor 8 samples in Celsius berekend

tempf = (tempC * 9) / 5 + 32;                                   converteert naar fahrenheit

if(tempC > Maxi) {maxi = tempC;}                               max temperatuur instellen
if(tempC < mini) {mini = tempC;}                               instellen min temperatuur

Resultaten verzenden naar seriële Monitor
Serial.println ("nieuwe meting:");
Serial.Print ("gemiddelde temperatuur in Celsius is");          Print tekst op seriële monitor
Serial.println (tempC), //send de gegevens naar de computer / / de gegevens naar de computer verzenden
Serial.Print ("gemiddelde temperatuur in de Fareneit");         Print tekst op seriële monitor
Serial.println (tempf), //send de gegevens naar de computer / / de gegevens naar de computer verzenden
Serial.Print ("MAX Temperature in Celsius is");              Print tekst op seriële monitor
Serial.println (maxi); //send de gegevens naar de computer / / de gegevens naar de computer verzenden
Serial.Print ("MIN temperatuur in Celsius is");              Print tekst op seriële monitor
Serial.println (mini); //send de gegevens naar de computer / / de gegevens naar de computer verzenden

Resultaten verzenden naar LCD.
lcd.setCursor (0, 1);                                           Instellen van de positie van de cursor van de LCD (kolom 0, lijn 1)
LCD.Print ("Fahrenheit");                                     Print tekst op LCD-
lcd.setCursor (12, 1);                                          Instellen van de positie van de cursor van de LCD (kolom 12, lijn 1)
LCD.Print(tempf);                                              Stuur de gegevens naar het LCD-scherm

delay(1000);            Seconden als u wilt weergeven van de Fahrenheit temp en seconden voor het weergeven van resultaten op LCD-scherm befor beginnen de lus opnieuw = 6 seconden.
LCD.Clear();            duidelijk Display
tempC = 0;                                                     TempC ingesteld op 0, zodat berekeningen kunnen worden gedaan om opnieuw

Serial.Print(Hour());                                         Print tekst naar seriële (PC)
printDigits(minute());
printDigits(second());
Serial.Print("");
Serial.Print(Day());
Serial.Print("");
Serial.Print(month());
Serial.Print("");
Serial.Print(Year());
Serial.println();

lcd.setCursor (2, 0);                                            Instellen van de positie van de cursor van de LCD (kolom, rij)
LCD.Print(Hour());                                               Print tekst op LCD-
LCD.Print(":");
LCD.Print (minute());
LCD.Print("");
LCD.Print(Second());
LCD.Print("");
LCD.Print("Uhr");
lcd.setCursor (3, 1);                                           Instellen van de positie van de cursor van de LCD (kolom, rij)
LCD.Print(Day());
LCD.Print(".");
LCD.Print(month());
LCD.Print(".");
LCD.Print(Year());
delay(6000);                                                   vertraging om tekst te lezen

}

VOID printDigits (int cijfers) {}
hulpprogrammafunctie voor digitale klokvertoning: prenten voorafgaand aan de dikke darm en 0 voorsprong
Serial.Print(":");
if(digits < 10)
Serial.Print('0');
Serial.Print(digits);

}

Gerelateerde Artikelen

Arduino LCD Thermometer met LM35 Temp Sensor

Arduino LCD Thermometer met LM35 Temp Sensor

: UPDATE van de PIN 13: dank aan cybersbvoor de vangst.De schematische Fritzing toont met behulp van pin 12 en 13. Dit niet corrigeren. De pinnen in de code, PIN 11 en 12 vermelde moet gebruiken.Dit is zoals de titel al aangeeft, een Arduino aangedre
Arduino LCD Thermometer

Arduino LCD Thermometer

Hey kerels dit is Gaige TheEngineer hier om u een fundamentele arduino project: The Arduino LCD thermometerDit is iets wat die een 12-jarige vrij gemakkelijk kunt doen. Dus gelieve genieten en check out mijn Youtube-kanaal (zelfs als er niets er nog
Het gebruik van de TMP36 temp sensor - Arduino tutorial Arduino Tutorial

Het gebruik van de TMP36 temp sensor - Arduino tutorial Arduino Tutorial

De TMP35/TMP36/TMP37 zijn laag voltage, precisie heeft temperatuursensoren. Ze bieden een spanning uitgang die is lineair evenredig met de Celsius (Celsius) temperatuur. De TMP35 / TMP36/TMP37 hoeven niet alle externe kalibratie om typische nauwkeuri
De verhaal-klok: Arduino LCD w / GLB sensoren

De verhaal-klok: Arduino LCD w / GLB sensoren

Dit is nog een ander Arduino LCD klok, maar met een twist; deze klok kunt weet sommige feestdagen en verjaardagen, en berekeningen maken op de vliegen van hoe oud iemand is en vervolgens de gegevens weergeven op het LCD-scherm. Ik was geïnspireerd om
Arduino OLED Thermometer en Hygrometer met DHT11 voor Beginners

Arduino OLED Thermometer en Hygrometer met DHT11 voor Beginners

Hallo! Ik ga u laten zien hoe een Arduino OLED thermometer en hygrometer * met DHT11 te maken.De OLED we vandaag gebruiken is 1.3 inch in grootte, functies 128 × 64 pixels en de SPI-Bus gebruikt. Op de volgende pagina vindt u meer nuttige informatie
Arduino Uno Ant Farm 64 w / Voltage Booster, Buck toeteren gedreven LED-verlichting, Temp Sensor *

Arduino Uno Ant Farm 64 w / Voltage Booster, Buck toeteren gedreven LED-verlichting, Temp Sensor *

InleidingWe hebben...Arduino Uno microcontrollerspanning versterkt...Buck toeten gedreven...LED verlicht...64 inch Ant Farm Habitat.  Dat zou hebben gehad temperatuur gecontroleerde verlichting als het niet voor die ingebouwde programmatuur "probleem
Thermoscope - 16 x 2 LCD thermometer met grafieken van S/M/H

Thermoscope - 16 x 2 LCD thermometer met grafieken van S/M/H

Ik ben begonnen met het spelen met een temperatuursensor en ik heb gemerkt de reactietijd op veranderingen (bijvoorbeeld het invoeren van een kamer met airconditioning) was minuten, en het was moeilijk te zeggen "zijn we er nog?".Dit maakte me e
Arduino Digitale Thermometer (met DS18B20)

Arduino Digitale Thermometer (met DS18B20)

Hallovandaag zal ik u tonen hoe te maken van uw eigen digitale thermometer met arduino uno en DS18B20 temperatuursensor.Deze thermometer kan het meten van temperaturen van-55 ° C tot +125 ° C (-67 ° F tot +257 ° F). Het heeft aan knoppen, een om te s
Meerdere gister temperatuurregeling met Arduino

Meerdere gister temperatuurregeling met Arduino

Temperatuurregeling wordt vaak beschouwd als een van de top vijf stappen op weg naar betere bierbrouwen. (http://beerandwinejournal.com/10-better-1/) Er zijn tal van methoden voor het houden van gistende wort bij de optimale temperaturen een mandfles
Arduino LCD grond vochtigheid sensor

Arduino LCD grond vochtigheid sensor

Wat we gaan maken is een Arduino vocht sensor met YL-69-sensor die werken op basis van een elektrische weerstand tussen de twee "bladen". Het geeft ons waarden tussen 450-1023 dus we moeten het toewijzen aan krijgen de percentagewaarde, maar we
Arduino Nano met DHT11, RTC DS1307 en LCD 16 x 2

Arduino Nano met DHT11, RTC DS1307 en LCD 16 x 2

Hallo. Dit is mijn eerste Instructable, dus ik hoop dat het zal worden OK.Dit is mijn Arduino Nano project met LCD-scherm met I2C board, RTC DS1307 en DHT11 sensor.Voor dit project gebruikte ik Arduino Nano, RTC DS1307 klok bord, DHT11 sensor board,
Arduino WiFi Thermometer (met web page) - Arduino draadloze

Arduino WiFi Thermometer (met web page) - Arduino draadloze

Wat je nodig hebtEen Arduino board (compatibel bestuur is OK).LM-35 (om te gebruiken met de meegeleverde bestand kunt u DS18B20 maar je moet de broncode respectievelijk converteren).HLK-RM04 WiFi router module.5V voeding of Power supply en verordenin
ATTiny45/85 LCD Weergave besturingselement met een shift register, geprogrammeerd in Arduino

ATTiny45/85 LCD Weergave besturingselement met een shift register, geprogrammeerd in Arduino

uitgevoerd op een ATTiny45 van 85 chip Arduino is een grote kosten-spaarder voor mini-projecten. Echter geen u een HD44780 compatibele LCD display verbinding maken als u nodig hebt 6 uitgangen, maar u slechts 5 hebt. Dit probleem kan worden opgelost
Hookup een LCD-scherm aan een Arduino in 6 seconden met 3, niet 6 pins

Hookup een LCD-scherm aan een Arduino in 6 seconden met 3, niet 6 pins

het toevoegen van een LCD-scherm aan de Arduino projecten kan echte waarde toevoegen de kosten doen dus kan echter aanzienlijk. Niet een financiële kosten - u kunt oprapen 16 (tekens) x 2 (rijen) LCD voor zo weinig zoals £3,50. De kosten is het telle