Innehållsförteckning:

3 enkla ATTiny -julklappar: 4 steg
3 enkla ATTiny -julklappar: 4 steg

Video: 3 enkla ATTiny -julklappar: 4 steg

Video: 3 enkla ATTiny -julklappar: 4 steg
Video: Лучше связать сразу несколько) 😜 Их быстро разбирают! | Сумка крючком | Soft Decor 2024, November
Anonim
3 enkla ATTiny -julklappar
3 enkla ATTiny -julklappar

Varje år rullar semestern och jag fastnar för vad jag ska ge för mina vänner och familj. Folk säger alltid att det är bättre att göra presenten själv än att köpa den i en butik så i år gjorde jag just det. Den första visar ett namn eller en grundbild när den vinkas genom luften, den andra bleknar smidigt mellan två vita lysdioder (den har också en säkerhetsnål för att fästa den på kläder eller en plånbok), och den tredje är ett slags stämningsbelysning, rullande sömlöst mellan färger. Alla är under $ 15 och är lätta att montera på mindre än en timme. Du kan också ge dessa instruktioner samt delar som en gåva till någon som är intresserad av att lära sig elektronik.

Obs: En grundläggande nivå av lödning antas. Men till skillnad från min tidigare instruerbara kommer jag att överväga hur man programmerar en AVR. Jag hoppas verkligen att det här hjälper människor som försöker komma igång med elektronik. Jag kommer ihåg när jag var där och tar gärna emot eventuella frågor du kan ha. Kom ihåg att det inte finns några dumma frågor! Jag har lämnat det öppet för dig att avgöra hur du ska lägga upp ditt kretskort i hopp om att du kommer på ett nytt sätt att visa de enkla kretsarna jag har ritat ut. Lägg upp bilder när du är klar, jag kan inte vänta med att se vad du hittar på! Delar till alla projekt N = antal projekt x N ATTiny45 (www.digikey.com) x N 8-stifts DIP-uttag (RadioShack) x 1 Large Perf Board (jag fick mitt på RadioShack) x N 3v myntcellsbatteri och hållare (RadioShack) x1 programmerare (jag använder detta och den medföljande makefilen kommer att konfigureras för att använda den här) x2 N motstånd, en 10 ohm och en 10k ohm (RadioShack) Här är en bild av de tre genomförda projekten:

Steg 1: Namnblinkaren

Namnet Flasher
Namnet Flasher
Namnet Flasher
Namnet Flasher
Namnet Flasher
Namnet Flasher

Övriga delar x5 DIFFUSED 3mm LED's (RadioShack) Detta projekt använder visionens beständighet för att visa en bild eller text när den flyttas snabbt. Det fungerar bättre när det är mörkt. Med AVR växlar vi mellan lysdioder snabbare då ögat kan se att vi kan skapa en bild i luften med mycket få komponenter. Koden: (Ladda ner.zip -filen längst ner på sidan för koden, makefilen, etc. (Den koden har inte de omfattande kommentarer som den här koden gör, men om den inte fungerar, prova den i zip -fil)) #define F_CPU 1000000 #include #include void dispClear () {PORTB = ~ 0b00000000; } int main () {DDRB = 0xFF; // För er som aldrig har läst C innan dubbelstrecket indikerar en kommentar. Detta anger stiften på avr som en utgång char x = 10; // x används för att ställa in fördröjningstiden. Att öka värdet ger en långsammare växling mellan pixlar, minskar, en lägre medan (1) // While (villkoret är sant); {Gör detta} (Sant i C är 1) {PORTB = ~ 0b00010001; // Min kompis heter Zoe så jag ritade ut karaktärerna på grafpapper och sedan tillräknade dem i PORTB. De tre första nollorna spelar ingen roll eftersom det bara är fem lysdioder anslutna. En i en av de återstående fem blankstegen indikerar att lysdioden är tänd, en noll, släckt. _fördröjning_ms (x); // fördröjning i milisekunder PORTB = ~ 0b00010011; _fördröjning_ms (x); PORTB = ~ 0b00010101; _fördröjning_ms (x); PORTB = ~ 0b00011001; _fördröjning_ms (x); PORTB = ~ 0b00010001; _fördröjning_ms (x); dispClear (); // Öppet utrymme mellan tecken _delay_ms (x); PORTB = ~ 0b00001110; _fördröjning_ms (x); PORTB = ~ 0b00010001; _fördröjning_ms (x*3); PORTB = ~ 0b00001110; _fördröjning_ms (x); dispClear (); _fördröjning_ms (x); PORTB = ~ 0b00011111; _fördröjning_ms (x); PORTB = ~ 0b00010101; _fördröjning_ms (x); PORTB = ~ 0b00010001; _fördröjning_ms (x); dispClear (); _fördröjning_ms (x*5); // Ordet är gjort så för klarhet har jag ett större mellanrum mellan ord}} Följ nu instruktionerna på sidan 4 för att kompilera den här koden och skicka den till din AVR.

Steg 2: Purse Light

Väskljuset
Väskljuset
Väskljuset
Väskljuset

Övriga delar x2 lysdioder NON DIFFUSED (RadioShack) Detta projekt bleknar smidigt mellan två lysdioder. Min mamma ville att något skulle gå på hennes handväska för att hjälpa henne att bli sett på natten. Jag kände att ett blinkande cykelljus skulle dra för mycket uppmärksamhet så jag gjorde det här. Den använder PWM (Pulse Width Modulation) för att ge effekten av dimning och ljusning. Det som faktiskt händer är att lysdioden blinkar snabbare än ögat kan se med varierande intervall för att simulera en förändring. Du kan se detta tydligare när du vinkar in det i ditt ansikte som du skulle göra med Namnblinkaren. Koden kan laddas ner i slutet av denna sida. Se sidan 4 om hur du kompilerar till din AVR. Istället för att kommentera koden här ska jag kort förklara konceptet. PWM genereras av en timer. Varje klockcykel räknar timern upp en. När den når ett visst värde (i det här fallet OCR1B) ändras tillståndet för en stift (I det här fallet OC1B). För att få lysdioderna att "stänga av" kopplade jag den andra till [OPPOSITE] OC1B (Det är vad stapeln överst betyder). Sedan använder vi x för att öka och minska tiden för lysdioderna.

Steg 3: Color Scroller

Color Scroller
Color Scroller
Color Scroller
Color Scroller

Andra Partsx1 RGB LED (diffust är bättre) (RadioShack) Detta är för mig en klassiker. Jag har alltid fascinerats av sådana här lampor och tycker att de är mycket lugnande så naturligtvis ville jag göra en. Också deras synlighet i samhället ger dem en verklig WOW -faktor. "GJORDE du det ?!" Koden är nästan densamma och enligt min mening lättare att läsa. Du kan ladda ner den längst ner. Den här gången tillhandahåller vi en PWM'd -stift för varje jordningsstift på RGB -lysdioden. På detta sätt maler vi genom chipet. Volt kan mätas som skillnaden mellan två punkter. 3v-0v = 3v 5v-2v = 3v *** 3v-3v = 0v *** Denna sista instans är vad vi gör när vi maler genom chipet. När det finns tre volt på båda sidor, per säg, finns det inte tillräckligt med volt för att driva en LED. Så för att blekna mellan färgerna valde vi en färg och en annan färg. Ställ in en lika med x och den andra lika med 255-x eller INVERSE av x. Som vi gjorde i det förra projektet. Gå nu till steg 4 för att programmera.

Steg 4: Programmering

Programmering
Programmering

Ladda ner och installera först Emacs, avr-gcc och Avrdude och alla beroende de kan ha. På Arch linux gjorde jag detta med: sudo pacman -Sy emacs avrdude

Nu är det dags att ansluta din programmerare till din avr. Anslut stiften på den 6-poliga ISP-programmeraren (bilden nedan) till de motsvarande stiften på din AVR (datablad, sida 2) (jag gjorde detta på ett brödbräda). Anslut nu programmeraren till din dator och rör MYCKET snabbt på AVR: s ovansida. Om det är varmt, TA BORT PROGRAMMERAREN FRÅN DIN DATOR EN gång Kontrollera dina anslutningar och försök igen (Ström och Gnd bakåt?). Om det inte är varmt öppnar du emacs och trycker på Ctl-x Ctl-f för att hitta.c-filen. Öppna den och tryck sedan på Meta (Vanligt Alt) -x och skriv kompilera. Tryck två gånger på enter och om du har tur ska din AVR nu köra din kod! Tack för att du läser! Jag hoppas att du tyckte om det och lärde dig något. Tveka inte att ställa frågor och glöm inte att lägga upp bilder på vad du hittar på. Trevlig helg och glöm inte att rösta!

Rekommenderad: