Stap 3: Maak een nieuw knooppunt voor uw elektrische Imp
Hebt u een 20 Verander karakter LCD de CharactersInLCD variabele tot en met 20.
Wanneer uitvoert op uw imp, moet het worden vergelijkbaar met de afbeelding weergegeven.
Code onder deze regel is voor uw knooppunt.
Station 3.3V LCD scherm met behulp van een rugzak van Sparkfun SerLCD uit een elektrische IMP
hardware.uart12.configure (9600, 8, PARITY_NONE, 1, NO_RX);
CharactersInLCD < - 16;
Bericht <-"abcdefghijklm123nopqrstuvwxyz456";
Backlight helderheidswaarden van 128 tot 157
128 - backlight af
140 - 40% op
150 - 73% op
157 - 100% op
functie LCDBacklight(Brightness)
{
Als ((Brightness>127) & &(Brightness<158))
{
hardware.uart12.write(124);
hardware.uart12.write(Brightness);
}
}
Hiermee stelt u de SerLCD module naar het juiste Type LCD.
3 - 20 tekens breed
4 - 16 tekens breed
5 - 4 lijnen
6 - 2 lijnen
functie SerLCDTypeSetup(LCDType)
{
Als ((LCDType>3) || (LCDType < 4) || (LCDType < 5) || (LCDType<6))
{
hardware.uart12.write(124);
hardware.uart12.write(LCDType);
}
}
Hiermee stelt u het splash-scherm.
functie LCDSetSplash(Message)
{
LCDClear();
hardware.uart12.write(Message);
Imp.Sleep (1);
hardware.uart12.write(0x7C);
hardware.uart12.write(0x0A);
Imp.Sleep (1);
}
Splash-scherm aan/uit schakelen
functie LCDToggleSplash()
{
hardware.uart12.write(0x7C);
hardware.uart12.write(0x09);
}
functie LCDClear()
{
hardware.uart12.write(254);
hardware.uart12.write(0x01);
hardware.uart12.write(254);
hardware.uart12.write(128);
LCDBoxCursorOff();
}
functie LCDMoveCursorRight()
{
hardware.uart12.write(254);
hardware.uart12.write(0x14);
}
functie LCDMoveCursorLeft()
{
hardware.uart12.write(254);
hardware.uart12.write(0x10);
}
functie LCDScrollRight()
{
hardware.uart12.write(254);
hardware.uart12.write(0x1c);
}
functie LCDScrollLeft()
{
hardware.uart12.write(254);
hardware.uart12.write(0x18);
}
functie LCDVisualDisplayOn()
{
hardware.uart12.write(254);
hardware.uart12.write(0x0C);
}
functie LCDVisualDisplayOff()
{
hardware.uart12.write(254);
hardware.uart12.write(0x08);
}
functie LCDUnderlineCursorOn()
{
hardware.uart12.write(254);
hardware.uart12.write(0x0E);
}
functie LCDUnderlineCursorOff()
{
hardware.uart12.write(254);
hardware.uart12.write(0x0C);
}
functie LCDBoxCursorOn()
{
hardware.uart12.write(254);
hardware.uart12.write(0x0D);
}
functie LCDBoxCursorOff()
{
hardware.uart12.write(254);
hardware.uart12.write(0x0C);
}
Positie gelijk is aan nul op basis
functie LCDSetCursorPosition(Line,Position)
{
lokale LineBaseAddress = 0;
if(CharactersInLCD==16)
{
if(line==2)
{
LineBaseAddress = 64;
}
if(line==3)
{
LineBaseAddress = 16;
}
if(line==4)
{
LineBaseAddress = 80;
}
}
if(CharactersInLCD==20)
{
if(line==2)
{
LineBaseAddress = 64;
}
if(line==3)
{
LineBaseAddress = 20;
}
if(line==4)
{
LineBaseAddress = 84;
}
}
hardware.uart12.write(254);
hardware.uart12.write (LineBaseAddress + standpunt + 128);
}
functie LCDWriteMessage(LCDMessage)
{
hardware.uart12.write(LCDMessage);
}
Main uitvoering lus
functie loop
{
Activiteiten - lus uitgevoerd eenmaal elke Wakeup
Imp.wakeup (2.0, lus);
}
Activiteiten - Setup alleen één keer uitgevoerd
Imp.configure ("LCD voorbeelden", [], []);
LCDClear();
LCDWriteMessage(Message);
Pauze 2 seconden voordat de hoofdlus - aanpassen naar smaak
Imp.wakeup (2.0, lus);