Stap 2: (codeTime);
Ook heb ik de sketch opgenomen in een download. Wanneer de code is coppied en in geplakt en ible neigt het naar scatter spullen rond.
Ik heb de code gereageerd beste ik weet hoe, maar als iets niet corrigeren of zou kunnen worden gereinigd omhoog laat alstublieft een reactie.
/*
25 oktober 2012
Gebaseerd off van een project van DJ Mentzik.
Verbeterd en aangepast door WWC.
Bewijsstukken kan gevonden worden op
Gebruiken en wijzig waar nodig.
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
Bovendien, draad een 10K pot aan + 5V en GND, met het wisser (output) op LCD-schermen VO pin (pin3).
*/
#include < LiquidCrystal.h > / / omvatten 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
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 ("Waynes World"); 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(5000); 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(5000); Vertraging om tekst te lezen
LCD.Clear(); Clear LCD
}
void loop
{
Serial.println(""); Lege regel voor de regelafstand in de seriële monitor
Serial.println ("u zoekt bij een project gebouwd door WWC."); 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 ("LM35 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) * 100.0) / 1024.0; conversie math van LM35 monster leesbaar resultaat van temperatuur en winkels aan monsters array.
5V is de levering volt van LM35. 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(800); wachten 800ms
} // 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 Farenait"); 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(6000); Wacht 3 seconden om weer te geven van de Fahrenheit temp en 3 seconden voor het weergeven van resultaten op LCD-scherm befor beginnen de lus opnieuw = 6 seconden.
tempC = 0; TempC ingesteld op 0, zodat berekeningen kunnen worden gedaan om opnieuw
}