Taula de continguts:

3 regals de vacances ATTiny Easy: 4 passos
3 regals de vacances ATTiny Easy: 4 passos

Vídeo: 3 regals de vacances ATTiny Easy: 4 passos

Vídeo: 3 regals de vacances ATTiny Easy: 4 passos
Vídeo: HÔTEL TRANSYLVANIE 3: LES VACANCES D’ÉTÉ: Pub télé - "Célibataire" 2024, De novembre
Anonim
3 regals de vacances ATTiny fàcils
3 regals de vacances ATTiny fàcils

Cada any es mou la temporada de vacances i em queda atrapat sobre què donar als meus amics i familiars. La gent sempre diu que és millor fer el regal vosaltres mateixos que comprar-lo a una botiga, de manera que aquest any ho he fet. El primer mostra un nom o una imatge bàsica quan s’agita per l’aire, el segon s’esvaeix suaument entre dos leds blancs (també té un passador de seguretat per fixar-lo a la roba o a una bossa) i el tercer és una mena d’humor, desplaçant-se perfectament entre colors. Tots tenen menys de 15 dòlars i són fàcils de muntar en menys d’una hora. També podríeu donar aquestes instruccions i algunes parts com a regal a algú interessat en aprendre electrònica.

Nota: Se suposa un nivell bàsic de soldadura. No obstant això, a diferència de la meva instrucció anterior, analitzaré com programar un AVR. Realment espero que això ajudi a les persones que intenten iniciar-se en electrònica. Recordo quan vaig estar allà i estaré encantat de respondre a qualsevol dubte. Recordeu que no hi ha preguntes estúpides! Us ho he deixat obert per determinar com es distribuirà la vostra placa de circuit amb l'esperança que trobareu una nova manera de mostrar els circuits simples que he traçat. Si us plau, publiqueu imatges un cop hàgiu acabat, no puc esperar a veure què us apareix! Parts per a tots els projectes N = nombre de projectes x N ATTiny45 (www.digikey.com) x N sòcol DIP de 8 pins (RadioShack) x 1 placa de perfecció gran (tinc la meva a RadioShack) x N 3v Bateria i suport per a cèl·lules de moneda (RadioShack) x1 Programador (ho faig servir i el fitxer de make subministrat es configurarà per utilitzar-lo) x2 Resistors N, un de 10 ohm i un 10k ohm (RadioShack) Aquí teniu una imatge dels tres projectes finalitzats:

Pas 1: el nom intermitent

El nom intermitent
El nom intermitent
El nom intermitent
El nom intermitent
El nom intermitent
El nom intermitent

Altres parts LEDs de 3 mm x5 DIFUSOS (RadioShack) Aquest projecte utilitza la persistència de la visió per mostrar una imatge o un text quan es mou ràpidament. Funciona millor quan és fosc. Amb l’AVR canviem entre els LEDs més ràpidament, doncs l’ull pot veure que podem crear una imatge a l’aire amb molt pocs components. El codi: (Descarregueu el fitxer.zip a la part inferior de la pàgina per al codi, el fitxer makefile, etc.). Aquest codi no té els comentaris extensos que fa aquest codi, però si aquest codi no funciona, proveu el que apareix a fitxer zip)) #define F_CPU 1000000 #include #include void dispClear () {PORTB = ~ 0b00000000; } int main () {DDRB = 0xFF; // Per a aquells de vosaltres que no heu llegit mai C abans que la doble barra inclogui un comentari. Això estableix els pins de l'avr com a sortida x = 10; // x s’utilitza per establir el temps de retard. Augmentant el valor es produeix un canvi més lent entre píxels, disminuint, mentre que (1) // Mentre (la condició és certa); {Feu això} (True in C és 1) {PORTB = ~ 0b00010001; // El meu amic es diu Zoe, així que vaig dibuixar els personatges en paper mil·limetrat i els vaig imputar a PORTB. Els tres primers zeros no importen perquè només hi ha cinc led connectats. Un en un dels cinc espais restants indica que el LED està encès, un zero, apagat. _delay_ms (x); // retard en milisegons PORTB = ~ 0b00010011; _delay_ms (x); PORTB = ~ 0b00010101; _delay_ms (x); PORTB = ~ 0b00011001; _delay_ms (x); PORTB = ~ 0b00010001; _delay_ms (x); dispClear (); // Espai obert entre els caràcters _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); // La paraula està feta, per claredat, tinc un espai més gran entre paraules}} Ara seguiu les instruccions de la pàgina 4 per compilar aquest codi i enviar-lo al vostre AVR.

Pas 2: la llum de la bossa

La llum de la bossa
La llum de la bossa
La llum de la bossa
La llum de la bossa

Altres Parts x2 LED NON DIFFUSED (RadioShack) Aquest projecte s'esvaeix suaument entre dos LED. La meva mare volia que anés alguna cosa a la bossa per ajudar-la a veure-la de nit. Vaig sentir que una llum intermitent de la bicicleta cridaria massa l'atenció, així que vaig fer això. Utilitza PWM (Pulse Width Modulation) per donar l'efecte de atenuació i brillantor. El que realment està passant és que el led parpelleja més ràpid del que l’ull pot veure a diferents intervals per simular un canvi. Podeu veure-ho amb més claredat quan l’agiteu de la vostra cara com ho faríeu amb el nom Flasher. El codi es pot descarregar al final d'aquesta pàgina. Consulteu la pàgina 4 sobre com compilar al vostre AVR. En lloc de comentar el codi aquí, explicaré breument el concepte. PWM és generat per un temporitzador. Cada cicle de rellotge el temporitzador en compta un. Quan arriba a un valor determinat (en aquest cas OCR1B) canvia l’estat d’un pin (en aquest cas OC1B). Per aconseguir que els LED es "apaguessin", vaig connectar l'altre a [OPPOSITE] OC1B (Això és el que significa la barra de la part superior). A continuació, fem servir x per augmentar i disminuir el temps que els LED s’encenen.

Pas 3: el Color Scroller

El Color Scroller
El Color Scroller
El Color Scroller
El Color Scroller

Altres Partsx1 RGB LED (difós és millor) (RadioShack) Això per a mi és un clàssic. Sempre m’han fascinat llums d’aquest tipus i les trobo molt tranquil·les, de manera que, naturalment, en volia fer una. A més, la seva visibilitat en la societat els proporciona un factor WOW real. "Ho heu fet ?!" El codi és gairebé el mateix i, al meu entendre, més fàcil de llegir. Podeu descarregar-lo a la part inferior. Aquesta vegada proporcionem un pin PWM'd per a cada pin de terra del LED RGB. D’aquesta manera, anem a terra a través del xip. Els volts es poden mesurar com la diferència entre dos punts. 3v-0v = 3v 5v-2v = 3v *** 3v-3v = 0v *** Aquesta última instància és el que estem fent quan fem una connexió a terra a través del xip. Quan hi ha tres volts a banda i banda, per exemple, no hi ha prou volts per accionar un LED. Per tant, per esvair-se entre colors vam triar un color i un altre. Establiu un igual a x i l'altre igual a 255-x o la INVERSA de x. Com estàvem fent en el projecte anterior. Ara aneu al pas 4 per programar.

Pas 4: Programació

Programació
Programació

Primer descarregueu i instal·leu Emacs, avr-gcc i Avrdude i totes les dependències que puguin tenir. A Arch linux ho vaig fer amb: sudo pacman -Sy emacs avrdude

Ara és hora de connectar el programador al vostre avr. Connecteu els pins del programador ISP de 6 pins (imatge següent) als pins corresponents del vostre AVR (full de dades, pàgina 2) (ho he fet en una taula de treball). Ara connecteu el programador a l’ordinador i toqueu MOLT RÀPID la part superior de l’AVR. Si fa calor, ELIMINEU EL PROGRAMADOR DE L’ORDINADOR UNA vegada comproveu les connexions i torneu-ho a provar (Power i Gnd cap enrere?). Si no fa calor, obriu emacs i premeu Ctl-x Ctl-f per trobar el fitxer.c. Obriu-lo i premeu Meta (Usualy Alt) -x i escriviu compila. Premeu Enter dues vegades i, si teniu sort, el vostre AVR ara hauria d'executar el vostre codi. Gràcies per llegir! Espero que us hagi agradat i hàgiu après alguna cosa. Si us plau, no dubteu a fer preguntes i no us oblideu de publicar fotos del que teniu. Bones vacances i no us oblideu de votar!

Recomanat: