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

Προγραμματιζόμενη λυχνία LED: 6 βήματα (με εικόνες)
Προγραμματιζόμενη λυχνία LED: 6 βήματα (με εικόνες)

Βίντεο: Προγραμματιζόμενη λυχνία LED: 6 βήματα (με εικόνες)

Βίντεο: Προγραμματιζόμενη λυχνία LED: 6 βήματα (με εικόνες)
Βίντεο: Πώς να συνδέσετε βιομηχανικούς αισθητήρες 4-20 mA με το Raspberry Pi Pico PLC | Mitsubishi FX1N PLC 2024, Νοέμβριος
Anonim
Προγραμματιζόμενη λυχνία LED
Προγραμματιζόμενη λυχνία LED

Εμπνευσμένο από διάφορα LED Throwies, LED που αναβοσβήνουν και παρόμοιες οδηγίες, ήθελα να κάνω την έκδοση ενός LED που ελέγχεται από έναν μικροελεγκτή. Η ιδέα είναι να κάνουμε την ακολουθία που αναβοσβήνει με LED να επαναπρογραμματιστεί. Αυτός ο επαναπρογραμματισμός μπορεί να γίνει με φως και σκιά, π.χ. θα μπορούσατε να χρησιμοποιήσετε τον φακό σας. Αυτό είναι το πρώτο μου διδακτικό, κάθε σχόλιο ή διόρθωση είναι ευπρόσδεκτη. Ενημέρωση 2008-08-12: Υπάρχει τώρα ένα κιτ διαθέσιμο στο Tinker Store. Ακολουθεί ένα βίντεο με τον επαναπρογραμματισμό του. Συγγνώμη για την ποιότητα.

Βήμα 1: Πώς λειτουργεί

Ως έξοδο χρησιμοποιείται ένα LED. Ως είσοδος χρησιμοποίησα ένα LDR, μια αντίσταση που εξαρτάται από το φως. Αυτό το LDR αλλάζει την αντίστασή του καθώς δέχεται περισσότερο ή λιγότερο φως. Η αντίσταση χρησιμοποιείται στη συνέχεια ως αναλογική είσοδος στους μικροεπεξεργαστές ADC (αναλογικός ψηφιακός μετατροπέας).

Το χειριστήριο διαθέτει δύο τρόπους λειτουργίας, ένα για την εγγραφή μιας ακολουθίας και το άλλο για αναπαραγωγή της ηχογραφημένης ακολουθίας. Μόλις ο ελεγκτής παρατηρήσει δύο αλλαγές φωτεινότητας μέσα στο μισό του δευτερολέπτου, (σκοτεινό, φωτεινό, σκοτεινό ή αντίστροφα), μεταβαίνει στη λειτουργία εγγραφής. Στη λειτουργία αναδιαμόρφωσης, η είσοδος του LDR μετράται πολλές φορές το δευτερόλεπτο και αποθηκεύεται στο τσιπ. Εάν η μνήμη έχει εξαντληθεί, ο ελεγκτής επιστρέφει στη λειτουργία αναπαραγωγής και αρχίζει να αναπαράγει την ηχογραφημένη ακολουθία. Καθώς η μνήμη αυτού του μικροσκοπικού ελεγκτή είναι πολύ περιορισμένη, 64 byte (ναι, bytes!), Ο ελεγκτής είναι σε θέση να καταγράψει 400 bits. Αυτός είναι αρκετός χώρος για 10 δευτερόλεπτα με 40 δείγματα ανά δευτερόλεπτο.

Βήμα 2: Υλικά και εργαλεία

Υλικά και Εργαλεία
Υλικά και Εργαλεία
Υλικά και Εργαλεία
Υλικά και Εργαλεία

Υλικά- 2 x 1K αντίσταση- 1 x LDR (Αντίσταση εξαρτώμενη από το φως), π.χ. M9960- 1 x LED χαμηλής τάσης, 1.7V, 2ma- 1 x Atmel ATtiny13v, 1KB flash RAM, 64 Bytes RAM, 64 Bytes EEPROM, [email protected] 1 x CR2032, 3V, 220mAh - σύρμα συγκόλλησης- breadboard- προγραμματιστής AVR- τροφοδοτικό 5V- πολύμετρο Λογισμικό- Eclipse- πρόσθετο CDT- WinAVR Τα συνολικά κόστη θα πρέπει να είναι κάτω από 5 $ χωρίς τα εργαλεία. Χρησιμοποίησα το ATtiny13v επειδή αυτή η έκδοση αυτής της οικογένειας ελεγκτών είναι σε θέση να τρέξει σε 1.8V. Αυτό καθιστά δυνατή τη λειτουργία του κυκλώματος με μια πολύ μικρή μπαταρία. Για να λειτουργήσει για πολύ καιρό, αποφάσισα να χρησιμοποιήσω ένα LED χαμηλού ρεύματος το οποίο φτάνει την πλήρη φωτεινότητα ήδη στα 2ma.

Βήμα 3: Διαγράμματα

Σχήματα
Σχήματα

Ορισμένα σχόλια για το σχηματικό. Η εισαγωγή επαναφοράς δεν είναι συνδεδεμένη. Αυτή δεν είναι η καλύτερη πρακτική. Καλύτερα θα ήταν να χρησιμοποιήσετε μια αντίσταση 10K ως pull up. Αλλά λειτουργεί καλά για μένα χωρίς και εξοικονομεί αντίσταση. Για να διατηρήσω το κύκλωμα όσο το δυνατόν πιο απλό, χρησιμοποίησα τον εσωτερικό ταλαντωτή. Αυτό σημαίνει ότι εξοικονομούμε ένα κρύσταλλο και δύο μικρούς πυκνωτές. Ο εσωτερικός ταλαντωτής αφήνει τον ελεγκτή να λειτουργεί στα 1,2 MHz, η οποία είναι υπερβολικά αρκετή για τον σκοπό μας. Εάν αποφασίσετε να χρησιμοποιήσετε άλλο τροφοδοτικό από 5V ή να χρησιμοποιήσετε άλλο LED, πρέπει να υπολογίσετε την αντίσταση R1. Ο τύπος είναι: R = (Τροφοδοσία V - LED V) / 0.002A = 1650 Ohm (Τροφοδοσία = 5V, LED V = 1.7V). Χρησιμοποιώντας δύο LED χαμηλού ρεύματος αντί για ένα, ο τύπος μοιάζει με αυτόν: R = (Τροφοδοσία V - 2 * LED V) / 0,002A = 800 Ohm. Λάβετε υπόψη ότι πρέπει να προσαρμόσετε τον υπολογισμό εάν επιλέξετε άλλο τύπο LED. Η τιμή της αντίστασης R2 εξαρτάται από το χρησιμοποιούμενο LDR. 1KOhm λειτουργεί για μένα. Μπορεί να θέλετε να χρησιμοποιήσετε ένα ποτενσιόμετρο για να βρείτε την καλύτερη τιμή. Το cicuit θα πρέπει να μπορεί να ανιχνεύει αλλαγές φωτός στο κανονικό φως της ημέρας. Για εξοικονόμηση ενέργειας, το PB3 ρυθμίζεται μόνο σε υψηλό, εάν γίνει μέτρηση. Ενημέρωση: το σχηματικό ήταν παραπλανητικό. Παρακάτω είναι μια σωστή έκδοση. Ευχαριστώ, dave_chatting.

Βήμα 4: Συναρμολόγηση σε έναν πίνακα πρωτοτύπων

Συγκεντρώστε σε έναν πίνακα πρωτοτύπων
Συγκεντρώστε σε έναν πίνακα πρωτοτύπων
Συγκεντρώστε σε έναν πίνακα πρωτοτύπων
Συγκεντρώστε σε έναν πίνακα πρωτοτύπων

Αν σας αρέσει να δοκιμάζετε το κύκλωμά σας, ένας πίνακας ψωμιού είναι πολύ βολικός. Μπορείτε να συναρμολογήσετε όλα τα μέρη χωρίς να χρειάζεται να κολλήσετε τίποτα.

Βήμα 5: Προγραμματίστε το κύκλωμα

Προγραμματίστε το Κύκλωμα
Προγραμματίστε το Κύκλωμα
Προγραμματίστε το Κύκλωμα
Προγραμματίστε το Κύκλωμα

Ο ελεγκτής μπορεί να προγραμματιστεί σε διαφορετικές γλώσσες. Τα πιο χρησιμοποιημένα είναι Assembler, Basic και C. Χρησιμοποίησα το C καθώς ταιριάζει καλύτερα στις ανάγκες μου. Είχα συνηθίσει στο C πριν από δέκα χρόνια και μπόρεσα να αναβιώσω μερικές από τις γνώσεις (καλά, μόνο μερικές…). Για να γράψετε το πρόγραμμά σας, προτείνω το Eclipse με το πρόσθετο CDT. Αποκτήστε έκλειψη εδώ https://www.eclipse.org/ και το πρόσθετο εδώ https://www.eclipse.org/cdt/. Για τη μεταγλώττιση της γλώσσας C σε μικροελεγκτές AVR θα χρειαστείτε έναν μεταγλωττιστή. Τυχεροί που είμαστε, υπάρχει ένα λιμάνι του διάσημου GCC. Ονομάζεται WinAVR και μπορείτε να το βρείτε εδώ https://winavr.sourceforge.net/. Ένα πολύ καλό σεμινάριο για τον τρόπο προγραμματισμού ελεγκτών AVR με το WinAVR είναι εδώ https://www.mikrocontroller.net/articles/AVR-GCC- Φροντιστήριο. Λυπούμαστε, είναι στα γερμανικά, αλλά μπορεί να βρείτε χιλιάδες σελίδες φροντιστηρίου για το συγκεκριμένο θέμα στη γλώσσα σας, αν τις αναζητήσετε. Αφού καταρτίσετε την πηγή σας, πρέπει να μεταφέρετε το δεκαεξαδικό αρχείο στον ελεγκτή. Αυτό μπορεί να γίνει συνδέοντας τον υπολογιστή σας στο κύκλωμα χρησιμοποιώντας ISP (σε προγραμματιστή συστήματος) ή χρησιμοποιώντας αποκλειστικούς προγραμματιστές. Χρησιμοποίησα έναν ειδικό προγραμματιστή καθώς κάνει το κύκλωμα ελαφρώς ευκολότερο αποθηκεύοντας μερικά καλώδια και ένα βύσμα. Το μειονέκτημα είναι ότι πρέπει να αλλάζετε τον ελεγκτή μεταξύ του κυκλώματος και του προγραμματιστή κάθε φορά που θέλετε να ενημερώσετε το λογισμικό σας. Ο προγραμματιστής μου προέρχεται από τη διεύθυνση https://www.myavr.de/ και χρησιμοποιεί USB για σύνδεση στο φορητό υπολογιστή μου. Υπάρχουν πολλοί άλλοι γύρω και μπορείτε ακόμη και να το φτιάξετε μόνοι σας. Για την ίδια τη μεταφορά χρησιμοποίησα ένα πρόγραμμα με το όνομα avrdude που είναι μέρος της διανομής WinAVR. Ένα παράδειγμα γραμμής εντολών μπορεί να μοιάζει με αυτό:

avrdude -F -p t13 -c avr910 -P com4 -U flash: w: flickled.hex: iΣυνημμένα μπορείτε να λάβετε την πηγή και το μεταγλωττισμένο αρχείο hex.

Βήμα 6: Συγκόλληση

Συγκόλληση
Συγκόλληση

Εάν το κύκλωμά σας λειτουργεί στο breadboard, μπορείτε να το κολλήσετε.

Αυτό μπορεί να γίνει σε PCB (τυπωμένη πλακέτα cicuit), σε πρωτότυπο πίνακα ή ακόμα και χωρίς πίνακα. Αποφάσισα να το κάνω χωρίς καθώς το κύκλωμα αποτελείται μόνο από μερικά εξαρτήματα. Εάν δεν είστε εξοικειωμένοι με τη συγκόλληση, σας συνιστώ να αναζητήσετε πρώτα ένα σεμινάριο συγκόλλησης. Οι ικανότητές μου για συγκόλληση είναι λίγο σκουριασμένες, αλλά νομίζω ότι καταλαβαίνετε την ιδέα. Ελπίζω να το διασκέδασες. Άλεξ

Συνιστάται: