Stap 1: Het maken van uw eigen tekens
Er is ook dit instructable over de LCD uitleg meer over de speciale tekens:
Probleem
In de huidige vloeibare kristallen bibliotheek (2014, Arduino 1.0.5)
lcd.write(0); //writing the first special character
geeft een fout:
CustomCharacter.ino: In functie 'void setup':
CustomCharacter:115: fout: oproep van overbelaste 'write(int)' is dubbelzinnig/Applications/Arduino 3.app/Contents/Resources/Java/libraries/LiquidCrystal/LiquidCrystal.h:82: Opmerking: kandidaten zijn: virtuele size_t LiquidCrystal::write(uint8_t)/Applications/Arduino 3.app/Contents/Resources/Java/hardware/arduino/cores/arduino/Print.h:49: Opmerking: size_t Print::write (const char *)
U kunt het aangepaste karakter maar niet laten zien?
Het blijkt dat u dit eerste speciale tekens zoals ook kunt afdrukken:
lcd.print( char(0) );
Vervolgens kunt u uw speciale eerste teken zonder een fout.
Inspectie van
Als je kijkt naar de speciale tekens met behulp van een lus:
for (int i = 0; i< 16; i++) lcd.print (char(i));
U ziet dat de speciale tekens zijn twee keer (in de eerste 16 geheugenslots)... Ik ben nog steeds af als er zijn manieren om meer uit te halen...
Ik wilde meer visuele effecten, overgangen en begonnen met het maken van willekeurige tekens op het vliegen als dit:
Willekeurige
Twee varianten:
- een willekeurige pixel op elk van de 8 lijnen (minder dichte),
- totaal willekeurige getallen op elke regel (dichtheid 50%)
for ( int q = 0; q < 8; q++) { if( g%2 == 0 ) t6[q] = random(8)<<2; //variation 1 else t6[q] = random(64);//variation 2 lcd.createChar(g%7 + 1, t6); g++; }
T6 [] is een 5 x 8-matrix, als deze, die expliciet verder wordt gemaakt in het script "door code".
byte t6[8] = {//all white
0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000 };
Er is een derde variatie verleidelijk: invoegen van grotere "blokken" binnen deze arrays om de willekeurige effect op een meer "groter" formaat te krijgen.
Grotere speciale tekens
Door het maken van een blok van 2 x 4 speciale tekens (deze geeft 16 x 20 pixels) zeggen, kunt u een groter 'drawing'. Je moet remmen naar beneden van de tekening om te passen in de verschillende enkele speciale tekens en dit kan worden vervelend.
Ik bereid dit "image" in Photoshop met behulp van een afbeelding van 16 x 20 pixels. Of u kunt recode dit tot 8 speciale tekens met de hand of gebruik een Processing Schets voor deze die een afbeelding scant en heeft als output van de bytes in de indeling van de matrices. U kunt deze code direct in de Arduino-code plakken.