DIY Arduino Unit Converter: Hur man använder LCD: (6 / 8 steg)
Steg 6: Mer programmering...
Problemet med skissen (ovan) vi har hittills är att vi inte kan ändra våra inches med en live uppdatering. Koden ovan kommer bara skriva ut mängden inches en gång. Nu är det här bra för fötter, eller vad vi konverterar till, men för våra variabel, är detta hemskt! Vi kan även välja vilket nummer som vi vill ha för inches! För att fixa detta, använde jag en liten procedur för att skriva ut data (inches) till LCD och rensa det 50 gånger, vilket ger mig en ganska bra nummer förändring enligt min svarvning av potten. Koden nedan upprepar alla koden mellan blocken 50 gånger, och med förseningen inställd på 100, att omkring 5 sekunder (50 * 100).< pre > för (int jag = 0; jag < 50, ++ jag)
{
int sensorValue = analogRead(A0); Läs input på analoga stift 0:
flyta tum = sensorValue * (500 / 1023.0);
LCD.Print ("justera vredet");
lcd.setCursor(0,1);
LCD.Print(inches);
Delay(100);
LCD.Clear();
}
I skissen ovan, kommer att istället bara ser mängden inches en gång, det upprepa detta många gånger, så att du kan se det som den uppdaterar (unisont med roterande av andra potten).
Ladda upp koden nedan gör det här:
- "Välkommen till Enhetsomvandlaren!"
- "Justera vredet" med antal inches under det. Detta kommer att visa i 5 sekunder. Förvandla din kruka!
- Skriva ut mängden inches
- Klart
- Skriv ut belopp fötterna
- Tillbaka till "Justera vredet"
< pre > #include < LiquidCrystal.h >
LiquidCrystal lcd (12, 11, 5, 4, 3, 2);
int lcdbl = 10; lcdbl = LCD-bakgrundsbelysning: upphakning av lcdbacklight till pinne 10
int fötter.
int vänta = 3000; tilldela ordet "vänta" till 3000 millisekunder
void setup()
{
LCD.BEGIN(16,2);
digitalWrite (lcdbl, hög);
pinMode (lcdbl, produktionen); ställa in pin 11 till utgång
LCD.Print ("Välkommen till den");
lcd.setCursor(0,1); markören är som rader på din LCD. Efter detta, kommer det ut
text på den nedersta raden av LCD-skärmen.
LCD.Print ("Enhetsomvandlare!");
Delay(Wait); / * Om du tittar här, intead av den vanliga tiden i millisekunder
Det säger "vänta". Om vi ser vad "vänta" är, i början av koden,
Vi ser att "vänta" har tilldelats 3000 millisekunder, så när jag skriver i
Delay(Wait); det wil ha en fördröjning av 3000 millisekunder eller 3 sekunder. */
LCD.Clear();
Delay(1000);
}
void loop()
{
för (int jag = 0; jag < 50, ++ jag)
{
int sensorValue = analogRead(A0); Läs input på analoga stift 0:
flyta tum = sensorValue * (500 / 1023.0);
LCD.Print ("justera vredet");
lcd.setCursor(0,1);
LCD.Print(inches);
Delay(100);
LCD.Clear();
}
int sensorValue = analogRead(A0); Läs input på analoga stift 0:
flyta tum = sensorValue * (500 / 1023.0);
Delay(1000);
LCD.Print(inches);
LCD.Print ("inches:");
Delay(Wait);
LCD.Clear();
Delay(1000);
fot = (tum / 12); konvertering från fötter till inches här detta är talande Arduino som
fötter är lika med tum dividerat med 12
LCD.Print(feet);
LCD.Print ("fötter:");
Delay(Wait);
LCD.Clear();
Delay(1000);
}