Burk av eldflugor (19 / 26 steg)
Steg 15: [Tillägg] kretsen Schematisk
Den följande schematiskt beskriver burk av eldflugor krets. I synnerhet, finns det några anteckningar om dess design:
VCC - den positiva Polen på din 3V strömförsörjning (dvs. batteri), för dem obekanta med elektroniska Schematisk namnkonventioner.
GND - jämväl, detta går till den negativa Polen på batteriet.
R1 - 22,0 K ohms motstånd - detta används som en pull-up resistor för att köra spänningen på Återställ pin hög under drift därmed förhindra chip från att återställa. Banan skulle faktiskt fungerar alldeles utmärkt om detta motstånd var helt enkelt ersättas med en tråd. Men det skulle vara en avgörande skillnad: du skulle inte kunna programmera chip när det var lödda till styrelsen. Anledningen till detta är eftersom chip programmeraren inte skulle kunna köra Återställ PIN-koden låg utan kortslutning till VCC samtidigt. Det är uteslutande för R1, att tillåta en chip programmerare att växla Återställ PIN-koden utan kortslutning till VCC. Som sådan, värdet på R1 är faktiskt viktigt, så länge det är "stora nog" (utan så stora att blockera Återställ PIN-koden från att se VCC alls). Alla värden mellan 5k - 100k är nog bara bra.
R2, R3 - 100 ohms motstånd - värdet av dessa beroende på egenskaperna hos modellen av lysdioder du råkar använda motstånd. Olika LED's, även av samma storlek och färg, har olika egenskaper, särskilt när det gäller hur mycket ström de drar och hur mycket ljus de producerar. Till exempel modellera av lysdioder som sår jag upp med är specad för att rita runt 20mA vid 2.0V och 10mA på 3V genom en 100 ohms motstånd.
Nu hade jag denna krets att göra igen, skulle jag förmodligen ha valt ett något större värde för R2, R3. Resonera för detta är att var jag se en firefly i naturen glöd så ljust som en av dessa LED på 10mA, jag förväntar mig att explodera i en våt gröna dimma en millisekund senare. Det är att säga, på 10mA dessa LED glöd alltför ljust vara realistiska eldflugor. Detta är en fråga som jag tog upp i programvaran genom att begränsa den maximala ljusstyrka som lysdioder är någonsin kört på. Om du använder samma del # LED's att jag använt, hittar du firefly programvaran redan vara inställda till en lämplig ljusstyrka. Annars, om du tänker ändra ljusstyrkan skalning i källkoden, kan du finna dig att gå tillbaka och mixtra med värdet av R2, R3 att hitta ett värde lämpligare att oavsett LED du slutar upp med. Lyckligtvis, detta bör inte ta mycket ansträngning som SMD motstånd är lätta att omarbeta.
PIN_A, B, C, D, E - detta är namnen som jag gav godtyckligt till stiften för att skilja dem åt och jag hänvisar till stiften av dessa namn i källkoden. Pins A och B jag hänvisar till som "master" pins. Om du inte tänker läsa källkoden, inte kommer sedan denna distinktion göra någon skillnad. Om du planerar att läsa källkoden, förhoppningsvis kommer kommentarerna jag har placerat i det tillräckligt att beskriva master stiften och hur lysdioder är drivande roll.
Oavsett, är här sammanfattningen av hur Lamporna drivs:
Innan en firefly "song" spelas, fattas slumpmässiga beslut om vad LED är att vara drivande. Detta beslut börjar med urval av "master" stift, antingen PIN_A eller PIN_B. Detta urval smalnar ner valet av vilka faktiska LED kan vara drivande. Om PIN_A väljs, måste vi välja mellan LED1, LED2 eller LED3. Jämväl för PIN_B och andra LED'S. När master PIN-koden är valt, sedan välja vi slumpmässigt specifika LED att köra från reducerade listan över kandidater.
Kan exempelvis säga att vi har valt PIN_A och LED2.
Om du vill aktivera LED2, vi kör PIN_A hög och kör PIN_D (PIN-koden som andra sidan av LED2 är ansluten till) låg. Om du vill inaktivera LED2 igen medan du spelar låten, lämnar vi PIN_A hög och enhet PIN_D hög också, alltså att ta bort eventuella skillnaden mellan de två sidorna av LED2 och stoppa strömmen genom det, att stänga av. Eftersom vi lämnar PIN_A driven höga hela tiden, vi kan också välja att spela någon av de andra två lysdioder, LED1 eller LED3, fullständigt självständigt. I praktiken skrivs koden att spela maximalt två låtar på samma gång (två firelies glödande samtidigt).