Inhoudsopgave:
- Stap 1: De naamflitser
- Stap 2: Het portemonneelampje
- Stap 3: De kleurenscroller
- Stap 4: Programmeren
Video: 3 eenvoudige ATTiny-vakantiegeschenken - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:20
Elk jaar rolt de vakantieperiode rond en ik kom vast te zitten over wat ik voor mijn vrienden en familie moet geven. Mensen zeggen altijd dat het beter is om het cadeau zelf te maken dan het in een winkel te kopen, dus dit jaar heb ik dat gedaan. De eerste geeft een naam of basisafbeelding weer wanneer deze door de lucht wordt gezwaaid, de tweede vervaagt soepel tussen twee witte led's (hij heeft ook een veiligheidsspeld om hem aan kleding of een tas te bevestigen), en de derde is een soort sfeerlicht, scrollend naadloos tussen kleuren. Ze kosten allemaal minder dan $ 15 en zijn eenvoudig in minder dan een uur te monteren. U kunt deze instructies en onderdelen ook cadeau doen aan iemand die geïnteresseerd is in het leren van elektronica.
Opmerking: Er wordt uitgegaan van een basisniveau van solderen. In tegenstelling tot mijn vorige instructable zal ik echter verdoezelen hoe een AVR te programmeren. Ik hoop echt dat dit mensen helpt die proberen aan de slag te gaan in de elektronica. Ik weet nog dat ik daar was en zal graag al uw vragen beantwoorden. Onthoud dat domme vragen niet bestaan! Ik heb het aan u opengelaten om te bepalen hoe u uw printplaat gaat indelen in de hoop dat u een nieuwe manier zult bedenken om de eenvoudige circuits weer te geven die ik heb getekend. Post alsjeblieft foto's als je klaar bent, ik kan niet wachten om te zien wat je bedenkt! Onderdelen voor alle projecten N = aantal projecten x N ATTiny45 (www.digikey.com) x N 8-pins DIP-aansluiting (RadioShack) x 1 Large Perf Board (ik heb de mijne bij RadioShack) x N 3v knoopcelbatterij en houder (RadioShack) x1 Programmer (ik gebruik deze en de meegeleverde makefile zal worden geconfigureerd om deze te gebruiken) x2 N Weerstanden, een 10 ohm en een 10k ohm (RadioShack) Hier is een foto van de drie voltooide projecten:
Stap 1: De naamflitser
Overige onderdelen x5 DIFFUSED 3 mm LED's (RadioShack) Dit project maakt gebruik van doorzettingsvermogen om een afbeelding of tekst weer te geven wanneer deze snel wordt verplaatst. Het werkt beter als het donker is. Met de AVR schakelen we sneller tussen LED's dan het oog kan zien, we kunnen een beeld in de lucht creëren met heel weinig componenten. De Code: (Download het.zip-bestand onderaan de pagina voor de code, makefile, enz. (Die code heeft niet de uitgebreide opmerkingen die deze code wel heeft, maar als deze code niet werkt, probeer dan die in de zip-bestand)) #define F_CPU 1000000 #include #include void dispClear() { PORTB = ~0b00000000; } int main() { DDRB = 0xFF; // Voor degenen onder u die C nog nooit hebben gelezen voordat de dubbele schuine streep een opmerking aangeeft. Dit stelt de pinnen van de avr in als een output char x = 10; //x wordt gebruikt om de vertragingslengte in te stellen. Het verhogen van de waarde geeft een langzamere omschakeling tussen pixels, afnemend, een lagere while(1) //While(condition is true); {Doe dit} (Waar in C is 1) { PORTB = ~0b00010001; // De naam van mijn vriend is Zoe, dus ik heb de karakters op ruitjespapier getekend en ze vervolgens in PORTB ingevoerd. De eerste drie nullen doen er niet toe omdat er maar vijf led's zijn aangesloten. Een één op een van de resterende vijf velden geeft aan dat de LED aan is, een nul, uit. _delay_ms(x); // vertraging in milliseconden PORTB = ~ 0b00010011; _delay_ms(x); PORTB = ~0b00010101; _delay_ms(x); PORTB = ~0b00011001; _delay_ms(x); PORTB = ~0b00010001; _delay_ms(x); dispClear(); //Open spatie tussen karakters _delay_ms (x); PORTB = ~0b00001110; _delay_ms(x); PORTB = ~0b00010001; _delay_ms(x*3); PORTB = ~0b00001110; _delay_ms(x); dispClear(); _delay_ms(x); PORTB = ~0b00011111; _delay_ms(x); PORTB = ~0b00010101; _delay_ms(x); PORTB = ~0b00010001; _delay_ms(x); dispClear(); _delay_ms(x*5); //Het woord is gedaan, dus voor de duidelijkheid. Ik heb een grotere spatie tussen de woorden } } Volg nu de instructies op pagina 4 om deze code te compileren en naar je AVR te sturen.
Stap 2: Het portemonneelampje
Overige onderdelen x2 LED's NIET DIFFUSED (RadioShack) Dit project vervaagt soepel tussen twee LED's. Mijn moeder wilde dat er iets in haar tas zou komen om haar 's nachts te laten zien. Ik had het gevoel dat een knipperend fietslicht te veel aandacht zou trekken, dus maakte ik dit. Het maakt gebruik van PWM (Pulse Width Modulation) om het effect van dimmen en oplichten te geven. Wat er feitelijk gebeurt, is dat de led met verschillende tussenpozen sneller knippert dan het oog kan zien om een verandering te simuleren. Je kunt dit duidelijker zien als je het in je gezicht zwaait zoals je zou doen met de Name Flasher. De code is onderaan deze pagina te downloaden. Zie pagina 4 voor informatie over het compileren naar uw AVR. In plaats van de code hier te becommentariëren, zal ik het concept kort uitleggen. PWM wordt gegenereerd door een timer. Elke klokcyclus telt de timer één op. Wanneer het een bepaalde waarde bereikt (in dit geval OCR1B), verandert het de status van een pin (in dit geval OC1B). Om de LED's te laten "uitschakelen" heb ik de andere aangesloten op [OPPOSITE]OC1B (dat is wat de balk aan de bovenkant betekent). Vervolgens gebruiken we x om de tijdsduur dat de LED's branden te verhogen en te verlagen.
Stap 3: De kleurenscroller
Overige Onderdelenx1 RGB LED (diffuus is beter) (RadioShack) Dit is voor mij een klassieker. Ik ben altijd al gefascineerd geweest door dit soort lampen en vind ze erg rustgevend, dus ik wilde er natuurlijk een maken. Ook hun zichtbaarheid in de samenleving geeft hen een echte WOW-factor. "Heb je dat GEMAAKT?!" De code is bijna hetzelfde en naar mijn mening gemakkelijker te lezen. U kunt de onderaan downloaden. Deze keer bieden we een PWM-pin voor elke aardingspin op de RGB-LED. Op deze manier vermalen we door de chip heen. Volt kan worden gemeten als het verschil tussen twee punten. 3v-0v=3v 5v-2v=3v ***3v-3v=0v*** Dit laatste is wat we doen als we de chip doorgronden. Als er aan beide kanten drie volt staat, is er bijvoorbeeld niet genoeg volt om een LED aan te sturen. Dus om te vervagen tussen kleuren kozen we een kleur en een andere kleur. Stel een gelijk aan x en de andere gelijk aan 255-x of de INVERSE van x. Zoals we deden in het vorige project. Ga nu naar stap 4 om te programmeren.
Stap 4: Programmeren
Download en installeer eerst Emacs, avr-gcc en Avrdude en eventuele afhankelijkheden. Op Arch linux deed ik dit met: sudo pacman -Sy emacs avrdude
Nu is het tijd om je programmer aan te sluiten op je avr. Sluit de pinnen op de 6-pins ISP-programmer (afbeelding hieronder) aan op de bijbehorende pinnen op uw AVR (Datasheet, pagina 2) (ik deed dit op een breadboard). Sluit nu de programmer aan op uw computer en raak ZEER SNEL de bovenkant van de AVR aan. Als het heet is, VERWIJDER DE PROGRAMMER DIRECT VAN UW COMPUTER. Controleer uw verbindingen en probeer het opnieuw (Voeding en Gnd omgekeerd?). Als het niet heet is, open dan emacs en druk op Ctl-x Ctl-f om het.c-bestand te vinden. Open het en druk vervolgens op Meta(Meestal Alt)-x en typ compileren. Druk tweemaal op enter en als je geluk hebt, zou je AVR nu je code moeten uitvoeren! Bedankt voor het lezen! Ik hoop dat je het leuk vond en er iets van geleerd hebt. Aarzel niet om vragen te stellen en vergeet niet om foto's te plaatsen van wat je bedenkt. Fijne feestdagen en vergeet niet te stemmen!
Aanbevolen:
Maak een EENVOUDIGE Infinity Mirror Cube - GEEN 3D-printen en GEEN programmering: 15 stappen (met afbeeldingen)
Maak een EENVOUDIGE Infinity Mirror Cube | GEEN 3D-printen en GEEN programmering: iedereen houdt van een goede infinity-kubus, maar ze zien eruit alsof ze moeilijk te maken zijn. Mijn doel voor deze Instructable is om je stap voor stap te laten zien hoe je er een kunt maken. Niet alleen dat, maar met de instructies die ik je geef, kun je er een maken o
Hoe maak je een eenvoudige Nintendo LABO schietoefening: 13 stappen
Een eenvoudige Nintendo LABO-schietoefening maken: Mijn zus en ik hebben onlangs een Nintendo Switch gekocht. Dus natuurlijk hebben we er wat spelletjes bij. En een daarvan was de Nintendo LABO Variety Kit. Uiteindelijk stuitte ik op de Toy-Con Garage. Ik heb wat dingen uitgeprobeerd, en toen
Een eenvoudige handleiding voor CANBUS: 8 stappen
Een eenvoudige tutorial voor CANBUS: ik bestudeer CAN al drie weken en heb nu een aantal toepassingen voltooid om mijn leerresultaten te valideren. In deze tutorial leer je hoe je Arduino kunt gebruiken om CANBUS-communicatie te implementeren. Als je suggesties hebt, laat dan een
(Zeer eenvoudige) ziektemodellering (met behulp van Scratch): 5 stappen
(Zeer eenvoudige) ziektemodellering (met behulp van Scratch): vandaag simuleren we een uitbraak van een ziekte, waarbij het een ziekte is, niet noodzakelijkerwijs COVID-19. Deze simulatie is geïnspireerd op een video van 3blue1brown, waarnaar ik zal linken. Aangezien dit slepen en neerzetten is, kunnen we niet zoveel doen als met JS of Pyt
Maak een ruimtestation in TinkerCad Codeblock--Eenvoudige zelfstudie: 7 stappen (met afbeeldingen)
Maak een ruimtestation in TinkerCad Codeblock||Eenvoudige zelfstudie: hoewel de gedachte om in de ruimte te leven misschien sciencefiction lijkt, terwijl je dit leest, cirkelt het internationale ruimtestation rond de aarde met een snelheid van vijf mijl per seconde, en draait het eenmaal om de aarde elke 90 minuten. In dit project leer je