PCB kerstboom (3 / 10 stap)

Stap 3: Prototype op breadboard + testprogramma


Natuurlijk wilde ik weten of dit allemaal haalbaar is, is dus ik moest een paar dingen te testen. Ten eerste, het programmeren van de ATmega zonder de klok; en ten tweede, het testen van de 3 x 8 LED multiplexing.

Om te beginnen, controleerde ik de gids op de Arduino website op hoe te programmeren een standalone ATmega die is vrij uitgebreid en werken allermeest naar de tijd. Er zijn 2 belangrijke stappen: met behulp van een Arduino branden als een programmeur de bootloader, en vervolgens uploaden van het programma. Er is een vangst, echter, dat wil zeggen als u een ATmega-chip die werd al geconfigureerd voor gebruik van een externe klok (b.v. een Arduino onttrokken), dan de enige manier om deze chip program is bedoeld als een externe kloksignaal op XTAL1. Zelfs als u configureren een chip wilt voor het gebruik van de interne klok later, is dit een noodzakelijke stap, voordat u iets kunt doen. Dus er twee opties zijn: een kristal verbinden met de ATmega; of hebt u niet van een kristal, u kunt ook het ArduinoISP2 programma van Adafruit die eigenlijk een kloksignaal op pin 9 zal genereren. Op het einde ik deze optie hebt gekozen, omdat ik niet een vrije kristal die ik kon gebruiken. Na het configureren van een chip voor het gebruik van de interne klok, het kan zo geprogrammeerd worden zonder een externe kristal, omdat ook de juiste zekeringen branden de bootloader ingesteld.

Nadat de bootloading gewerkt, bouwde ik een klein prototype op breadboard met slechts 12 LEDs, gewoon om te zien hoe de multiplexing zou werken. Eerst probeerde ik het met de digitalWrite() functie, maar het bleek te traag, dus ik moest veranderen en de registers van de pin niet rechtstreeks instellen. Dit is een beetje omslachtig, maar gelukkig is zeer goed gedocumenteerd op de website van Arduino.

Ten eerste moeten enkele globale variabelen worden gedefinieerd:

 const int NR_ANODE = 3; const int NR_CATHODE = 4; // pin choice only depends on how the LEDs are wired up to the controller const int anodePins[NR_ANODE] = { 3, 4, 5 }; // Arduino pins 3, 4, 5 const int cathodePins[NR_CATHODE] = { 7, 6, 1, 0 }; // Arduino pins 7, 6, 1, 0 // pins 3 4 5 const int anodeBits = B00111000; // pins 6 7 0 1 const int cathodeBits = B11000011; unsigned long int loopCounter = 0; 

En een matrix voor het opslaan van de helderheidswaarden van LED:

 int val[NR_ANODE][NR_CATHODE] = { { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 } }; 

Klik vervolgens in de hoofdlus, de loopCounter aan elke iteratie is verhoogd, en de rest door 50 is ten opzichte van elk element van de matrix van de waarde , die bepalend zullen zijn als de LED in- of uitschakelen voor dat iteratie is. Ik koos voor 50, omdat het nog werkte zonder enige flikkeren en gaf al een fijn genoeg resolutie voor wat ik nodig had.

 rem = loopCounter % 50; i = loopCounter % NR_ANODE; // at every iteration use a different anode // turn cathode pins high, this will turn off all LEDs PORTD = PORTD | cathodeBits; // turn anode pins low PORTD = PORTD & ~anodeBits; // turn anode_pins[i] high - select row i PORTD = PORTD | (1 << (3+i)); // turn cathode pins low if rem >= corresponding val PORTD = PORTD & ~(( (rem < val[i][0]) << cathodePins[0]) | ( (rem < val[i][1]) << cathodePins[1]) | ( (rem < val[i][2]) << cathodePins[2]) | ( (rem < val[i][3]) << cathodePins[3]) ); loopCounter++; 

Op dit punt probeerde ik het programma door het schrijven van vaste waarden in de matrix van de val te zien of het werkt zonder ieder uitvaardiging, en toen ik blij mee ben ik het PCB-design begonnen, omdat ik wist productie enige tijd zou duren en ik kon het afmaken van de rest van het programma vervolgens.

Gerelateerde Artikelen

HackerBoxes 0001: Robot slimme auto, NodeMCU, 3D LED kerstboom

HackerBoxes 0001: Robot slimme auto, NodeMCU, 3D LED kerstboom

Dit instructable deelt de basisbeginselen van het werken met HackerBoxes #0001. HackerBoxes is de maandelijkse abonnement vak dienst voor electronica hobbyisten, makers en hackers. Als u wil graag een doos als dit recht naar uw mailbox elke maand, ku
Roterende kerstboom licht met behulp van LED's en speelgoed Motor maken

Roterende kerstboom licht met behulp van LED's en speelgoed Motor maken

DIY Awsome kerstboom met mini leidde lichten en speelgoed gelijkstroommotor zijn gemakkelijk DIY en goede cadeau-idee voor Kerstmis, kunt u elke kleur van uw keuze door te kiezen voor verschillende kleuren led verlichting, om vereist het enkel 3v mun
LED kerstboom 2015 geanimeerde

LED kerstboom 2015 geanimeerde

Deze Animated Christmas Tree indoor Raamdisplay gebruikt een combinatie van adresseerbare pixel van vijf WS2812 LED stokken voor de Star. Zestien afzonderlijke pixel LEDs aaneengeregen samen voor de kerstboom verlichting en een groene LED-strip in de
Arduino kerstboom

Arduino kerstboom

Deze prachtige kerstboom wordt automatisch brandt als het milieu licht laag onder een gedefinieerde waarde gaat. Het is gebaseerd op een Pro Mini Arduino board en een RGB LED strip. Het maakt gebruik van een BH1750FVY sensor voor het meten van het li
Taart Tin kerstboom met GE kleur effecten ledverlichting

Taart Tin kerstboom met GE kleur effecten ledverlichting

Een eeuwenoude DIY vakantie decoratie project voor uw voortuin is de pasteipan kerstboom. Dit instructable wordt beschreven hoe dit project bijwerken met de GE kleureffecten kleur veranderende LED lampen. De bollen GE kleureffecten kijken ontzagwekke
LED ANIMATED kerstboom met kaart muziek MODULE-sapin de Noël musical

LED ANIMATED kerstboom met kaart muziek MODULE-sapin de Noël musical

In de jaren tachtig ELEKTOR gepubliceerd in het tijdschrift van een kleine twinkling Christmas tree, nam ik als uitgangspunt dit idee te voeren dat die zullen volgen...Deze kleine kerstboom is 9 cm hoog en geen programmeertaal vereist, de animatie va
Mini geanimeerde LED kerstboom 32 x 32mm

Mini geanimeerde LED kerstboom 32 x 32mm

De mini geanimeerde LED kerstboom is kleine 32 x 32 PCB met 8 LED-flitser die u zal doen in de volgorde die u wilt, u de Arduino software en Core13 bibliotheek voor het programmeren van de ATtiny13 met lce software, dan is het gemakkelijk een mini we
Tweeting kerstboom

Tweeting kerstboom

het is Kerstmis seizoen weer en dat betekent dat zijn tijd om samen met al uw vrienden en familie te delen in de vreugde van de vakantie geest. In verleden tijden, met alle voedsel, drank en vrolijkheid, is makkelijk te krijgen te lui om opstaan van
LED kerstboom ornament met scrollen gebouwd in video game!

LED kerstboom ornament met scrollen gebouwd in video game!

Hallo allemaal en Welkom bij dit instructable kerstboom decoratie.Dit sieraad is ontworpen om op te hangen op uw kerstboom net als elke andere decoratie, maar het is net even dat beetje meer oog springende! Wanneer u daarop zal het scrollen een "MERR
3,5-inch diskette PCB Kerstster

3,5-inch diskette PCB Kerstster

Hallo, dit is mijn eerste tutorial over het recyclen van de PCB.Ik ben van de Bulgaarse Scout organisatie en wij maken een kerst bazaar. Toen kwam ik met dit idee.Dit is mijn idee hoe om te zetten uw oude en unusefull (misschien niet werkt) 3.5 diske
USB-powered LED kerstboom met geluid

USB-powered LED kerstboom met geluid

Hier is het eindproduct.De kerstboom is gemaakt met een arduino ATMEGA-168 chip.Ik gebruikte het als een verlate kerstcadeau voor iemand in een cadeau-uitwisseling.Eerste instructable dus neem het gemakkelijk op mij doe ik iets blaringly mis.Attatche
Kerstboom LED's

Kerstboom LED's

Dit is mijn eerste DIY en Instructables project. Het is een eenvoudige kerstboom gemaakt van Leds. Ik zal proberen uit te leggen van de beste die ik kan. Hebt u Aarzel vragen niet om vragen.Stap 1: apparatuur PCB helpende handenDraadknipperNeedlenose
PCB Circuit muur

PCB Circuit muur

Heb je veel oude elektronische spullen en weet niet wat te doen? De muur van een Circuit te maken.Dit is mijn eerste instructable, hoop u bevalt.Ik had een opslagruimte bijna vol met niet werkende oude computers, faxapparaten, monitoren, TV, fotokopi
PCB UV blootstelling eenheid

PCB UV blootstelling eenheid

Een UV-blootstelling-vak is een uiterst nuttig stuk te maken van de PCB's.Ik heb gezocht en vond dat ze te groot en te duur voor mijn gebruik zijn. Bovendien, vereisen alle apparaten een externe voeding sorce.Daarop besloten heb ik te bouwen die bete