Stap 9: bedrading
Op dit punt kunt u de rest van de LED's in hun respectieve gaten, kunt u ze net als de anderen. Ik gebruikte om de kabellengte tot 76 LEDs die moeten individueel worden gecontroleerd, een bedrading actie onder de naam charlieplexing. Dit veroorloofd mij voor toepassing van de beperkte pinnen voor een Arduino Uno voor dit project ten koste van sommige meer gecompliceerde bedrading. Als ik de bedrading deed, zou ik overwegen in plaats daarvan als een iets elegantere oplossing met behulp van shift registreert. Omdat deze Instructables is steeds een beetje lang, 'm I gonna laten een aantal van de details uit deze sectie, maar ik sommige grote middelen aanbevelen zal. Ik postte ook een flink aantal foto's die hopelijk het toevoegen van enkele duidelijkheid ondanks de wirwar van draden.
Deze Instructables geeft goede algemene informatie over charlieplexing en hoe het werkt. Het loopt via de fundamentele regeling met behulp van kleinere circuits die gemakkelijker zijn te traceren wat er gaande is met de hand.
Zodra u vertrouwd met de basisprincipes van het charlieplexing bent, kunt u de Onyx Ibex Instructable om u te helpen door middel van de bedrading voor de klok van uw computer. Zijn Instructables biedt een ander voorbeeld van charlieplexing in een zeer vergelijkbare toepassing die aan dit project, echter, hij maakt gebruik van 24 uur in plaats van 12 en heeft een extra ring seconden.
Stap 1: uur
Ik zou beginnen met de uren, want het is hetzelfde patroon maar een beetje eenvoudiger dan de notulen. Gewoon proberen om voorzichtig te zijn met al uw verbindingen zodat u niet per ongeluk iets kort. U kunt altijd teruggaan en repareren maar het kan moeilijk zijn om op te sporen bugs zoals welk later. Ook worden ervoor dat u kiest u weerstand waarden op basis van de kleur van de LED u gebruikt aangezien verschillende kleuren iets andere eisen hebben.
Ik heb gepost een ruwweg getekende diagram waarin ik gebruikt om te helpen me mijn hoofd wikkelen rond charlieplexing de uren. Ik had ook enkele aantekeningen op daar die ik gebruikt om te debuggen van het circuit, terwijl ik was het testen van het. Zoals u zien kunt, zijn slechts 4 pinnen noodzakelijk voor het rijden van 12 LEDs, zodat u verbinding met de innerlijke leads voor de uur LEDs in vier sets van drie maken kunt. De rest van de bedrading volgt de charlieplexing-regeling.
Stap 2: notulen
Dit kan de instructies in de tweede Instructables hierboven. De LED's kunnen worden ingedeeld in negen sets van acht voor een totaal van 72 LEDs. Aangezien u slechts nodig hebt 60, zijn de notulen opgedeeld in zeven reeksen van acht en één groep van vier LED's. Verbinding maken met de innerlijke leads voor de minuut LEDs in deze opstelling en draad van de resterende leads die op basis van de charlieplexing-regeling.
Stap 3: Midden stuk
Dit zou eenvoudig zijn als alles wat je wilt is de LEDs om altijd op. Deze LED's kunnen alleen in parallel geschakeld worden en gebruik de digitale uitgang en GND pin van de Arduino. U kon ook verbinden hen individueel of met charlieplexing als u ze wilt gebruiken om aan te geven van de AM / PM of iets dergelijks. Ongeacht, zou dit hopelijk moeten opleveren.
Stap 4: testen
Dit kan erg vervelend worden, maar het is noodzakelijk. Ik gebruikte enkel de 5V en GND pin van de Arduino om handmatig stimuleren de pinnen die zal worden gecontroleerd door de Arduino aangezien voor charlieplexing één pin high (5 V) en een andere laag gaat (0 V = GND) en de rest moet worden in een hoge impedantie of high-z staat (in principe verbroken). Zorg enkel ervoor dat elke combinatie van ingangen de juiste uitvoer produceert. Ook worden nauwgezet als u een geleidend materiaal gebruikt vastmaken van de buizen dat een signaal kan worden kortgesloten over die draad en onjuiste bedrading. Als een LED weigert om in te schakelen, testen om ervoor te zorgen dat de LED een of andere manier was niet opgebrand. Ik stel alleen dat u wel methodische in aanpak en misschien zelfs nemen notities.
Ik maakte ook een Excel-werkblad dat kleurcodes welke pinnen moet hoog, laag en hoog-z voor de notulen. Dit zou nuttig voor debugging, evenals taalcode-instellingen in de volgende stap.