Innholdsfortegnelse:

3 enkle ATTiny -julegaver: 4 trinn
3 enkle ATTiny -julegaver: 4 trinn

Video: 3 enkle ATTiny -julegaver: 4 trinn

Video: 3 enkle ATTiny -julegaver: 4 trinn
Video: 3 ТОП БЛЮДА ИСПАНИИ / БУТЕРБРОДЫ ПИНЧО / ПАЭЛЬЯ / КРЕМА КАТАЛАНА,SUB ENG. 2024, November
Anonim
3 enkle ATTiny julegaver
3 enkle ATTiny julegaver

Hvert år ruller ferien rundt, og jeg sitter fast på hva jeg skal gi for venner og familie. Folk sier alltid at det er bedre å lage gaven selv enn å kjøpe den i en butikk, så i år gjorde jeg nettopp det. Den første viser et navn eller et grunnleggende bilde når den vinkes gjennom luften, den andre falmer jevnt mellom to hvite lysdioder (Den har også en sikkerhetsnål for å feste den til klær eller en veske), og den tredje er et slags stemningslys, ruller sømløst mellom farger. Alle er under $ 15 og er enkle å montere på mindre enn en time. Du kan også gi disse instruksjonene samt deler som en gave til noen som er interessert i å lære elektronikk.

Merk: Det forutsettes et grunnleggende nivå av lodding. Imidlertid, i motsetning til min forrige instruerbare, vil jeg se nærmere på hvordan jeg programmerer en AVR. Jeg håper virkelig at dette hjelper folk som prøver å komme i gang med elektronikk. Jeg husker da jeg var der og vil gjerne svare på alle spørsmål du måtte ha. Husk det er ingen dumme spørsmål! Jeg har overlatt det åpent for deg å bestemme hvordan du vil legge ut kretskortet ditt i håp om at du vil finne en ny måte å vise de enkle kretsene jeg har tegnet ut. Vennligst legg ut bilder når du er ferdig, jeg kan ikke vente med å se hva du finner på! Deler til alle prosjektene N = antall prosjekter x N ATTiny45 (www.digikey.com) x N 8-pinners DIP-kontakt (RadioShack) x 1 Large Perf Board (jeg fikk mitt på RadioShack) x N 3v myntcellebatteri og holder (RadioShack) x1 programmerer (jeg bruker denne og den medfølgende makefilen vil bli konfigurert til å bruke denne) x2 N motstander, en 10 ohm og en 10k ohm (RadioShack) Her er et bilde av de tre fullførte prosjektene:

Trinn 1: Navnelyset

Navnet Blinker
Navnet Blinker
Navnet Blinker
Navnet Blinker
Navnet Blinker
Navnet Blinker

Andre deler x5 DIFFUSED 3mm LED's (RadioShack) Dette prosjektet bruker vedvarende syn for å vise et bilde eller en tekst når den flyttes raskt. Det fungerer bedre når det er mørkt. Med AVR bytter vi mellom lysdioder raskere, så kan øyet se at vi kan lage et bilde i luften med svært få komponenter. Koden: (Last ned.zip -filen nederst på siden for koden, makefilen osv. (Den koden har ikke de omfattende kommentarene som denne koden gjør, men hvis denne koden ikke fungerer, kan du prøve den i zip -fil)) #define F_CPU 1000000 #include #include void dispClear () {PORTB = ~ 0b00000000; } int main () {DDRB = 0xFF; // For de av dere som aldri har lest C før dobbel skråstrek indikerer en kommentar. Dette setter pinnene til avr som en utgangstegn x = 10; // x brukes til å angi forsinkelsestiden. Å øke verdien gir en langsommere veksling mellom piksler, synker, en lavere stund (1) // While (betingelsen er sann); {Do This} (True i C er 1) {PORTB = ~ 0b00010001; // Min venn heter Zoe, så jeg tegnet ut tegnene på grafpapir og deretter tilregnet dem i PORTB. De tre første nullene spiller ingen rolle fordi det bare er fem LED -er tilkoblet. En av en av de fem mellomrommene indikerer at lysdioden er på, null, av. _forsinkelse_ms (x); // forsinkelse i milisekunder PORTB = ~ 0b00010011; _forsinkelse_ms (x); PORTB = ~ 0b00010101; _forsinkelse_ms (x); PORTB = ~ 0b00011001; _forsinkelse_ms (x); PORTB = ~ 0b00010001; _forsinkelse_ms (x); dispClear (); // Åpen plass mellom tegn _delay_ms (x); PORTB = ~ 0b00001110; _forsinkelse_ms (x); PORTB = ~ 0b00010001; _forsinkelse_ms (x*3); PORTB = ~ 0b00001110; _forsinkelse_ms (x); dispClear (); _forsinkelse_ms (x); PORTB = ~ 0b00011111; _forsinkelse_ms (x); PORTB = ~ 0b00010101; _forsinkelse_ms (x); PORTB = ~ 0b00010001; _forsinkelse_ms (x); dispClear (); _forsinkelse_ms (x*5); // Ordet er gjort, så for klarhet har jeg et større mellomrom mellom ordene}} Følg nå instruksjonene på side 4 for å kompilere denne koden og sende den til AVR -en.

Trinn 2: Lommeboken

Lommeboken
Lommeboken
Lommeboken
Lommeboken

Andre deler x2 LED'S NON DIFFUSED (RadioShack) Dette prosjektet blekner jevnt mellom to LED -er. Moren min ønsket at noe skulle gå på vesken hennes for å hjelpe henne å bli sett om natten. Jeg følte at et blinkende sykkellys ville tiltrekke for mye oppmerksomhet, så jeg lagde dette. Den bruker PWM (Pulse Width Modulation) for å gi effekten av dimming og lysere. Det som faktisk skjer er at LED -lampen blinker raskere enn øyet kan se med varierende intervaller for å simulere en endring. Du kan se dette tydeligere når du vinker det inn i ansiktet ditt som du ville gjort med Name Flasher. Koden kan lastes ned på slutten av denne siden. Se side 4 om hvordan du kompilerer til AVR -en. I stedet for å kommentere koden her, skal jeg kort forklare konseptet. PWM genereres av en timer. Hver klokkesyklus teller timeren en. Når den når en viss verdi (I dette tilfellet OCR1B) endrer den tilstanden til en pinne (I dette tilfellet OC1B). For å få lysdiodene til å "slå av", koblet jeg den andre til [OPPOSITE] OC1B (Det er det som betyr at linjen på toppen). Deretter bruker vi x for å øke og redusere tiden det skal være for LED -lampene å være på.

Trinn 3: Color Scroller

Color Scroller
Color Scroller
Color Scroller
Color Scroller

Andre Partsx1 RGB LED (diffust er bedre) (RadioShack) Dette er for meg en klassiker. Jeg har alltid blitt fasinert av lys som dette og synes det er veldig beroligende, så naturligvis ønsket jeg å lage et. Også deres synlighet i samfunnet gir dem en virkelig WOW -faktor. "GJORDE du det ?!" Koden er nesten den samme og etter min mening lettere å lese. Du kan laste den ned nederst. Denne gangen gir vi en PWM -pin for hver jordingstapp på RGB -LED -en. På denne måten males vi gjennom brikken. Volt kan måles som forskjellen mellom to punkter. 3v-0v = 3v 5v-2v = 3v *** 3v-3v = 0v *** Denne siste forekomsten er det vi gjør når vi maler gjennom brikken. Når det er tre volt på begge sider, per si, er det ikke nok volt til å drive en LED. Så for å falme mellom farger valgte vi en farge og en annen farge. Sett den ene lik x og den andre lik 255-x eller INVERSE av x. Som vi gjorde i forrige prosjekt. Gå nå til trinn 4 for å programmere.

Trinn 4: Programmering

Programmering
Programmering

Last ned og installer først Emacs, avr-gcc og Avrdude og eventuelle avhengigheter de måtte ha. På Arch linux gjorde jeg dette med: sudo pacman -Sy emacs avrdude

Nå er det på tide å koble programmereren til avr. Koble pinnene på den 6-pinners ISP-programmereren (bildet nedenfor) til de tilsvarende pinnene på AVR-enheten (datablad, side 2) (jeg gjorde dette på et brødbrett). Koble nå programmereren til datamaskinen og berør VELDIG toppen av AVR. Hvis det er varmt, FJERN DU PROGRAMMEREN FRA DATAMASKINEN DITT, sjekk tilkoblingene dine og prøv igjen (strøm og Gnd bakover?). Hvis det ikke er varmt, åpner du emacs og trykker på Ctl-x Ctl-f for å finne.c-filen. Åpne den og trykk deretter Meta (Vanlig Alt) -x og skriv kompilere. Trykk enter to ganger, og hvis du er heldig, skal AVR -en din nå kjøre koden din! Takk for at du leste! Jeg håper du likte det og lærte noe. Ikke nøl med å stille spørsmål, og ikke glem å legge ut bilder av det du finner på. God jul og ikke glem å stemme!

Anbefalt: