Étape 3: Créer un nouveau nœud pour votre Imp électrique
Si vous avez un 20 caractères LCD changer la variable CharactersInLCD à 20.
Lorsque exécuté sur votre imp, il doit afficher semblable à l’image.
Code au-dessous de cette ligne est pour votre noeud.
Écran LCD de 3, 3V en voiture à l’aide d’un sac à dos de Sparkfun SerLCD d’un DIABLOTIN électrique
Hardware.uart12.configure (9600, 8, PARITY_NONE, 1, NO_RX) ;
CharactersInLCD < - 16 ;
Message <-« abcdefghijklm123nopqrstuvwxyz456 » ;
Rétro-éclairage des valeurs de luminosité de 128 à 157
128 - rétroéclairage éteint
140 - 40 % sur
150 - 73 % sur
157 - 100 % sur
fonction LCDBacklight(Brightness)
{
Si ((Brightness>127) & &(Brightness<158))
{
Hardware.uart12.Write(124) ;
Hardware.uart12.Write(Brightness) ;
}
}
Définit le module SerLCD vers le Type approprié de LCD.
3 - 20 caractères
4 - 16 caractères
5 - 4 lignes
6 - 2 lignes
fonction SerLCDTypeSetup(LCDType)
{
Si ((LCDType>3) || (LCDType < 4) || (LCDType < 5) || (LCDType<6))
{
Hardware.uart12.Write(124) ;
Hardware.uart12.Write(LCDType) ;
}
}
Définit l’écran de démarrage.
fonction LCDSetSplash(Message)
{
LCDClear() ;
Hardware.uart12.Write(message) ;
IMP.Sleep (1) ;
Hardware.uart12.Write(0x7C) ;
Hardware.uart12.Write(0x0A) ;
IMP.Sleep (1) ;
}
Écran de démarrage/arrêt bascule
fonction LCDToggleSplash()
{
Hardware.uart12.Write(0x7C) ;
Hardware.uart12.Write(0x09) ;
}
fonction LCDClear()
{
Hardware.uart12.Write(254) ;
Hardware.uart12.Write(0x01) ;
Hardware.uart12.Write(254) ;
Hardware.uart12.Write(128) ;
LCDBoxCursorOff() ;
}
fonction LCDMoveCursorRight()
{
Hardware.uart12.Write(254) ;
Hardware.uart12.Write(0x14) ;
}
fonction LCDMoveCursorLeft()
{
Hardware.uart12.Write(254) ;
Hardware.uart12.Write(0x10) ;
}
fonction LCDScrollRight()
{
Hardware.uart12.Write(254) ;
Hardware.uart12.Write(0x1C) ;
}
fonction LCDScrollLeft()
{
Hardware.uart12.Write(254) ;
Hardware.uart12.Write(0x18) ;
}
fonction LCDVisualDisplayOn()
{
Hardware.uart12.Write(254) ;
Hardware.uart12.Write(0x0C) ;
}
fonction LCDVisualDisplayOff()
{
Hardware.uart12.Write(254) ;
Hardware.uart12.Write(0x08) ;
}
fonction LCDUnderlineCursorOn()
{
Hardware.uart12.Write(254) ;
Hardware.uart12.Write(0x0E) ;
}
fonction LCDUnderlineCursorOff()
{
Hardware.uart12.Write(254) ;
Hardware.uart12.Write(0x0C) ;
}
fonction LCDBoxCursorOn()
{
Hardware.uart12.Write(254) ;
Hardware.uart12.Write(0x0D) ;
}
fonction LCDBoxCursorOff()
{
Hardware.uart12.Write(254) ;
Hardware.uart12.Write(0x0C) ;
}
Position est de base zéro
fonction LCDSetCursorPosition(Line,Position)
{
local 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 + Position + 128) ;
}
fonction LCDWriteMessage(LCDMessage)
{
Hardware.uart12.Write(LCDMessage) ;
}
Boucle d’exécution principal
fonction loop()
{
Activités - en boucle exécuté une fois chaque réveil
IMP.Wakeup (2.0, boucle) ;
}
Configurer des activités - seulement exécutée une seule fois
IMP.configure ("LCD exemples », [], []) ;
LCDClear() ;
LCDWriteMessage(Message) ;
Pause 2 secondes avant de commencer la boucle principale – ajuster au goût
IMP.Wakeup (2.0, boucle) ;