The 8 x 8 pixel red display is een van de eerste projecten die ik heb gedaan na een lange tijd. Ik wilde iets bouwen voor de lol en ik wilde mijn C vaardigheden bijhouden.
Het schema was gemaakt in CadSoft Eagle, de layout was ge-laser-print op overhead sheet en het printje geetst in de keuken. Tegenwoordig gebruik ik MakePCB of BatchPCB van Sparkfun.
The schema is heel simpel : een 74HCT595 als high side driver, en een 74HCT595 met een ULN2803 als low side driver.
Ik heb de print simpel gehouden zdat ik het zelf kon etsen.
Het opgebouwde board :
De software bitbang-t een paar IO poorten om de twee schuifregisters te bedienen, het varieeren van de helderheid wordt gedaan door de duty cycle van de LED’s te varieeren. Dit voorbeeld heeft 3 bits helderheid (8 verschillende helderheden). We kunnen deze “8 pixels x 8 pixels x 3 bit helderheid” ook zien als 3 bitmaps met 8 pixels x 8 pixels. De bitmap met de hoogste helderheid (het MSB van de helderheden) wordt 2 x zo lang getoond als het tweede hoogste bit. Het tweede hoogste bit weer twee keer zo lang als het LSB.
Voorbeeld 2 :
Character bitmaps maken met de hand is nogal bewerkelijk. Als je toegang hebt tot een of andere unix achtige dan kan je figlet en het 5×7 font om de character bitmaps te genereren.
Je hebt dan een monospaced font en die zijn vaak niet zo mooi als de hand gemaakte.
Met figlet maak je de bitmap voor het character “0” zo :
figlet -f 5x7 0 | tr ' #' '01' | sed "s/\([01]\{6\}\)/B8(\100),/"
Als output heb je dan :
B8(01000000),
B8(10100000),
B8(10100000),
B8(10100000),
B8(10100000),
B8(01000000),
B8(00000000),
Ik heb Tom Torfs binconst macro gebruikt om de bitmaps een beetje handzaam te maken.
Example 3 :