Arduino LCD-Thermometer mit Temperatursensor LM35

2 Schritt:Schritt 1: Referenz Schritt 2: (codeTime);

Arduino LCD-Thermometer mit Temperatursensor LM35

Arduino LCD-Thermometer mit Temperatursensor LM35

Arduino LCD-Thermometer mit Temperatursensor LM35

Arduino LCD-Thermometer mit Temperatursensor LM35

Arduino LCD-Thermometer mit Temperatursensor LM35

Arduino LCD-Thermometer mit Temperatursensor LM35

Alle 13 Artikel anzeigen
: Aktualisierung der PIN 13: Dank für den Fang cybersb.
Die Fritzing schematische Shows mit Stiften 12 und 13 dies nicht richtig. Sollten die im Code aufgeführten Stifte, verwenden Sie die Stifte 11 und 12.


Dies ist, wie der Titel schon sagt, überwacht ein Arduino betriebene LCD-Thermometer, die einen Temperatursensor LM35 für die Temperaturanzeige verwendet. Wenn Sie noch nie gearbeitet haben, mit einem LCD vor wie mich einige Dinge kann ein wenig verwirrend sein, wie zum Beispiel: die erste Linie ist die Linie 0. In der zweiten Zeile in der oberen Zeile, ist unter dem Strich-Linie 1. Aber egal, wenn einige dieser Dinge werden die leichter zu bewegen gefunden.

Diese laufen einmal beim Einschalten:

Erste Display-Zeile 0 ist Waynes Welt
Ersten Displayzeile 1 Thermometer
Zweiten Displayzeile 0 LCD-Anzeige
Zweiten Displayzeile 1 gemittelt Temp

Diese immer laufen auf dem Laufenden:

Dritten Displayzeile 0 Aktuelle Temp ist:
Dritten Displayzeile 1 Celius [TEMPc angezeigt]
Vierten Displayzeile 0 Aktuelle Temp ist:
vierten Displayzeile 1 Fahrenheit [tempF angezeigt]

So dass die Informationen, die alle 3 Sekunden auf dem Display ändert, ist es auf der Linie 1 wechselt von der Anzeige drei bis vier anzuzeigen. Celcius TEMPc] Fahrenheit [tempF]

LCDs haben ein großes Plus, die es uns leichter, mit ihnen zu arbeiten macht. Der LCD-Bibliothek.
Wenn Sie Download und Installation des Arduino-Programm, das nur eine der vielen Bibliotheken, die enthalten sind.

Während diese LCD ist nach-nach Markt noch nutzt die extrem häufig HD44780 parallele Schnittstelle Chipsatz. Glück für mich.
Es kann in 4-Bit oder 8-Bit-Modus verwendet werden. Wir sind mit dem 4-Bit-Modus hier. Deshalb Pins 7,8,9 und 10 des LCD werden nicht verwendet.
Wenn Sie 8-Bit-Modus werden dann jene Stifte verwendet werden.

Dies ist das zweite Mal, dass ich diese Skizze geschrieben. Das erste Mal, dass ich es richtig gelöscht, nachdem ich es fertig. Woops!
Es ist gut, wirklich, ich brauche alle Praxis-i kann für die Codierung zu bekommen.

YouTube Video-Link.

Schritt 2: (codeTime);

  1. Arduino LCD-Thermometer mit Temperatursensor LM35
    Ich bezweifle, dass ich werde dies nicht weiter zu bauen. Das Ziel für mich dabei ist, mehr und besser mit familiären Code zu bekommen, Codierung.
    Ich habe die Skizze in einem Download ebenfalls enthalten. Wenn Code coppied und in eingefügten und IVK es dazu neigt, Sachen um zu streuen.
    Ich habe den Code kommentiert besten ich weiß, wie, aber wenn irgendwas nicht korrekt oder können bereinigt werden lassen Sie einen Kommentar.

    / *
    25. Oktober 2012
    Weg basiert von einem Projekt von DJ Mentzik.
    Erhöht und durch WWC modifiziert.
    Belege können http://www.instructables.com/member/WWC/ gefunden werden
    Verwenden und ändern, wie gebraucht.

    An den LCD-Bildschirm, um Ihre Arduino Draht, schließen die folgenden Stifte:
    LCD-Digital-Pin 6 Pin 12
    LCD-Digital-Pin 4 Pin 11
    LCD Pin 11 Digital-Stift 5
    LCD Pin 12 Digital-Pin 4
    LCD Pin 13 Digital-Stift 3
    LCD Pin 14 Digital-Pin 2
    Zusätzlich Draht ein 10K Pot + 5V und GND, mit seinen Wischer (Ausgang) auf LCD-Bildschirmen VO Stift (Pin 3).

    * /

    #include <LiquidCrystal.h> // sind die LCD-Treiber-Bibliothek

    // Variablen zu deklarieren
    schweben TEMPc = 0; // Variable für das Halten Celcius Temp (Floating für Dezimalstellen Präzision)
    schweben tempf = 0; // Variable für das Halten Fareghneit Temp
    int tempPin = 0; // Deklaration der Analogeingang 0 (A0) des Arduino-Board sein.
    float Proben [8]; // Array zu 8 Proben für die Durchschnittstemperatur Berechnung halten
    schweben maxi = 0 mini = 100; // Max / Min Temperatur Variablen Anfangswerte. LM35 in einfachen Setup misst nur Temp über 0.
    int i;

    Liquid LCD (12, 11, 5, 4, 3, 2); // Initialisierung der Bibliothek mit den Nummern der Schnittstellen-Pins

    Leere setup ()
    {
    Serial.begin (9600); // Öffnet serielle Schnittstelle, setzt Datenrate auf 9600 bps

    lcd.begin (16, 2); // Bis die LCD-Anzahl der Spalten und Zeilen beschränken:

    lcd.setCursor (2, 0); // Set LCD Position Cursor (Spalte, Zeile)
    lcd.print ("Waynes World"); // Print text auf LCD
    lcd.setCursor (3, 1); // Set LCD Position Cursor (Spalte, Zeile)
    lcd.print ("Thermometer"); // Print text auf LCD
    Verzögerung (5000); // // Warten 500ms Verzögerung, um Text zu lesen
    lcd.clear (); // Sichtliches LCD-Display // Lösche die Anzeige
    lcd.setCursor (2, 0); // Set LCD Position Cursor (Spalte, Zeile)
    lcd.print ("LCD-Anzeige ausgegeben"); // Print text auf LCD
    lcd.setCursor (1, 1); // Set LCD Position Cursor (Spalte, Zeile)
    lcd.print ("Gemittelt Temp"); // Print text auf LCD
    Verzögerung (5000); // Verzögerung um Text zu lesen
    lcd.clear (); // Clear LCD

    }

    Leere Schleife ()
    {
    Serial.println (""); // Leerzeile für Abstand in der seriellen Monitor
    Serial.println ("Sie sind in einem Projekt von WWC gebaut suchen."); // Print text to Serial Monitor
    Serial.print ("Feal kostenlos zu benutzen und modife nach Bedarf.");
    Serial.println (""); // Leerzeile für Abstand in der seriellen Monitor
    Serial.print ("LM35 Rohdaten:"); // Print text to Serial Monitor
    Serial.println (analogRead (tempPin)); // Anzeige auf serielle Monitor den abgetasteten Wert vor der Umwandlung in Echttemperaturanzeige

    // Anfang der Berechnungen für die Schleife.
    for (i = 0; i <= 7; i ++) {// bekommt 8 Proben von Temperatur
    Proben [i] = (4,4 * analogRead (tempPin) * 100,0) / 1024.0; // Umwandlung Mathematik der LM35 Probe lesbar Temperatur und speichert führen, um Proben-Array.

    // 5V ist die Versorgung Volt LM35. Ändern Sie appropriatelly um eine korrekte Messung zu haben. Mein Fall ist 4.4Volts.
    // Wenn vom USB dann Wert 4.4V bis 4.6V. Wenn die Stromversorgung 7v <zum Arduino dann mit 4,9 V bis 5,1 V
    // Die Spannung ist entscheidend für genaue Messwerte
    Serial.println (Proben [i]); // Print Proben [i], um Monitor sertiual

    // (LCD note: Linie 1 ist die zweite Zeile, da die Zählung beginnt bei 0):
    lcd.setCursor (0, 0); // Set LCD Cursor-Position (Spalte 0, Zeile 0)
    lcd.print ("Current Temp ist:"); // Print text auf LCD
    lcd.setCursor (1, 1); // Set LCD Cursor-Position (Spalte 1, Zeile 1)
    lcd.print ("Celcius"); // Print text auf LCD
    lcd.setCursor (12, 1); // Set LCD Cursor-Position (Spalte 12, Zeile 1)
    lcd.print (Proben [i]); // Print aktuelle Temp Probe auf LCD
    TEMPc = TEMPc + Proben [i]; // Do den Zusatz für Durchschnittstemperatur
    Verzögerung (800); // Wartezeit 800 ms

    } // Ende der FOR-Schleife

    Serial.println (""); // Leerzeile für Abstand in der seriellen Monitor
    Serial.println (""); // Leerzeile für Abstand in der seriellen Monitor
    TEMPc = TEMPc / 8,0; // Berechnet die averare von 8 Proben in Celcius

    tempf = (TEMPc * 9) / 5 + 32; // Wandelt in Fahrenheit

    if (TEMPc> maxi) {maxi = TEMPc;} // gesetzt max Temperatur
    if (TEMPc <mini) {mini = TEMPc;} // min Temperatur eingestellt

    // Ergebnisse senden, um Serial Monitor
    Serial.println ("Neue Messung:");
    Serial.print ("Durchschnittstemperatur in Celsius ist"); // Print text to Serial Monitor
    Serial.println (TEMPc); // Senden der Daten an den Computer // Senden Sie die Daten an den Computer
    Serial.print ("Durchschnittstemperatur in Farenait ist"); // Print text to Serial Monitor
    Serial.println (tempf); // senden die Daten an den Computer // Senden der Daten an den Computer
    Serial.print ("MAX Temperatur in Celsius ist"); // Print text to Serial Monitor
    Serial.println (maxi); // senden die Daten an den Computer // Senden der Daten an den Computer
    Serial.print ("MIN Temperatur in Celsius ist"); // Print text to Serial Monitor
    Serial.println (mini); // senden die Daten an den Computer // Senden der Daten an den Computer

    // Senden Ergebnisse auf LCD.
    lcd.setCursor (0, 1); // Set LCD Cursor-Position (Spalte 0, Zeile 1)
    lcd.print ("Fahrenheit"); // Print text auf LCD
    lcd.setCursor (12, 1); // Set LCD Cursor-Position (Spalte 12, Zeile 1)
    lcd.print (tempf); // Auf den LCD Senden Sie die Daten

    Verzögerung (6000); // Warten Sie 3 Sekunden, um die Temperatur in Fahrenheit angezeigt werden und 3 Sekunden, um Ergebnisse zu LCD-Bildschirm vor dem Start die Schleife wieder = 6 Sekunden.
    TEMPc = 0; // Set TEMPc auf 0 so Berechnungen erneut durchgeführt werden
    }