Stap 3: Schema's & Software
De schema's voor deze projecten is vrij eenvoudig.
Er is de microcontroller, het cijfer "stuurprogramma" en het display en sommige weerstanden te beperken van de huidige tussen de microcontroller en het scherm.
Er zijn 14 anoden (positief) op het display, één voor elk segment op een cijfer, en 8 kathoden (negatief), één voor elk cijfer.
De anoden zijn verbonden met 14 van de beschikbare poorten op de microcontroller via 330 ohm weerstanden te verminderen van de huidige tot een niveau dat de weergave wordt niet aangetast door. U/R = I, thats spanning gedeeld door de weerstand geeft huidige. De voeding is 6 volt en het scherm zelf het laten vallen die door 1,8 volt dus de weerstand van 330 ohm 4.2 volt links te verzorgen. 4.8/330=0.012 (12 mA).
Het gegevensblad voor de displays zegt 2 mA per segment, en ik kies om te interpreteren die als gemiddelde cijfer. Aangezien slechts één cijfer op hetzelfde moment brandt zal elk cijfer slechts voor 1/8 van de totale tijd worden verlicht. Dus om 2 mA van gemiddelde huidige kan worden aangedreven door 16 mA (2 mA 8 keer).
Zelfs als dit is niet volgens specs er zijn zowel veiligheidsmarges en de weergave wordt alleen gebruikt met tussenpozen en het als dient breek - die echt schelen? ;-)
De 74HTC138 die de anoden drijft wordt echt misbruikt. Als alle segmenten op een cijfer brandt al het 14 segment wilt dwingen 12 mA naar beneden door de arme ' 138. Dit zou een totale stroom van 168 mA namelijk veel veel veel verder dan wat het aankan om te zinken.
Afhankelijk van het exacte model van de chip van de huidige opgegeven gootsteen is meer als 5-10 mA. Als ik korte omloop van de output en meten het ongeveer 40 kan zinken mA met een verhoogde spanningsniveau.
Nu, alle van de segmenten niet zal worden verlicht op hetzelfde moment, maar de 40 mA limiet heel vaak zal worden bereikt. Gelukkig genoeg de helderheid van het beeldscherm is vrij constant of het wordt 4 mA of 15 mA, dus het is echt niet zo veel uit.
Het werkt, maar het is een echt slordig en onprofessioneel ontwerp. Het kan veel beter, maar aangezien ik had geen betere onderdelen bij de hand gebruikte ik gewoon whats werkte.
Software
De software is ook heel simpel.
Wanneer de microcontroller begint is leest een zaad voor de random number generator van de niet-vluchtig eeprom van zijn geheugen, een ander willekeurig getal genereren en schrijf dan terug het nieuwe zaad aan de eeprom. Zonder het bijhouden van het zaad zou dat random getal-generator genereren voor elke start hetzelfde getal. Nauwelijks geen willekeur in die ;-)
Vervolgens neemt de gegenereerde willekeurig getal en gebruikt die voor een van meerdere berichten te selecteren en die voorbij het scherm schuift.
Wanneer het hele bericht wordt weergegeven sluit de microcontroller zichzelf naar een energiebesparende modus om te redden van de batterijen van het aftappen te snel als het deksel per ongeluk wordt opengelaten.