Πίνακας περιεχομένων:

3 Εύκολα δώρα διακοπών ATTiny: 4 βήματα
3 Εύκολα δώρα διακοπών ATTiny: 4 βήματα

Βίντεο: 3 Εύκολα δώρα διακοπών ATTiny: 4 βήματα

Βίντεο: 3 Εύκολα δώρα διακοπών ATTiny: 4 βήματα
Βίντεο: Jitano x Trannos x Thug Slime - Lamogia (Official Music Video) 2024, Νοέμβριος
Anonim
3 Εύκολα δώρα διακοπών ATTiny
3 Εύκολα δώρα διακοπών ATTiny

Κάθε χρόνο η περίοδος των διακοπών κυλάει και κολλάω στο τι να δώσω στους φίλους και την οικογένειά μου. Οι άνθρωποι λένε πάντα ότι είναι καλύτερο να κάνετε το δώρο μόνοι σας παρά να το αγοράσετε σε ένα κατάστημα, οπότε φέτος έκανα ακριβώς αυτό. Το πρώτο εμφανίζει ένα όνομα ή μια βασική εικόνα όταν κυματίζει στον αέρα, το δεύτερο ξεθωριάζει ομαλά μεταξύ δύο λευκών led (Έχει επίσης μια καρφίτσα ασφαλείας για να το τοποθετήσετε σε ρούχα ή ένα πορτοφόλι) και το τρίτο είναι ένα φως διάθεσης, κύλιση απρόσκοπτα ανάμεσα στα χρώματα. Όλα είναι κάτω από $ 15 και είναι εύκολο να συναρμολογηθούν σε λιγότερο από μία ώρα. Θα μπορούσατε επίσης να δώσετε αυτές τις οδηγίες καθώς και ανταλλακτικά ως δώρο σε κάποιον που ενδιαφέρεται να μάθει ηλεκτρονικά.

Σημείωση: Υποτίθεται ένα βασικό επίπεδο συγκόλλησης. Ωστόσο, σε αντίθεση με τις προηγούμενες οδηγίες μου, θα ξεκαθαρίσω πώς να προγραμματίσω ένα AVR. Ελπίζω πραγματικά ότι αυτό θα βοηθήσει τους ανθρώπους που προσπαθούν να ξεκινήσουν την ηλεκτρονική. Θυμάμαι όταν ήμουν εκεί και θα χαρώ να κάνω όποιες απορίες έχετε. Θυμηθείτε ότι δεν υπάρχουν ηλίθιες ερωτήσεις! Σας αφήνω ανοιχτό να καθορίσετε πώς θα τοποθετήσετε την πλακέτα σας με την ελπίδα ότι θα βρείτε έναν νέο τρόπο προβολής των απλών κυκλωμάτων που έχω σχεδιάσει. Παρακαλώ δημοσιεύστε φωτογραφίες μόλις τελειώσετε, ανυπομονώ να δω τι θα καταλήξετε! Μέρη για όλα τα έργα N = αριθμός έργων x N ATTiny45 (www.digikey.com) x N υποδοχή 8 ακίδων DIP (RadioShack) x 1 Large Perf Board (πήρα το δικό μου στο RadioShack) x N 3v Coin Cell Battery και κάτοχος (RadioShack) x1 Προγραμματιστής (το χρησιμοποιώ αυτό και το παρεχόμενο makefile θα διαμορφωθεί για να το χρησιμοποιεί αυτό) x2 N Resistors, ένα 10 ohm και ένα 10k ohm (RadioShack) Ακολουθεί μια εικόνα των τριών ολοκληρωμένων έργων:

Βήμα 1: Το όνομα Flasher

Το όνομα Flasher
Το όνομα Flasher
Το όνομα Flasher
Το όνομα Flasher
Το όνομα Flasher
Το όνομα Flasher

Άλλα μέρη x5 ΔΙΑΦΟΡΑ LED 3mm (RadioShack) Αυτό το έργο χρησιμοποιεί την επιμονή της όρασης για να εμφανίσει μια εικόνα ή κείμενο όταν μετακινείται γρήγορα. Λειτουργεί καλύτερα όταν είναι σκοτεινό. Με το AVR αλλάζουμε ταχύτερα μεταξύ των LED, τότε το μάτι μπορεί να δει, μπορούμε να δημιουργήσουμε μια εικόνα στον αέρα με πολύ λίγα εξαρτήματα. Ο Κώδικας: (Κατεβάστε το αρχείο.zip στο κάτω μέρος της σελίδας για τον κώδικα, το makefile κ.λπ. (Αυτός ο κώδικας δεν έχει τα εκτεταμένα σχόλια που κάνει αυτός ο κώδικας, αλλά αν αυτός ο κώδικας δεν λειτουργεί, δοκιμάστε αυτόν που βρίσκεται στο zip file)) #define F_CPU 1000000 #include #include void dispClear () {PORTB = ~ 0b00000000; } int main () {DDRB = 0xFF; // Για όσους από εσάς δεν έχετε διαβάσει ποτέ το C πριν από τη διπλή κάθετο υποδεικνύει ένα σχόλιο. Αυτό ορίζει τις ακίδες του avr ως χαρακτήρα εξόδου x = 10. // x χρησιμοποιείται για τον ορισμό της καθυστέρησης legnth. Η αύξηση της τιμής δίνει μια πιο αργή εναλλαγή μεταξύ εικονοστοιχείων, μειώνοντας, χαμηλότερη ενώ (1) // Ενώ (η συνθήκη είναι αληθής). {Κάντε αυτό} (Το True in C is 1) {PORTB = ~ 0b00010001; // Το όνομα της φίλης μου είναι Ζωή, έτσι έβγαλα τους χαρακτήρες σε χαρτί γραφικών και στη συνέχεια τους καταλόγισα στο PORTB. Τα τρία πρώτα μηδενικά δεν έχουν σημασία γιατί υπάρχουν μόνο πέντε led συνδεδεμένα. Ένα σε έναν από τους πέντε υπόλοιπους χώρους υποδεικνύει ότι η λυχνία LED είναι αναμμένη, μηδέν, απενεργοποιημένη. _delay_ms (x); // καθυστέρηση σε χιλιοστά του δευτερολέπτου PORTB = ~ 0b00010011; _delay_ms (x); PORTB = b 0b00010101; _delay_ms (x); PORTB = ~ 0b00011001; _delay_ms (x); PORTB = b 0b00010001; _delay_ms (x); dispClear (); // Άνοιγμα χώρου μεταξύ χαρακτήρων _delay_ms (x); PORTB = ~ 0b00001110; _delay_ms (x); PORTB = b 0b00010001; _delay_ms (x*3); PORTB = ~ 0b00001110; _delay_ms (x); dispClear (); _delay_ms (x); PORTB = ~ 0b00011111; _delay_ms (x); PORTB = b 0b00010101; _delay_ms (x); PORTB = b 0b00010001; _delay_ms (x); dispClear (); _delay_ms (x*5); // Η λέξη είναι έτσι για λόγους σαφήνειας έχω μεγαλύτερο διάστημα μεταξύ λέξεων}} Ακολουθήστε τώρα τις οδηγίες στη σελίδα 4 για να συντάξετε αυτόν τον κώδικα και να τον στείλετε στο AVR σας.

Βήμα 2: Το φως πορτοφόλι

Το φως πορτοφόλι
Το φως πορτοφόλι
Το φως πορτοφόλι
Το φως πορτοφόλι

Άλλα μέρη X2 LED δεν διαχέεται (RadioShack) Αυτό το έργο ξεθωριάζει ομαλά μεταξύ δύο LED. Η μαμά μου ήθελε κάτι να βάλει στο πορτοφόλι της για να τη βοηθήσει να δει τη μέλισσα τη νύχτα. Ένιωσα ότι μια λάμπα ποδηλάτου που αναβοσβήνει θα τραβήξει πάρα πολύ την προσοχή, οπότε το έκανα αυτό. Χρησιμοποιεί PWM (Pulse Width Modulation) για να δώσει το αποτέλεσμα της εξασθένισης και της φωτεινότητας. Αυτό που συμβαίνει στην πραγματικότητα είναι ότι το led αναβοσβήνει πιο γρήγορα από ό, τι μπορεί να δει το μάτι σε διάφορα διαστήματα για να προσομοιώσει μια αλλαγή. Μπορείτε να το δείτε πιο καθαρά όταν το κουνάτε από το πρόσωπό σας όπως θα κάνατε με το Name Flasher. Μπορείτε να κατεβάσετε τον κωδικό στο τέλος αυτής της σελίδας. Δείτε τη σελίδα 4 σχετικά με τον τρόπο μεταγλώττισης στο AVR. Αντί να σχολιάσω τον κώδικα εδώ, θα εξηγήσω εν συντομία την έννοια. Το PWM δημιουργείται από ένα χρονόμετρο. Κάθε κύκλος ρολογιού ο χρονοδιακόπτης μετράει έναν. Όταν φτάσει σε μια ορισμένη τιμή (Σε αυτήν την περίπτωση OCR1B) αλλάζει την κατάσταση ενός πείρου (Σε αυτή την περίπτωση OC1B). Για να "σβήσουν" οι λυχνίες LED συνδέω το άλλο στο [ΑΝΤΙΘΕΤΟ] OC1B (Αυτό σημαίνει η μπάρα στην κορυφή). Στη συνέχεια, χρησιμοποιούμε το x για να αυξήσουμε και να μειώσουμε το χρονικό διάστημα για να είναι αναμμένα τα LED.

Βήμα 3: Το κύλινδρο χρώματος

Το κύλινδρο χρώματος
Το κύλινδρο χρώματος
Το κύλινδρο χρώματος
Το κύλινδρο χρώματος

Άλλα LED Partsx1 RGB (η διάχυση είναι καλύτερη) (RadioShack) Αυτό για μένα είναι κλασικό. Πάντα με ενθουσίαζαν τέτοια φώτα και τα βρίσκω πολύ ήρεμα, οπότε φυσικά ήθελα να φτιάξω ένα. Επίσης η ορατότητά τους στην κοινωνία τους δίνει έναν πραγματικό παράγοντα WOW. "Το κατάφερες;!" Ο κώδικας είναι σχεδόν ο ίδιος και, κατά τη γνώμη μου, διαβάζεται ευκολότερα. Μπορείτε να κατεβάσετε το αρχείο στο κάτω μέρος. Αυτή τη φορά παρέχουμε έναν πείρο PWM'd για κάθε ακίδα γείωσης στο LED RGB. Με αυτόν τον τρόπο γειώνουμε μέσω του τσιπ. Τα βολτ μπορούν να μετρηθούν ως η διαφορά μεταξύ δύο σημείων. 3v-0v = 3v 5v-2v = 3v *** 3v-3v = 0v *** Αυτή η τελευταία περίπτωση είναι αυτό που κάνουμε όταν γειώνουμε μέσω του τσιπ. Όταν υπάρχουν τρία βολτ και στις δύο πλευρές, ας πούμε, δεν υπάρχουν αρκετά βολτ για να οδηγήσετε ένα LED. Έτσι για να ξεθωριάσουμε ανάμεσα στα χρώματα επιλέξαμε ένα χρώμα και ένα άλλο χρώμα. Ορίστε το ένα ίσο με το x και το άλλο ίσο με το 255-x ή το INVERSE του x. Όπως κάναμε στο προηγούμενο έργο. Τώρα πηγαίνετε στο βήμα 4 για να προγραμματίσετε.

Βήμα 4: Προγραμματισμός

Βοήθημα προγραμματισμού
Βοήθημα προγραμματισμού

Πρώτα κατεβάστε και εγκαταστήστε τα Emacs, avr-gcc και Avrdude και τυχόν εξαρτήσεις που μπορεί να έχουν. Στο Arch linux το έκανα με: sudo pacman -Sy emacs avrdude

Τώρα ήρθε η ώρα να συνδέσετε τον προγραμματιστή σας με το avr σας. Συνδέστε τις καρφίτσες στον προγραμματιστή ISP 6 ακίδων (εικόνα παρακάτω) στις καρφίτσες που συγχωνεύονται στο AVR σας (Φύλλο δεδομένων, σελίδα 2) (το έκανα σε μια σανίδα). Τώρα συνδέστε τον προγραμματιστή στον υπολογιστή σας και αγγίξτε ΠΟΛΥ ΓΡΗΓΟΡΑ την κορυφή του AVR. Αν κάνει ζέστη, ΑΦΑΙΡΕΣΤΕ ΤΟΝ ΠΡΟΓΡΑΜΜΑΤΗΡΑ ΑΠΟ ΤΟΝ ΥΠΟΛΟΓΙΣΤΗ ΣΑΣ ΜΙΑ ΦΟΡΑ ελέγξτε τις συνδέσεις σας και δοκιμάστε ξανά (Power and Gnd backwards?). Εάν δεν είναι ζεστό, ανοίξτε το emacs και πατήστε Ctl-x Ctl-f για να βρείτε το αρχείο.c. Ανοίξτε το και, στη συνέχεια, πατήστε Meta (Usualy Alt) -x και πληκτρολογήστε compile. Πατήστε enter δύο φορές και αν είστε τυχεροί, το AVR σας θα πρέπει τώρα να εκτελεί τον κωδικό σας! Ευχαριστώ για την ανάγνωση! Ελπίζω να το απολαύσατε και να μάθατε κάτι. Παρακαλώ, μη διστάσετε να κάνετε ερωτήσεις και μην ξεχάσετε να δημοσιεύσετε φωτογραφίες από όσα καταλήξατε. Καλές γιορτές και μην ξεχάσετε να ψηφίσετε!

Συνιστάται: