Stap 8: Leuk ontwerp op display
Knight rider
Een van de eerste ideeën was om toe te voegen een "knight rider"-effect, spelen met de komma:
(De komma van de knightrider wordt gedaan met behulp van een tweede array, met één komma teken en de rest "leeg". Met een tweede timer wordt deze array ingevoegd op hetzelfde moment als de eerste matrix van tijd cijfers. Dus in de knight rider script vindt u twee timers.)
U kunt de grappige tekst of overgangen toevoegen.
Het tweede idee was het toevoegen van woorden - komen vanuit de zijden of vanuit de boven- en onderkant.
De codage van het segment display:
Zonder de komma heb je 124 mogelijkheden. 2 ^ 7
/* -*- 0000 0001 *-* 0010 0000 0000 0010 -*- 0100 0000 *-* 0001 0000 0000 0100 -*- 0000 1000 comma: 1000 0000 */
Met de nummerweergave van 7 cijfers niet kunt u het hele alfabet, maar kun je vrijwel alle letters. Het is onhandig maar grappig.
Hier heb je de code, misschien kunt u nog meer creatieve oplossingen te vinden en het alfabet compleet! (Ik stel om te gebruiken voor een m drie horizontale lijnen: de MI in Japanse ミ en voor de N twee horizontale lijnen: de NI in Japans: ニ.
Maar ik ben bang dat niet iedereen in Europa herkent dit, bijvoorbeeld BEAミ als mijn naam :-)
Een heleboel woorden zijn reeds mogelijk zoals: Hallo huis PLUS CIAO STAR...
VREDE is ook mogelijk (hoera!)
Zolang we niet het hebben van een oplossing van één cijfer voor V, hebben wij een groot probleem: liefde... is niet mogelijk!
(Maar we als Nederlanders hebben er een voordeel: liefde = LIEFDE in het Nederlands, en dit laatste woord is inderdaad mogelijk :-)
Interessant, is er zelfs een wikipedia-entree hierover:
http://en.wikipedia.org/wiki/Seven-segment_display...
Of effecten zoals grappige patronen (onder cirkels, bovenste cirkels, een gestippelde lijn rond het scherm.
Hier is mijn codering tabel, misschien kunt u nog steeds verbeteren!
//numbers if ( num == 1 ) SPI.transfer(255 - B00000110);//1 if ( num == 2 ) SPI.transfer(255 - B01011011);//2 if ( num == 3 ) SPI.transfer(255 - B01001111);//3 if ( num == 4 ) SPI.transfer(255 - B01100110);//4 if ( num == 5 ) SPI.transfer(255 - B01101101);//5 if ( num == 6 ) SPI.transfer(255 - B01111101);//6 if ( num == 7 ) SPI.transfer(255 - B00000111);//7 if ( num == 8 ) SPI.transfer(255 - B01111111);//8 if ( num == 9 ) SPI.transfer(255 - B01101111);//9 if ( num == 0 ) SPI.transfer(255 - B00111111);//0 //comma if ( num == 10 ) SPI.transfer(255 -B10000000);//comma //some letters if ( num == 11 ) newNum = B01110111;//A if ( num == 12 ) newNum = B01111111;//B like 8 if ( num == 13 ) newNum = B00111001;//C if ( num == 14 ) newNum = B01011110;//D small like 6 without upper stroke if ( num == 15 ) newNum = B01111001;//E if ( num == 16 ) newNum = B01110001;//F if ( num == 17 ) newNum = B01101111;//small G like 9 if ( num == 18 ) newNum = B01110110;//H if ( num == 19 ) newNum = B00000110;//I like 1 if ( num == 20 ) newNum = B00011110;//J // K? if ( num == 21 ) newNum = B00111000;//L //M -- the m as two digits does not really convince me //N if ( num == 22 ) newNum = B00111111;//O like 0 if ( num == 23 ) newNum = B01110011;//P if ( num == 24 ) newNum = B10111111;//Q like 0. //R if ( num == 25 ) newNum = B01101101;//S like 5 if ( num == 26 ) newNum = B01111000;//t small if ( num == 27 ) newNum = B00111110;//U //V //W //X //Y ...something like a 9 is possible, mirrored? It does not look too good //Z //special signs if ( num == 40 ) newNum = B01011100;//under circle if ( num == 41 ) newNum = B01100011;//upper circle if ( num == 42 ) newNum = B00000000;//empty if ( num == 43 ) newNum = B10001000;//for a .-.-.-.-.-.-.-. line //square sequence if ( num == 44 ) newNum = B00001100; // under + side under right if ( num == 45 ) newNum = B01000010; //middle side upper right if ( num == 46 ) newNum = B00000011; if ( num == 47 ) newNum = B01000100;