INHOUDSOPGAWE:

3 maklike ATTiny vakansie geskenke: 4 stappe
3 maklike ATTiny vakansie geskenke: 4 stappe

Video: 3 maklike ATTiny vakansie geskenke: 4 stappe

Video: 3 maklike ATTiny vakansie geskenke: 4 stappe
Video: Leer 3 Maklike kitaar strumming patterns vir beginners | Kitaar Klas | Kitaar lesse vir Beginners 2024, November
Anonim
3 maklike ATTiny vakansie geskenke
3 maklike ATTiny vakansie geskenke

Elke jaar rol die vakansietyd rond en ek sit vas oor wat ek vir my vriende en familie moet gee. Mense sê altyd dat dit beter is om die geskenk self te maak as om dit by 'n winkel te koop, so hierdie jaar het ek dit gedoen. Die eerste vertoon 'n naam of basiese beeld as dit deur die lug waai, die tweede vervaag glad tussen twee wit LED's (dit het ook 'n veiligheidspennetjie om dit aan klere of 'n beursie vas te maak), en die derde is 'n bui van verskillende soorte, blaai naatloos tussen kleure. Almal kos minder as $ 15 en is maklik om in minder as 'n uur te monteer. U kan ook hierdie instruksies sowel as onderdele as geskenk gee aan iemand wat belangstel om elektronika te leer.

Let wel: 'n Basiese vlak van soldeer word aanvaar. In teenstelling met my vorige instruksies, sal ek egter kyk hoe ek 'n AVR kan programmeer. Ek hoop regtig dat dit mense help wat met elektronika probeer begin. Ek onthou toe ek daar was en sal graag enige vrae wat u mag hê, beantwoord. Onthou dat daar geen dom vrae is nie! Ek het dit vir u oopgelaat om vas te stel hoe u u bord sal uitlê in die hoop dat u 'n nuwe manier sal vind om die eenvoudige stroombane wat ek getrek het, te vertoon. Plaas asseblief foto's sodra u klaar is, ek kan nie wag om te sien wat u doen nie! Onderdele vir al die projekte N = aantal projekte x N ATTiny45 (www.digikey.com) x N 8-pins DIP-aansluiting (RadioShack) x 1 Large Perf Board (ek het my by RadioShack gekry) x N 3v muntbattery en houer (RadioShack) x1 programmeerder (ek gebruik dit en die meegeleverde vervaardigingslêer sal gekonfigureer word om hierdie een te gebruik) x2 N Weerstands, een 10 ohm en een 10k ohm (RadioShack) Hier is 'n foto van die drie voltooide projekte:

Stap 1: Die naamflitser

Die naam Flasher
Die naam Flasher
Die naam Flasher
Die naam Flasher
Die naam Flasher
Die naam Flasher

Ander onderdele x5 DIFFUSED 3mm LED's (RadioShack) Hierdie projek gebruik volharding van visie om 'n beeld of teks te vertoon as dit vinnig beweeg word. Dit werk beter as dit donker is. Met die AVR skakel ons vinniger tussen LED's, dan kan die oog sien dat ons 'n prentjie in die lug kan skep met baie min komponente. Die kode: (Laai die.zip -lêer onderaan die bladsy af vir die kode, makebestand, ens.) Die kode bevat nie die uitgebreide opmerkings wat hierdie kode lewer nie, maar as hierdie kode nie werk nie, probeer die een in die zip -lêer)) #define F_CPU 1000000 #include #include void dispClear () {PORTB = ~ 0b00000000; } int main () {DDRB = 0xFF; // Vir die van julle wat nog nooit C gelees het nie, dui die dubbele skuinsstreep 'n opmerking aan. Dit stel die penne van die avr as 'n uitset char x = 10; // x word gebruik om die vertragingstyd in te stel. Deur die waarde te verhoog, word 'n stadiger omskakeling tussen pixels, 'n afname, 'n laer terwyl (1) // Terwyl (voorwaarde waar is); {Do This} (True in C is 1) {PORTB = ~ 0b00010001; // My vriend se naam is Zoe, so ek het die karakters op grafiekpapier getrek en dit dan in PORTB toegereken. Die eerste drie nulle maak nie saak nie, want daar is slegs vyf LED's verbind. Een in een van die oorblywende vyf spasies dui aan dat die LED aan is, 'n nul, af. _vertraging_ms (x); // vertraging in milisekondes PORTB = ~ 0b00010011; _vertraging_ms (x); PORTB = ~ 0b00010101; _vertraging_ms (x); PORTB = ~ 0b00011001; _vertraging_ms (x); PORTB = ~ 0b00010001; _vertraging_ms (x); dispClear (); // Oop spasie tussen karakters _delay_ms (x); PORTB = ~ 0b00001110; _vertraging_ms (x); PORTB = ~ 0b00010001; _vertraging_ms (x*3); PORTB = ~ 0b00001110; _vertraging_ms (x); dispClear (); _vertraging_ms (x); PORTB = ~ 0b00011111; _vertraging_ms (x); PORTB = ~ 0b00010101; _vertraging_ms (x); PORTB = ~ 0b00010001; _vertraging_ms (x); dispClear (); _vertraging_ms (x*5); // Die woord is klaar, so vir duidelikheid het ek 'n groter spasie tussen woorde}} Volg nou die instruksies op bladsy 4 om hierdie kode saam te stel en dit na u AVR te stuur.

Stap 2: Die beursie lig

Die beursie lig
Die beursie lig
Die beursie lig
Die beursie lig

Ander onderdele x2 LED's NIE VERDUILD (RadioShack) Hierdie projek vervaag glad tussen twee LED's. My ma wou iets op haar beursie hê om haar bye te help sien in die nag. Ek het gevoel asof 'n flitsende fietslig te veel aandag trek, so ek het dit gemaak. Dit gebruik PWM (Pulse Width Modulation) om die effek van verduistering en verheldering te gee. Wat eintlik gebeur, is dat die LED vinniger flikker as wat die oog met verskillende tussenposes kan sien om 'n verandering te simuleer. U kan dit duideliker sien as u dit in u gesig waai, net soos met die Naam Flasher. Die kode kan aan die einde van hierdie bladsy afgelaai word. Sien bladsy 4 oor hoe om met u AVR saam te stel. In plaas daarvan om kommentaar te lewer op die kode hier, sal ek die konsep kortliks verduidelik. PWM word gegenereer deur 'n timer. Elke tydsiklus tel die timer een. As dit 'n sekere waarde bereik (in hierdie geval OCR1B) verander dit die toestand van 'n pen (in hierdie geval OC1B). Om die LED's te laat "afskakel", het ek die ander een aan [OPPOSITE] OC1B aangeskakel (dit is wat die balk aan die bokant beteken). Dan gebruik ons x om die tyd wat die LED's aan het, te verhoog en te verminder.

Stap 3: Die Color Scroller

Die Color Scroller
Die Color Scroller
Die Color Scroller
Die Color Scroller

Ander Partsx1 RGB LED (beter versprei) (RadioShack) Dit is vir my 'n klassieke. Ek was nog altyd gefassineer deur sulke ligte en vind dit baie kalmerend, so ek wou natuurlik een maak. Ook hul sigbaarheid in die samelewing gee hulle 'n ware WOW -faktor. "Het jy dit GEMAAK ?!" Die kode is byna dieselfde en na my mening makliker om te lees. U kan dit onderaan aflaai. Hierdie keer voorsien ons 'n PWM -pen vir elke aardpen op die RGB LED. Op hierdie manier word ons deur die chip gemaal. Volt kan gemeet word as die verskil tussen twee punte. 3v-0v = 3v 5v-2v = 3v *** 3v-3v = 0v *** Hierdie laaste voorbeeld is wat ons doen as ons deur die chip skuur. As daar drie volt aan beide kante is, is daar per se nie genoeg volt om 'n LED aan te dryf nie. Om tussen kleure te vervaag, het ons 'n kleur en 'n ander kleur gekies. Stel een gelyk aan x en die ander gelyk aan 255-x of die INVERSE van x. Soos ons in die vorige projek gedoen het. Gaan nou na stap 4 om te programmeer.

Stap 4: Programmering

Programmering
Programmering

Laai eers Emacs, avr-gcc en Avrdude af en installeer dit en die afhanklikes wat dit moontlik het. Op Arch linux het ek dit gedoen met: sudo pacman -Sy emacs avrdude

Dit is nou tyd om u programmeerder aan te sluit by u avr. Draai die penne op die 6-pen ISP-programmeerder (prent hieronder) na die ooreenstemmende penne op u AVR (datablad, bladsy 2) (ek het dit op 'n broodbord gedoen). Koppel die programmeerder nou aan op u rekenaar en raak BAIE vinnig aan die bokant van die AVR. As dit warm is, VERWYDER DIE PROGRAMMERAAR UIT U REKENAAR EENMALIG, kontroleer u verbindings en probeer weer (Power en Gnd agteruit?). As dit nie warm is nie, open dan emacs en druk Ctl-x Ctl-f om die.c lêer te vind. Maak dit oop en druk dan Meta (Gewoonlik Alt) -x en tik compile. Druk twee keer op enter en as u gelukkig is, moet u AVR u kode nou gebruik! Dankie vir die lees! Ek hoop jy het dit geniet en iets geleer. Moet asseblief nie huiwer om vrae te vra nie en moenie vergeet om foto's te plaas van wat u bedink het nie. Geseënde vakansie en moenie vergeet om te stem nie!

Aanbeveel: