Arduino LCD-Thermometer mit Temperatursensor LM35
2 Schritt:Schritt 1: Referenz Schritt 2: (codeTime);
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 1: Referenz
-
Hier finden Sie eine PDF-Datei können Sie der LCD Referenz downloaden, wenn nötig.
Einige Dinge, die Sie benötigen:
Ein Arduino von einer Art, ich tatsächlich verwenden Sie einen Aceduino. Philippinen Version Arduino.
USB-Kabel mit Typ A und B endet.
LCD-Bildschirm
Brotbrett
LM35 Temperatursensor
Verschiedene Schaltdrähte
Computer
Arduino Software
Schritt 2: (codeTime);
-
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
}