Stap 3: De schetsen
De bijgevoegde sketch(es) aangaan in de Arduino IDE. Ik heb ook een hoofdprogramma die werken met de functies scrollDisplayRight() en scrollDisplayLeft(). Ik heb ook ook een tweede schets laten zien hoe deze functies kunnen worden gebruikt om te wissen van het LCD-scherm om meer lijnen weer te geven. Deze schuivende aanpak van clearing is naar mijn mening, uiterst elegante en goed waard het nadenken als wissen van tekst nodig is.
De functies scrollLineRight() en scrollLineLeft() kunnen worden gebruikt in een programma dat gebruikmaakt van een 1602 LCD-scherm, zodat u kunt een enkele regel schuiven terwijl de andere 'vaste', dat wil zeggen, onbewogen. Deze bieden een alternatief voor de uitstekende scrollDisplayLeft() en scrollDisplayRight() functies ingebouwd in de bibliotheek van de vloeibare kristallen in die zin dat ze hoeven niet het hele beeld wordt verplaatst.
#include / / LEES DE NOTA DIE VOLGT ZODAT DEZE SCHETS TO RUN
Deze site daalt het groter en kleiner dan symbolen en eventuele
tekst in tussen. Dus zorg en #include LiquidCrystal toevoegen en
/ / omringen van het gecombineerde woord LiquidCrystal met minder dan of groter dan symbolen.
/ / De site ook comprimeren vele ruimten naar een zelfs binnen aanhalingstekens.
Verklaar lcd als een instantie van vloeibaar kristal
LiquidCrystal lcd (8, 13, 9, 4, 5, 6, 7);
int i = 0;
int j = 0;
int lineLength = 16;
int numberOfRows = 2;
int delayTime1 = 1250; Persistentie van de hele lijn
int delayTime2 = 500; De wachttijd tussen de verschuivingen
VOID scrollLineRight (int lijn, char str1[]) {}
Geschreven door R. Jordan Kreindler juni 2016
lcd.setCursor (0, lijn);
LCD.Print(str1);
delay(delayTime1); Onderbreken van de lijn lang genoeg om te worden gelezen
voor (j = 0; j < = 16; j ++) {}
lcd.setCursor (0, lijn);
LCD.Print(str1);
lcd.setCursor (0, lijn);
voor (ik = 0; ik < = j; i ++) {}
LCD.Print("");
}
LCD.Print(str1);
delay(delayTime2);
}
}
VOID scrollLineLeft (int lijn, char str1[]) {}
Geschreven door R. Jordan Kreindler juni 2016
lcd.setCursor (0, lijn);
LCD.Print(str1);
delay(delayTime1); Onderbreken van de lijn lang genoeg om te lezen
lcd.setCursor (0, lijn);
LCD.Print("");
lcd.setCursor (0, lijn);
voor (j = 0; j < = 16; j ++) {}
lcd.setCursor (0, lijn);
LCD.Print("");
lcd.setCursor (0, lijn);
voor (ik = j; ik < = 15; i ++) {}
LCD.Print(str1[i]);
}
delay(delayTime2);
}
}
VOID Setup {}
LCD.begin (lineLength, numberOfRows);
lcd.setCursor (0, 0);
LCD.Print ("deze regel vast");
delay(delayTime1);
scrollLineRight (1, "dit van schuift");
scrollLineRight (1, "Nu dit schuift");
scrollLineRight (1, "The Last One Now");
scrollLineLeft (1, "dit van schuift");
scrollLineLeft (1, "Nu dit schuift");
scrollLineLeft (1, "The Last One Now");
lcd.setCursor(0,1);
LCD.Print ("deze rollen");
}
void loop {}
Het volgende is een voorbeeld van het gebruik van de twee functies gepresenteerd Schakel een LCD-scherm in wat ik geloof is een heel elegante manier.
#include Lees Opmerking //please dat volgt zodat deze SCHETS TO RUN
Deze site daalt het groter en kleiner dan symbolen en eventuele
tekst in tussen. Dus zorg en #include LiquidCrystal toevoegen en
/ / omringen van het gecombineerde woord LiquidCrystal met minder dan of groter dan symbolen.
/ / De site ook comprimeert veel ruimtes in een zelfs binnen aanhalingstekens.
Verklaar lcd als een instantie van vloeibaar kristal
LiquidCrystal lcd (8, 13, 9, 4, 5, 6, 7);
int i = 0;
int j = 0;
int lineLength = 16;
int numberOfRows = 2;
int delayTime1 = 1250; Persistentie van de hele lijn
int delayTime2 = 500; De wachttijd tussen de verschuivingen
VOID scrollLineRight (int lijn, char str1[]) {}
Geschreven door R. Jordan Kreindler juni 2016
lcd.setCursor (0, lijn);
LCD.Print(str1);
delay(1250);
voor (j = 0; j < = 16; j ++) {}
lcd.setCursor (0, lijn);
LCD.Print(str1);
lcd.setCursor (0, lijn);
voor (ik = 0; ik < = j; i ++) {}
LCD.Print("");
}
LCD.Print(str1);
delay(500);
}
}
VOID scrollLineLeft (int lijn, char str1[]) {}
Geschreven door R. Jordan Kreindler juni 2016
lcd.setCursor (0, lijn);
LCD.Print(str1);
delay(2000);
lcd.setCursor (0, lijn);
LCD.Print("");
lcd.setCursor (0, lijn);
voor (j = 0; j < = 16; j ++) {}
lcd.setCursor (0, lijn);
LCD.Print("");
lcd.setCursor (0, lijn);
voor (ik = j; ik < = 15; i ++) {}
LCD.Print(str1[i]);
}
delay(delayTime2);
}
}
VOID Setup {}
LCD.begin (lineLength, numberOfRows);
LCD.Clear();
lcd.setCursor (0, 0);
LCD.Print ("scherm uitgeschakeld");
lcd.setCursor (0, 1);
LCD.Print ("door met behulp van rollen");
delay(5000);
scrollLineRight (1, "door Scrolls gebruiken");
scrollLineLeft (0, 'Scherm leeg');
LCD.Print ("voor weergeven twee");
lcd.setCursor (0, 1);
LCD.Print ("nieuwe tekst Lines");
}
void loop {}