Stap 3: De schets
De schets is niet zo eenvoudig als het kopiëren en plakken, zowel schetsen samen, ik had om het voor beide apparaten en te vertellen van de Arduino te krijgen van de gegevens van de sensor en weer te geven op het LCD-scherm te wijzigen. Maar de variabelen en de bibliotheken blijven hetzelfde.
Er is een gecomprimeerde kopie van de schets in dit instructable kunt u het aanpassen zoals u goeddunkt.
Ik begon door het definiëren van de bibliotheken die we nodig voor het LCD-scherm hebben. Voor meer informatie over het laden van de bibliotheken in de Arduino library map volg de instructies in dit instructable:
laden van bibliotheken
#include < Wire.h >
#include < LCD.h >
#include < LiquidCrystal_I2C.h >
De ik de variabelen die nodig zijn voor het LCD-scherm en de LM35 gedefinieerd
Ik heb toegevoegd de variabele tempf om te helpen de temperatuur in Fahrenheit weergeven
Variabelen definiëren voor het LCD-scherm
#define I2C_ADDR 0x27 //Define I2C adres waar de PCF8574A zich
#define BACKLIGHT_PIN 3
#define En_pin 2
#define Rw_pin 1
#define Rs_pin 0
#define D4_pin 4
#define D5_pin 5
#define D6_pin 6
#define D7_pin 7
definiëren van de variabelen voor de LM35 temperatuursensor
float temp; Definieer de variabele temp float
float tempf; Definiëren van de Fahrenheit float variabele
int sensor = 0; de middelste pin van de sensor op analoge pin 0
Ik geïnitialiseerd vervolgens het LCD-scherm met behulp van deze regel:
Initialiseren van de LCD
LiquidCrystal_I2C lcd (I2C_ADDR, En_pin, Rw_pin, Rs_pin, D4_pin, D5_pin, D6_pin, D7_pin);
In de Void setup, ik vertellen de Arduinio dat ik ben met behulp van een 16 X 2 LCD, zet de achtergrondverlichting en print sommige lijnen dat niet zal veranderen.
VOID Setup {}
LCD.begin (16,2); Het LCD-scherm als 16 kolom definiëren door 2 rijen
De achtergrondverlichting inschakelen
lcd.setBacklightPin(BACKLIGHT_PIN,POSITIVE);
lcd.setBacklight(HIGH);
lcd.setCursor(0,0); Ga naar eerste kolom (kolom 0) en eerste lijn (0)
LCD.Print ("Temp C ="); Afdrukken bij cursor locatie
lcd.setCursor(0,1); Ga naar eerste kolom (kolom 0) en de tweede lijn (lijn 1)
LCD.Print ("Temp F ="); Afdrukken op cursorlocatie
}
In de Void lus ik lees de temperatuur van de sensor, het omzetten in Celsius en weer te geven op de eerste rij, dan weer veranderen naar Fahrenheit en weer te geven op de tweede rij. De herhaal het proces om de 5 seconden
void loop {}
Temp = analogRead(sensor); toewijzen van de analoge uitgang temp
temp temp = * 0.48828125; Volt omzetten in graden celsius---0.48828125 = [(5V*1000)/1024] 10 tempf = (temp * 1.8) + 32; Mogelijkheid van celsius naar fahreneit
lcd.setCursor(8,0); Verplaats de cursor naar positie 8 op 1 rij
LCD.Print(temp); afdrukken van de temperatuur in Celsius
lcd.setCursor(8,1); Verplaats de cursor naar positie 8 in nld 2
LCD.Print(tempf); de temperatuur in Fahrenheit afdrukken
delay(5000); wacht 5 seconden
}
Ik hoop dat het u bevalt, hebt u vragen, aarzel niet om vragen.
Geniet van