Stap 2: Circuit Design
Ik ben met behulp van CadSoft EAGLE 6.2 te trekken van het circuit schema en lay-out het PCB-design.
Beginnen, de eenvoudigste manier om dit te doen is met een microcontroller of iets dergelijks, we zullen zorgen over welke binnenkort.
De uitdaging ligt binnen het nummer 132. É㠩 n optie is het selecteren van een microcontroller met 132 pinnen, eenvoudig, recht? Maar de microcontroller zal gigantisch, en het ontwerp zal kijken slecht.
De oplossing is om de groep de LEDs dus ik kan hen multiplex. Mijn ontwerp regelt de LED in een 30 anoden door 5 kathoden (ik kan verwijzen naar dit als "rings") "matrix". Dit betekent dat ik moet 35 pinnen te rijden 132 LEDs.
(Klik op de afbeelding voor de LED-matrix hierboven, het is een animatie die je laat zien hoe mijn matrix LED werkt)
Ik moet ook 5 weerstanden (R1, R2, R3, R4, R5) te beperken van de huidige naar de LEDs, zodat ze binnen hun ratings functioneren en niet burn-out. Het is belangrijk om op te merken dat verschillende kleuren LEDs hebben verschillende voltage drops en hebben verschillende maximale veilige huidige specificaties, en ook de batterijspanning zal variëren in de tijd (meer dan de nominale spanning tijdens en onmiddellijk na het opladen). Ik heb gekozen een gemeenschappelijk 330 ohm weerstand voor deze job. Houdend het worst case scenario, oftewel 0 spanningsval over de LED, en een batterij op 4.2V, zegt de wet van Ohm dat de huidige 12.7mA zal worden. Dit is veilig voor vrijwel alle kleine LEDs en de GPIO van de microcontroller.
Ik moet ten minste 2 knoppen, wat betekent dat twee meer pinnen zijn vereist op de microcontroller. Het zou ideaal zijn als deze pinnen ondersteund enige vorm van onderbreken om te ontdekken dat de knop indrukt zelfs tijdens de slaapstand. Het is ook ideaal als deze pinnen featured interne pull-up weerstanden, zodat externe pull-up weerstanden niet vereist zijn.
Dus nu mijn minimale pin-eis 37 is. Ik deed wat zoeken voor een microcontroller die voldoen aan deze eis, en besloot op een ATmega645P (of iets vergelijkbaars met minder geheugen, geheugenvereisten voor dit project is eigenlijk heel klein).
Het beschikt over 54 gratis pinnen. Wordt geleverd in een TQFP-pakket, zodat ik kan het soldeer zonder hete lucht (kan ik QFN maar ik zou liever vermijden, vooral voor een project van de Instructables waar mensen de vaardigheden variëren). Het werkt tot 1.8V dus het is easiy om te gebruiken met een knoopcelbatterij geplaatst. Het heeft een hardware RTC die ik gebruiken kan voor het bijhouden van de tijd, zelfs in de slaapmodus staat. De picoPower versie staat dat er sommige waanzinnig lage stroomverbruik, die met het batterijleven helpt. Als een bonus ben ik een fan van de AVR-familie.
Dus weten de bedrijfsspanning van de microcontroller tussen 1.8V en 5.5V is, ik weet dat ik veilig kan macht het circuit met behulp van een oplaadbare lithium ion knoopcelbatterij geplaatst (nominale spanning is 3.7V, maximale 4.2V) zonder gebruik van een spanningsregelaar at all.
De opladen circuits is zeer eenvoudig te ontwerpen, de lader-chip is een MCP73831 en het gegevensblad heeft voorbeeld toepassing circuits, die ik heb aangepast. Tenzij anders vermeld door de vervaardiging, is het veilig om te veronderstellen dat de batterij kan worden opgeladen met een snelheid van 1C, waardoor 1 vermenigvuldigd met het is capaciteit (AH of mAH). Aangezien mijn batterij een capcity van 150mAH heeft, kan ik veilig laad de batterij op 150mA. Met behulp van de berekeningen van het gegevensblad, hierdoor heb ik een 15 kilo-ohm weerstand met het in rekening brengen huidige ingesteld.
De hardware RTC (timer 2 in asynchroon modus) binnen de microcontroller vereist een 32.768 KHz kristal om tijd bij te houden. Het kristal moet laden capcitors op elke pin, of anders het kristal zal tonen grote frequentie instabiliteit en de tijd zal niet nauwkeurig.
De microcontroller zal werken met behulp van haar interne RC oscillator (bespaart ruimte en geld door het vermijden van een andere crystal) 8 MHz en die frequentie wordt intern gedeeld door 8 om macht te behouden.
De microcontroller moet een ontkoppeling van de condensator voor elke pin VCC , dit is een algemene regel-van-duim die ik heb aangepast, de toepassing is goede ruis van de macht-bus uitfilteren.
De ATmega645P beschikt over interne pull-up weerstanden (ik heb eerder gezegd dat het leuk zijn zal om deze), zodat de knoppen geen externe pull-up weerstanden vereisen.
De AVR microcontroller moet de verbinding van een Internet-provider (in-circuit seriële programmering) dus ik kan het programmeren van de firmware, betekent dit verbinden de reset en SPI bus pinnen, plus een grond en macht verbinding bieden.
De detectie van de batterij is een eenvoudige voltage detector (de TC54, geconfigureerd voor 2.7V) dat een pin lage rijden zal wanneer de batterij onder 2.7V is.
Op het einde was er ruimte en gratis pinnen overblijft dus ik toegevoegd een zoemer en een vibratie motor. De motor wordt aangedreven door een MOSFET. De MOSFET heeft een pull-down-weerstand (R8) op de poort, zodat het niet gek zijn wanneer de microcontroller is niet onder controle. Er is een weerstand (R9) van de MOSFET poort naar de microcontroller pin behoeden voor een korte huidige piek tijdens het schakelen. De diode is er ter bescherming van het circuit van EMF terug van de motor (deze diode is bekend als een flyback diode).