Rulla en LCD linje ut, hur man (3 / 4 steg)
Steg 3: Skisser
Ange den bifogade skisser till Arduino IDE. Jag har bland annat en huvudprogrammet som arbetar med funktionerna scrollDisplayRight() och scrollDisplayLeft(). Jag har också tagit en andra skiss visar hur dessa funktioner kan användas för att rensa den LCD skärm för att visa fler rader. Denna rullande inställning till clearing är, tror jag, mycket elegant och väl värt att överväga om clearing text behövs.
Funktionerna scrollLineRight() och scrollLineLeft() kan användas i alla program som använder en 1602 LCD-skärm, så att du kan rulla en enda rad medan den andra "fasta", dvs oberörd. Dessa ger ett alternativ till utmärkt scrollDisplayLeft() scrollDisplayRight() funktionerna och inbyggd i flytande kristall-biblioteket, som de två funktionerna som beskrivs här inte kräver rulla hela displayen.
#include / / VÄNLIGEN LÄS OBS SOM FÖLJER FÖR ATT SÄKERSTÄLLA SKISS KÖRNINGAR
Denna webbplats droppar större och mindre än symboler och någon
text i mellan. Således var noga och Lägg till #include LiquidCrystal och
/ / surround kombinerade ordet LiquidCrystal med mindre än och större än symboler.
/ / Platsen också komprimera många utrymmen till en även inuti citat.
Deklarera lcd som en instans av flytande kristaller
LiquidCrystal lcd (8, 13, 9, 4, 5, 6, 7);
int jag = 0;
int j = 0;
int lineLength = 16.
int numberOfRows = 2;
int delayTime1 = 1250; Ihållande hela raden
int delayTime2 = 500. Fördröjning mellan arbetspassen
void scrollLineRight (int line, char str1[]) {
Skriven av R. Jordan Kreindler juni 2016
lcd.setCursor (0, linje);
LCD.Print(str1);
Delay(delayTime1); Pausa linje tillräckligt länge för att läsa
för (j = 0; j < = 16; j ++) {
lcd.setCursor (0, linje);
LCD.Print(str1);
lcd.setCursor (0, linje);
för (jag = 0; jag < = j; i ++) {
LCD.Print("");
}
LCD.Print(str1);
Delay(delayTime2);
}
}
void scrollLineLeft (int line, char str1[]) {
Skriven av R. Jordan Kreindler juni 2016
lcd.setCursor (0, linje);
LCD.Print(str1);
Delay(delayTime1); Pausa linje tillräckligt länge för att läsa
lcd.setCursor (0, linje);
LCD.Print("");
lcd.setCursor (0, linje);
för (j = 0; j < = 16; j ++) {
lcd.setCursor (0, linje);
LCD.Print("");
lcd.setCursor (0, linje);
för (jag = j; i < = 15; i ++) {
LCD.Print(str1[i]);
}
Delay(delayTime2);
}
}
void setup() {
LCD.BEGIN (lineLength, numberOfRows);
lcd.setCursor (0, 0);
LCD.Print ("denna linje fast");
Delay(delayTime1);
scrollLineRight (1, "detta rullas ut");
scrollLineRight (1, "Nu detta rullar");
scrollLineRight (1, "den sista en nu");
scrollLineLeft (1, "detta rullas ut");
scrollLineLeft (1, "Nu detta rullar");
scrollLineLeft (1, "den sista en nu");
lcd.setCursor(0,1);
LCD.Print ("denna Scrolls");
}
void loop() {}
Följande är ett exempel på att använda de två funktionerna presenteras för att rensa en LCD-display i vad, jag tror, är ett mycket elegant sätt.
#include / / Läs OBS som följer till Se skiss KÖRNINGAR
Denna webbplats droppar större och mindre än symboler och någon
text i mellan. Således var noga och Lägg till #include LiquidCrystal och
/ / surround kombinerade ordet LiquidCrystal med mindre än och större än symboler.
/ / Platsen också komprimera många utrymmen till en även inuti citat.
Deklarera lcd som en instans av flytande kristaller
LiquidCrystal lcd (8, 13, 9, 4, 5, 6, 7);
int jag = 0;
int j = 0;
int lineLength = 16.
int numberOfRows = 2;
int delayTime1 = 1250; Ihållande hela raden
int delayTime2 = 500. Fördröjning mellan arbetspassen
void scrollLineRight (int line, char str1[]) {
Skriven av R. Jordan Kreindler juni 2016
lcd.setCursor (0, linje);
LCD.Print(str1);
Delay(1250);
för (j = 0; j < = 16; j ++) {
lcd.setCursor (0, linje);
LCD.Print(str1);
lcd.setCursor (0, linje);
för (jag = 0; jag < = j; i ++) {
LCD.Print("");
}
LCD.Print(str1);
Delay(500);
}
}
void scrollLineLeft (int line, char str1[]) {
Skriven av R. Jordan Kreindler juni 2016
lcd.setCursor (0, linje);
LCD.Print(str1);
Delay(2000);
lcd.setCursor (0, linje);
LCD.Print("");
lcd.setCursor (0, linje);
för (j = 0; j < = 16; j ++) {
lcd.setCursor (0, linje);
LCD.Print("");
lcd.setCursor (0, linje);
för (jag = j; i < = 15; i ++) {
LCD.Print(str1[i]);
}
Delay(delayTime2);
}
}
void setup() {
LCD.BEGIN (lineLength, numberOfRows);
LCD.Clear();
lcd.setCursor (0, 0);
LCD.Print ("skärmen Cleared");
lcd.setCursor (0, 1);
LCD.Print ("genom att använda Scrolls");
Delay(5000);
scrollLineRight (1, "genom att använda Scrolls");
scrollLineLeft (0, "Skärmen rensas");
LCD.Print ("att visa två");
lcd.setCursor (0, 1);
LCD.Print ("nya textrader");
}
void loop() {}