Γιρλάντα LED βασισμένη στο κύκλωμα attiny2313. Γιρλάντα LED για MK Attiny13

10.09.2021

Η γιρλάντα ATtiny2313 συναρμολογείται πολύ εύκολα. Σε αυτό το απλό άρθρο θα φτιάξουμε μια μίνι γιρλάντα από 4 LED.

Εσύ, το κουμπί μας, πατήθηκε ή απελευθερώθηκε; - αυτή ακριβώς είναι η ερώτηση που κάναμε στο τελευταίο άρθρο. Και ανάλογα με την κατάσταση του κουμπιού, κάναμε ένα εφέ 4 LED. Σε αυτό το άρθρο θα αναλύσουμε μια παρόμοια κατάσταση. Λοιπόν, πάμε!

Θυμάστε την κινέζικη γιρλάντα για 100 ρούβλια;

Πατάμε το κουμπί και το εφέ που αναβοσβήνει γίνεται εντελώς διαφορετικό;-) Αυτό ακριβώς θα κάνουμε σε αυτό το άρθρο;-)

Δεν θα φτιάξουμε μια κινέζικη γιρλάντα με N αριθμό λαμπτήρων, αλλά θα φτιάξουμε ένα απλοποιημένο διάγραμμα μιας τέτοιας γιρλάντας χρησιμοποιώντας ένα AVR Tiny2313 MK και τέσσερα LED. Χρησιμοποιώντας το κουμπί θα αλλάξουμε το εφέ που αναβοσβήνει.

Έτσι, η εργασία μας ακούγεται κυριολεκτικά ως εξής:

Δημιουργήστε μια γιρλάντα στον μικροελεγκτή AVR Tiny2313 από τέσσερα LED και ένα κουμπί που επιστρέφει αυτόματα (ένα κουμπί που πατιέται και απελευθερώνεται μόνο του). Πατάμε το κουμπί μία φορά - εμφανίζεται το πρώτο εφέ του κουμπιού που αναβοσβήνει, πατάμε το κουμπί δεύτερη φορά - εμφανίζεται το δεύτερο εφέ που αναβοσβήνει και ούτω καθεξής. Θα έχουμε επτά εφέ συνολικά. Η προϋπόθεση είναι ότι ενώ τα LED αναβοσβήνουν, το MK μας δεν ανταποκρίνεται στο κουμπί. Δηλαδή, μέχρι να περάσει το εφέ, το πάτημα του κουμπιού δεν αντικατοπτρίζεται στο εφέ με κανέναν τρόπο. Το αποτέλεσμα ΔΕΝ διακόπτεται. Όταν τελειώσει το εφέ, μόνο τότε το MK θα επεξεργαστεί το κουμπί.

Το καθήκον φαίνεται ξεκάθαρο. Αρχικά, ας δημιουργήσουμε ένα απλό κύκλωμα στον Proteus. Το διάγραμμα θα μοιάζει κάπως έτσι (κάντε κλικ για μεγέθυνση, ανοίγει σε νέο παράθυρο):


Ολοι; Όχι, όχι όλα! Τώρα ράβουμε το MK μας με ένα αρχείο HEX. Πού μπορώ να το πάρω; Από Atmel Studio 6. Για να το δημιουργήσουμε όμως πρέπει πρώτα να γράψουμε ένα πρόγραμμα σύμφωνα με το οποίο θα λειτουργεί το MK μας. Πώς να τα κάνετε όλα αυτά, δείτε σε αυτό το άρθρο.

Ακολουθεί το κείμενο με σχόλια:



Προσοχή επίσης στη γραμμή κώδικα:

(_delay_ms(50); // ενεργοποιήστε μια καθυστέρηση 50 χιλιοστών του δευτερολέπτου για anti-bounce

Πρόγραμμα ProteusΘα λειτουργούσε καλά χωρίς αυτή τη γραμμή κώδικα. Γιατί το βάλαμε τότε; Το θέμα είναι ότι η πραγματική κατάσταση των πραγμάτων είναι λίγο χειρότερη. Ο αποδιοπομπαίος τράγος σε αυτή την περίπτωση θα είναι το πιο ακίνδυνο κουμπί, το οποίο θα βάλουμε στο κύκλωμα εναλλαγής γιρλάντες, συναρμολογώντας το σε ένα breadboard.

Τι κάνει το κουμπί στο κύκλωμα σύμφωνα με τη σχεδίαση του κυκλώματος MK; Παρέχει ένα λογικό μηδέν ή ένα στον ακροδέκτη MK. Ετσι; Ετσι. Αλλά σε ένα πραγματικό κύκλωμα, δεν κλείνει και ανοίγει αμέσως το κύκλωμα. Κατά το κλείσιμο ή το άνοιγμα του κουμπιού, δεν έχουμε καθαρή εναλλαγή των επιπέδων σήματος από το λογικό ένα στο μηδέν και αντίστροφα. Η εναλλαγή χρησιμοποιώντας ένα κουμπί μοιάζει κάπως έτσι:

Από το λογικό ένα έως το μηδέν κάπως έτσι:


Από το μηδέν έως το ένα κάπως έτσι:


Όλη αυτή η πινακίδα κατά την εναλλαγή ενός κουμπιού ονομάζεται αναπήδηση επαφής και παρεμβαίνει στους προγραμματιστές λογικών συσκευών. Το γεγονός είναι ότι το MK μπορεί να μετρήσει αυτές τις χαοτικές παρορμήσεις είτε ως λογικό είτε ως μηδέν. Αυτή η παρεξήγηση έχει πλέον επιλυθεί με μια απλή γραμμή κώδικα.

Επισυνάπτω το SIshnik, το HEX και το αρχείο Proteus στο έργο.

Τρόποι διακόσμησης χριστουγεννιάτικο δέντροείναι πολλά, εδώ είναι ένα από αυτά.

Το σχήμα 1 δείχνει το διάγραμμα Πρωτοχρονιάτικη γιρλάντα. Περιλαμβάνει τέσσερα κανάλια στα οποία συνδέονται σειριακά συνδεδεμένα LED, όπως φαίνεται στο Σχήμα 2.

Ο πυρήνας του κυκλώματος είναι ο μικροελεγκτής PIC16F628A. Ο μικροελεγκτής λειτουργεί σύμφωνα με τον αλγόριθμο που φαίνεται στο Σχήμα 3. Ο κώδικας του προγράμματος είναι γραμμένος σε γλώσσα assembly, βλ. λίστα Garland\16F628ATEMP.ASM.

Ο πλήρης κύκλος προγραμματισμού και εντοπισμού σφαλμάτων του μικροελεγκτή PIC16F628A πραγματοποιήθηκε με χρήση (ενσωματωμένο περιβάλλον ανάπτυξης), μεταγλωττιστή MPASM v5.22 (περιλαμβάνεται στο MPLAB IDE v8.15) και MPLAB ICD 2 (εντός κυκλώματος εντοπισμού σφαλμάτων - " Debugger»). Για όσους δεν διαθέτουν τα εργαλεία που αναφέρονται παραπάνω, αλλά έχουν το δικό τους πρόγραμμα για εργασία με αρχεία HEX και έναν άλλο προγραμματιστή, μπορείτε να βρείτε το αρχείο 16F628ATEMP.HEX στο αντίστοιχο έργο. Οι τεχνικές προδιαγραφές του μικροελεγκτή βρίσκονται στην ιστοσελίδα και.

Ο μικροελεγκτής DD1 έχει λειτουργικές εξόδους RB4 – RB7, στις οποίες συνδέονται σήματα πεδίου ενίσχυσης Τρανζίστορ MOSFET VT1 – VT4. Τεχνικές προδιαγραφές για τρανζίστορ μπορείτε να βρείτε στον ιστότοπο. Οι αποχετεύσεις των τρανζίστορ συνδέονται στους ακροδέκτες push-in X2 – X5. Η τάση τροφοδοσίας φορτίου ρυθμίζεται από το τροφοδοτικό του κυκλώματος, το οποίο είναι συνδεδεμένο στο βύσμα X1. Το μέγιστο ρεύμα μεταγωγής ανά κανάλι είναι 0,5 A. Ο μικροελεγκτής DD1 δεν έχει λειτουργία αναγκαστικής επαναφοράς, ο ακροδέκτης επαναφοράς συνδέεται μέσω της αντίστασης R1 στο θετικό δυναμικό τροφοδοσίας. Για τη δημιουργία της συχνότητας ρολογιού, ο μικροελεγκτής χρησιμοποιεί μια γεννήτρια ρολογιού στο τσιπ. Η συσκευή μπορεί να λειτουργήσει στο εύρος θερμοκρασίας από – 40 °C έως +85 °C.

Η συσκευή τροφοδοτείται από AC ή μόνιμη πηγήτάση συνδεδεμένη στη φίσα X1. Η ονομαστική τάση του τροφοδοτικού είναι 12 V. Το ονομαστικό ρεύμα της τροφοδοσίας εξαρτάται από το φορτίο και είναι 0,5 - 2 A. Για τη σταθεροποίηση της τροφοδοσίας, χρησιμοποιείται ένα συμβατικό κύκλωμα: γέφυρα διόδου VD1, γραμμικός σταθεροποιητής DA1 , πυκνωτές φίλτρου C1 - C4.

Ο μικροελεγκτής είναι προγραμματισμένος με 3 εφέ φωτισμού, με βάση το εφέ “running lights”.
1) Οι γιρλάντες ανάβουν εναλλάξ και σβήνουν προς τη μία κατεύθυνση και επαναλάβετε με τον ίδιο τρόπο προς την άλλη κατεύθυνση.
2) Οι γιρλάντες ανάβουν μία μία και όταν ανάψουν και οι τέσσερις γιρλάντες αρχίζουν να σβήνουν μία μία προς την ίδια κατεύθυνση και το ίδιο επαναλαμβάνεται με την αντίστροφη σειρά.
3) 1 και 2, 3 και 4 γιρλάντες κλείνουν εναλλάξ το μάτι η μία στην άλλη. Ο μικροελεγκτής είναι προγραμματισμένος να εκτελεί έναν προκαθορισμένο αριθμό επαναλήψεων του εφέ φωτισμού. Αξίζει να σημειωθεί ότι το χρονικό διάστημα μεταξύ του φωτισμού των γιρλάντες αλλάζει (αυξάνεται, φτάνει σε μια κορυφή και στη συνέχεια πέφτει), δηλαδή, είναι ορατό το αποτέλεσμα της "προσωρινής αιώρησης". Για να δείξετε καλύτερα τα εφέ φωτισμού, οι γιρλάντες (όπως αριθμούνται στο διάγραμμα) θα πρέπει να τοποθετηθούν με τη σειρά στο ίδιο επίπεδο. Σε αυτή την περίπτωση, διακοσμήστε το έλατο από τις ρίζες μέχρι την κορυφή (κάθετα, χωρίζοντας το έλατο σε τέσσερις τομείς για γιρλάντες), από 1 έως 4 γιρλάντες, αντίστοιχα.

Το τροφοδοτικό των γιρλάντες συνδέεται με την πηγή ρεύματος που είναι συνδεδεμένη στον σύνδεσμο X1, επομένως είναι απαραίτητο να υπολογιστούν τα συνδεδεμένα σε σειρά στοιχεία εκπομπής φωτός (LED, λαμπτήρες πυρακτώσεως). Η συνολική τάση τροφοδοσίας βρίσκεται από το άθροισμα των τάσεων των στοιχείων εκπομπής φωτός που συνδέονται σε σειρά. Για παράδειγμα, θα υπάρχουν 6 φωτεινά LED συνδεδεμένα σε σειρά, σχεδιασμένα για τάση 2 - 2,5 V σε μία γιρλάντα. Δεδομένου ότι οι λυχνίες LED καταναλώνουν 20 mA, είναι δυνατή η παράλληλη σύνδεση των εν σειρά LED σε σειρές.

Η τοποθέτηση των εξαρτημάτων είναι μονόπλευρη. Τα μεγέθη οπών κυμαίνονται από 0,7 mm έως 3 mm. Μπορείτε να βρείτε αρχεία για την κατασκευή μιας πλακέτας τυπωμένου κυκλώματος στον φάκελο.

PCBφαίνεται στο Σχήμα 4. Για τη θέση των εξαρτημάτων, δείτε την Εικόνα 5.

ΣΕ αυτή τη συσκευήΤα παρακάτω εξαρτήματα μπορούν να αντικατασταθούν. Μικροελεγκτής DD1 από τη σειρά PIC16F628A-I/P-xxx με συχνότητα ρολογιού λειτουργίας 20 MHz σε πακέτο DIP18. Σταθεροποιητής τάσης DA1 οικιακής χρήσης KR142EN5A (5 V, 1,5 A). MOSFET πεδίουτρανζίστορ και VT1 - VT4 (κανάλι N) σε συσκευασία I-Pak (TO-251AA), ανάλογα των χαρακτηριστικών που υποδεικνύονται στο διάγραμμα είναι κατάλληλα. Γέφυρα διόδου VD1 για τάση λειτουργίας τουλάχιστον 25 V και ρεύμα τουλάχιστον 2 A. Ο σύνδεσμος ισχύος X1 είναι παρόμοιος με αυτόν που φαίνεται στο διάγραμμα με κεντρική επαφή d=2,1 mm. Μη πολικοί πυκνωτές C1 και C2 με ονομαστική τιμή 0,01 – 0,47 µF x 50 V. Οι ηλεκτρολυτικοί πυκνωτές C3 και C4 έχουν την ίδια χωρητική ονομαστική ικανότητα και η τάση δεν είναι χαμηλότερη από αυτή που υποδεικνύεται στο διάγραμμα. Πολύχρωμα LED VD1 – VD6 για τάση 2 - 2,5 V.

Κατάλογος ραδιοστοιχείων

Ονομασία Τύπος Ονομασία Ποσότητα ΣημείωμαΚατάστημαΤο σημειωματάριό μου
DD1 MK PIC 8-bit

PIC16F628A

1 Στο σημειωματάριο
DA1 Γραμμικός ρυθμιστής

L7805AB

1 KR142EN5A Στο σημειωματάριο
VT1-VT4 Τρανζίστορ MOSFET

IRLU024N

4 Στο σημειωματάριο
VD1 Γέφυρα διόδου2W10M1 Στο σημειωματάριο
Γ1 Πυκνότητα0,1 μF1 Στο σημειωματάριο
Γ2 Πυκνότητα0,1 μF1 Στο σημειωματάριο
C3 100uF 10V1 Στο σημειωματάριο
Γ4 Ηλεκτρολυτικό πυκνωτή220uF 25V1

Όλοι γνωρίζουμε τις γιρλάντες των χριστουγεννιάτικων δέντρων που αποτελούνται από πολύχρωμες λάμπες. Ωστόσο, σε πρόσφαταΤα προϊόντα που βασίζονται σε LED γίνονται όλο και πιο δημοφιλή.

Πώς σχεδιάζονται, ποιο διάγραμμα σύνδεσης έχουν και τι πρέπει να κάνετε εάν η γιρλάντα σταματήσει να λάμπει θα συζητηθεί λεπτομερώς σε αυτό το άρθρο.

Από τι αποτελείται μια γιρλάντα χριστουγεννιάτικου δέντρου;

Τι είναι μια γιρλάντα από LED, είναι χειρότερη ή καλύτερη από μια κανονική;

Εξωτερικά, αυτό είναι σχεδόν το ίδιο προϊόν με πριν - καλώδια, λαμπτήρες (LED), μονάδα ελέγχου.

Το πιο σημαντικό στοιχείο είναι, φυσικά, η μονάδα ελέγχου. Ένα μικρό πλαστικό κουτί στο οποίο υποδεικνύονται διάφοροι τρόποι λειτουργίας του οπίσθιου φωτισμού.

Μπορούν να αλλάξουν πατώντας απλά ένα κουμπί. Η ίδια η μονάδα μπορεί να προστατεύεται αρκετά καλά με επίπεδο προστασίας από την υγρασία και τη σκόνη IP44.

Τι είναι μέσα; Για να το ανοίξετε, χρησιμοποιήστε την αιχμηρή άκρη ενός μαχαιριού ή ένα λεπτό κατσαβίδι για να τραβήξετε τα μάνδαλα από κάτω και να αφαιρέσετε το προστατευτικό κάλυμμα.

Παρεμπιπτόντως, μερικές φορές είναι κολλημένο, και όχι μόνο κάθεται στα μάνδαλα.

Πρώτα απ 'όλα, μέσα θα δείτε καλώδια κολλημένα στην πλακέτα. Το παχύτερο καλώδιο είναι συνήθως το καλώδιο δικτύου, που παρέχει τάση 220V.

Συγκολλημένο στον πίνακα:

  • το χειριστήριο που δημιουργεί όλα τα εφέ φωτισμού
  • θυρίστορ, καθένα από αυτά πηγαίνει σε ξεχωριστό κανάλι της γιρλάντας
  • αντιστάσεις
  • πυκνότητα
  • και διοδικές γέφυρες

Ο αριθμός των στοιχείων σανίδας εξαρτάται κυρίως από τον αριθμό των καναλιών φωτός της γιρλάντας. Τα πιο ακριβά μοντέλα μπορεί να έχουν ασφάλεια.

Διάγραμμα γιρλάντας LED

Η τάση δικτύου εναλλασσόμενου ρεύματος παρέχεται στον ελεγκτή ισχύος μέσω αντιστάσεων και μιας γέφυρας διόδου, που έχουν ήδη διορθωθεί και εξομαλυνθεί μέσω ενός πυκνωτή.

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

Ο ελεγκτής με τη σειρά του ελέγχει τα θυρίστορ. Ο αριθμός τους εξαρτάται από τον αριθμό των καναλιών οπίσθιου φωτισμού. Και μετά τα θυρίστορ ισχύς εξόδουπηγαίνει απευθείας στα LED στη γιρλάντα.

Όσο περισσότερες τέτοιες έξοδοι, τόσο πιο ποικίλα χρώματα μπορεί να έχει το προϊόν. Εάν υπάρχουν μόνο δύο από αυτά, αυτό σημαίνει ότι μόνο δύο μέρη (ή τα μισά) της γιρλάντας θα λειτουργούν σε διαφορετικούς τρόπους λειτουργίας - κάποιοι λαμπτήρες θα σβήσουν, άλλοι θα ανάψουν κ.λπ.

Στην πραγματικότητα, αυτές οι δύο γραμμές διόδων θα συνδεθούν σε δύο κανάλια σε σειρά. Θα συνδεθούν μεταξύ τους στο τελικό σημείο - το τελευταίο LED.

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

Όσο πιο ακριβή είναι η γιρλάντα που έχετε, τόσο περισσότερα εξερχόμενα κανάλια και καλωδιώσεις θα φύγουν από τον πίνακα ελέγχου.

Ταυτόχρονα, εάν ακολουθήσετε τα ίχνη της πλακέτας, μία από τις εξόδους τάσης δικτύου τροφοδοτείται πάντα απευθείας στο τελικό LED της γιρλάντας, παρακάμπτοντας όλα τα στοιχεία του κυκλώματος.

Αιτίες δυσλειτουργίας

Οι καταστάσεις με δυσλειτουργίες γιρλάντας είναι πολύ διαφορετικές.

Ταυτόχρονα, να θυμάστε ότι το πιο σημαντικό στοιχείο - το μικροκύκλωμα στην πλακέτα - "καίγεται" πολύ, πολύ σπάνια.

Σε περίπου 5-10% όλων των περιπτώσεων.

  • Κακή επαφή στα καλώδια
  • LED σε έναν από τους λαμπτήρες
  • Πυκνότητα
  • Αντίσταση
  • Μία από τις διόδους
  • Ένα από τα θυρίστορ
  • Τσιπ ελεγκτή

Κακή συγκόλληση

Εάν ο οπίσθιος φωτισμός σας σταματήσει ξαφνικά να λειτουργεί, πρώτα από όλα ελέγχετε πάντα τη συγκόλληση των καλωδίων τροφοδοσίας και εξόδου. Είναι πολύ πιθανό ότι ολόκληρη η επαφή συγκρατήθηκε μόνο με θερμή κόλλα.

Αξίζει να μετακινήσετε την καλωδίωση και τις επαφές ως συνήθως.

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

Για να μην συμβεί αυτό, όλες οι επαφές μετά τη συγκόλληση πρέπει να καλύπτονται με ένα παχύ στρώμα κόλλας θερμής τήξης.

Και όταν αφαιρείτε τέτοιες φλέβες, συνιστάται να μην χρησιμοποιείτε μαχαίρι, αλλά αναπτήρα. Αντί να σβήσετε τη μόνωση με μια λεπίδα, θερμαίνετε ελαφρά και λιώστε τη με έναν αναπτήρα.

Μετά από αυτό, απλώς αφαιρέστε το εξωτερικό στρώμα με τα νύχια σας χωρίς να καταστρέψετε τις ίδιες τις φλέβες.

Ζημιά LED

Εάν οι επαφές των καλωδίων είναι εντάξει και αμαρτάνετε σε μία από τις διόδους, πώς μπορείτε να ελέγξετε αν είναι ελαττωματική; Και το πιο σημαντικό, πώς να το βρείτε ανάμεσα σε όλη τη σειρά των λαμπτήρων;

Πρώτα απ 'όλα, αποσυνδέστε τη γιρλάντα από την πρίζα. Ξεκινήστε με την τελευταία δίοδο. Το καλώδιο τροφοδοσίας έρχεται απευθείας από τη μονάδα ελέγχου.

Ένας εξερχόμενος αγωγός είναι κολλημένος στο ίδιο πόδι. Πηγαίνει στον επόμενο κλάδο του καναλιού φωτός. Πρέπει επίσης να δοκιμάσετε τη δίοδο μεταξύ των δύο καλωδίων τροφοδοσίας (είσοδος-έξοδος).

Θα χρειαστείτε ένα πολύμετρο και τους κάπως εκσυγχρονισμένους ανιχνευτές του.

Οι λεπτές βελόνες είναι σφιχτά δεμένες στις άκρες των ανιχνευτών δοκιμής με ένα νήμα έτσι ώστε τα σημεία τους να προεξέχουν το πολύ 5-8 mm.

Τυλίξτε τα πάντα από πάνω με ένα παχύ στρώμα ηλεκτρικής ταινίας.

Δεδομένου ότι τα LED είναι συγκολλημένα, δεν θα μπορείτε απλά να τα τραβήξετε έξω από τη λάμπα όπως στις κανονικές γιρλάντες.

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

Και αρχίζετε να τρυπάτε διαδοχικά τα καλώδια τροφοδοσίας κοντά σε κάθε ύποπτη δίοδο.

Εάν έχετε μια γιρλάντα όχι 220V, αλλά 12V ή 24V, η οποία είναι συνδεδεμένη από αυτό το τροφοδοτικό:

τότε η λυχνία LED λειτουργίας από την μπαταρία του πολύμετρου θα πρέπει να ανάψει.

Εάν πρόκειται για οπίσθιο φωτισμό 220 V, τότε ελέγξτε τις ενδείξεις του πολύμετρου.

Στα στοιχεία εργασίας θα είναι περίπου τα ίδια, αλλά το ελαττωματικό θα παρουσιάσει θραύση.

Η μέθοδος είναι βέβαια βάρβαρη και χαλάει τη μόνωση, αλλά λειτουργεί αρκετά καλά. Είναι αλήθεια ότι μετά από τέτοια τρυπήματα, είναι καλύτερο να μην χρησιμοποιείτε γιρλάντες δρόμου σε εξωτερικούς χώρους.

Χαοτικό αναβοσβήνει

Υπάρχει μια κατάσταση όταν ανάβεις μια γιρλάντα και αρχίζει να αναβοσβήνει χαοτικά, άλλοτε πιο φωτεινό, άλλοτε πιο αμυδρό. Ταξινομεί μέσα από τα κανάλια από μόνο του.

Γενικά, έχει κανείς την εντύπωση ότι δεν πρόκειται για κάποιο είδος εργοστασιακού εφέ, αλλά σαν να έχει «τρελαθεί» η γιρλάντα.

Τις περισσότερες φορές το πρόβλημα εδώ είναι ο ηλεκτρολυτικός πυκνωτής. Μπορεί να φουσκώσει και να φουσκώσει λίγο, και αυτό θα είναι καθαρά ορατό ακόμα και με γυμνό μάτι.

Όλα μπορούν να λυθούν με την αντικατάστασή του. Η ονομαστική αξία αναγράφεται στη θήκη, ώστε να μπορείτε εύκολα να αγοράσετε και να επιλέξετε ένα παρόμοιο σε καταστήματα ανταλλακτικών ραδιοφώνου.

Εάν αντικαταστήσατε τον πυκνωτή, αλλά δεν έδωσε κανένα αποτέλεσμα, πού να κοιτάξετε μετά; Πιθανότατα μια από τις αντιστάσεις έχει καεί (σπάσει). Είναι αρκετά προβληματικό να προσδιοριστεί οπτικά η ανάλυση. Θα χρειαστείτε έναν ελεγκτή.

Παίρνετε μετρήσεις αντίστασης, έχοντας προηγουμένως μάθει την ονομαστική (κανονική) τιμή της από τις σημάνσεις. Εάν δεν ταιριάζει, αλλάξτε το.

Μέρος της γιρλάντας δεν λάμπει

Όταν κάποιο από τα κανάλια στη γιρλάντα δεν λειτουργεί πλήρως, μπορεί να υπάρχουν δύο λόγοι.

Για παράδειγμα, μια βλάβη σε ένα από τα θυρίστορ ή τις διόδους που ευθύνονται για αυτό.
Για να βεβαιωθείτε για αυτό σίγουρα, απλώς ξεκολλήστε την καλωδίωση αυτού του καναλιού στην πλακέτα από τη θέση του και συνδέστε εκεί το διπλανό κανάλι, το οποίο είναι γνωστό ότι λειτουργεί.

Και εάν ταυτόχρονα ένα άλλο κανάλι σταματήσει να λειτουργεί, τότε το πρόβλημα δεν είναι στην ίδια τη γιρλάντα, αλλά στα εξαρτήματα της πλακέτας του - ένα θυρίστορ ή μια δίοδο.

Τα ελέγχεις με ένα πολύμετρο, βρίσκεις αυτά που ταιριάζουν με τις παραμέτρους και τα αλλάζεις.

Η γιρλάντα λάμπει αμυδρά

Δεν υπάρχουν επίσης εντελώς προφανή ατυχήματα, όταν τα LED ενός ξεχωριστού καναλιού φαίνεται να είναι αναμμένα, αλλά μάλλον αμυδρά σε σύγκριση με τα άλλα.

Τι σημαίνει αυτό; Το κύκλωμα του ελεγκτή λειτουργεί καλά. Όταν πατάτε το κουμπί, αλλάζουν όλες οι λειτουργίες.

Ο έλεγχος των παραμέτρων της γέφυρας διόδου και της αντίστασης με έναν ελεγκτή επίσης δεν αποκαλύπτει κανένα πρόβλημα. Σε αυτή την περίπτωση, το μόνο που μένει να φταίει είναι τα καλώδια. Είναι ήδη αρκετά εύθραυστα και όταν σπάει ένα τέτοιο σύρμα πολλαπλών πυρήνων, η διατομή του μειώνεται ακόμη περισσότερο.

Ως αποτέλεσμα, η γιρλάντα απλά δεν είναι σε θέση να εκκινήσει τα LED στη λειτουργία ονομαστικής φωτεινότητας, καθώς απλά δεν έχουν αρκετή τάση. Πώς να βρείτε αυτή τη σκισμένη φλέβα σε μια μακριά γιρλάντα;

Για να το κάνετε αυτό, θα πρέπει να περπατήσετε κατά μήκος ολόκληρης της γραμμής με τα χέρια σας. Ενεργοποιήστε τη γιρλάντα και ξεκινήστε να μετακινείτε τα καλώδια κοντά σε κάθε LED μέχρι να ανάψει όλος ο οπίσθιος φωτισμός σε πλήρη ισχύ.

Σύμφωνα με το νόμο του Μέρφι, αυτό μπορεί να είναι το τελευταίο κομμάτι της γιρλάντας, οπότε να είστε υπομονετικοί.

Μόλις βρείτε αυτήν την περιοχή, σηκώστε ένα συγκολλητικό σίδερο και αποσυναρμολογήστε τα καλώδια στο LED. Καθαρίστε τα με έναν αναπτήρα και κολλήστε τα όλα ξανά.

Στη συνέχεια, μονώστε την περιοχή συγκόλλησης με θερμική συρρίκνωση.

Μου ζήτησαν να συναρμολογήσω με κάποιο τρόπο μια απλή και φθηνή γιρλάντα σε έναν μικροελεγκτή. Βρήκα τον φθηνότερο μικροελεγκτή AVR οκτώ bit Attiny13. Σε αυτό το άρθρο θέλω να περιγράψω βήμα προς βήμα τη διαδικασία συναρμολόγησης αυτής της συσκευής.

Από τις λεπτομέρειες θα χρειαστούμε:
Μικροελεγκτής Attiny13 - 1 τεμ.
Υποδοχή DIP-8 - 1 τεμ.
Αντίσταση 4,7 kOhm - 1 τεμ.
Αντίσταση 100 Ohm - 5 τεμ.
Καρφίτσες PLS - 2 τεμ.
LED (οποιαδήποτε) - 5 τεμ.
Υποδοχή BLS-2 - 1 τεμ.
Θήκη μπαταριών - 1 τεμ.

Χώρισα τη συναρμολόγηση της συσκευής σε διάφορα στάδια:
Στάδιο 1. Κατασκευή του πίνακα
Στάδιο 2. Συγκόλληση εξαρτημάτων ραδιοφώνου στην πλακέτα
Στάδιο 3. Κατασκευή προγραμματιστή για το φλας του υλικολογισμικού του μικροελεγκτή
Στάδιο 4. Υλικολογισμικό μικροελεγκτή

Στάδιο 1. Κατασκευή του πίνακα

Προσοχή! Δεν είναι απολύτως απαραίτητο να φτιάξετε μια σανίδα, μπορείτε να χρησιμοποιήσετε μια σανίδα. Αλλά είναι ακόμα καλύτερο και πιο όμορφο να φτιάξετε μια πλακέτα για τη συσκευή.

Άρα, πρώτα χρειαζόμαστε τα εξής:
Ένα κομμάτι textolite (μέγεθος 45 x 30 mm)

Μικρή χωρητικότητα
Νερό
Μόνιμος μαρκαδόρος
Λίγο τεχνικό αλκοόλ ή κολόνια
Γόμα

Η επιφάνεια του PCB καλύπτεται με φύλλο χαλκού και το φύλλο, όπως κάθε άλλο μέταλλο, έχει την ιδιότητα να οξειδώνεται στον αέρα. Επομένως, ας πάρουμε μια γόμα και ας σκουπίσουμε το χάλκινο μέρος του PCB.

Το ζωγράφισες; Μεγάλος. Τώρα πρέπει να χαράξετε την σανίδα χρησιμοποιώντας χλωριούχο σίδηρο.
Κατά τη χάραξη, ο χλωριούχος σίδηρος τρώει (δεν βάφεται με μαρκαδόρο) μέρος της επικάλυψης χαλκού του textolite.

Και έτσι, δεδομένου ότι το χλωριούχο σίδηρο είναι σκόνη, πρέπει να το αραιώσουμε σε νερό.
Εδώ είναι η αναλογία: 100 γρ. χλωριούχος σίδηρος ανά 700 ml νερού. Αλλά δεν χρειαζόμαστε τόσο πολύ, οπότε παίρνουμε 10 γρ. ανά 100 ml. νερό. Στη συνέχεια, χαμηλώνουμε τη σανίδα μας σε αυτή τη λύση.

Και περιμένουμε περίπου δύο ώρες (μέχρι το διάλυμα χλωριούχου σιδήρου να φάει το άβαφο μέρος της επικάλυψης χαλκού του PCB).

Αφού χαραχθεί η σανίδα, βγάλτε την από το δοχείο και ξεπλύνετε με τρεχούμενο νερό.

Εδώ είναι μια φωτογραφία του χαραγμένου πίνακα.

Τώρα σβήνουμε τον μαρκαδόρο από τον πίνακα (το τεχνικό οινόπνευμα ή η κολόνια είναι τέλεια για αυτό).

Επειδή δεν έχω ηλεκτρικό τρυπάνι χρησιμοποιώ τη σχολική μου πυξίδα

Αφού γίνουν όλες οι τρύπες στον πίνακα, πρέπει να τον καθαρίσετε με λεπτό γυαλόχαρτο.

Τώρα ανάψτε το κολλητήρι και κασσιτερώστε την πλακέτα. Παρακάτω είναι μια φωτογραφία της κονσερβοποιημένης σανίδας.

Οποιοδήποτε κολοφώνιο έχει απομείνει στη σανίδα μπορεί να σκουπιστεί με βιομηχανικό οινόπνευμα ή αφαίρεση βερνικιού νυχιών.

Η σανίδα είναι έτοιμη! Ολοκληρώθηκε το 1ο στάδιο!

Στάδιο 2. Συγκόλληση εξαρτημάτων ραδιοφώνου στην πλακέτα

Αφού φτιάξετε την πλακέτα (ή ίσως κάποιος δεν την έφτιαξε, αλλά αποφάσισε να χρησιμοποιήσετε μια πλακέτα), πρέπει να κολλήσετε τα εξαρτήματα του ραδιοφώνου πάνω της.

Διάγραμμα μιας γιρλάντας LED στον μικροελεγκτή Attiny13:

Συγκολλάμε τα εξαρτήματα του ραδιοφώνου στην πλακέτα (σύμφωνα με το παραπάνω διάγραμμα) και παίρνουμε την ακόλουθη συσκευή:

Ολόκληρη η συσκευή είναι σχεδόν έτοιμη, το μόνο που μένει είναι να αναβοσβήνει ο μικροελεγκτής.
Ολοκληρώθηκε το 2ο στάδιο!

Στάδιο 3. Κατασκευή προγραμματιστή για το φλας του υλικολογισμικού του μικροελεγκτή

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

Θα συναρμολογήσουμε τον προγραμματιστή στη θύρα LPT του υπολογιστή. Εδώ είναι το διάγραμμα προγραμματιστή:

Στην εικόνα στο ορθογώνιο (όπου είναι η θύρα LPT) είναι ο αριθμός επαφής όπου θα συνδέσετε την καλωδίωση. Προσπαθήστε να κάνετε τα καλώδια πιο κοντά (όχι περισσότερο από 20 cm). Εάν τα καλώδια είναι μεγαλύτερα από 20 cm, τότε κατά τη διάρκεια του υλικολογισμικού ή της ανάγνωσης του μικροελεγκτή θα υπάρξουν σφάλματα που μπορεί να κοστίσουν στον μικροελεγκτή τη ζωή του!
Να είστε πολύ προσεκτικοίΗ θύρα LPT καίγεται πολύ εύκολα!

Για να φτιάξουμε έναν προγραμματιστή θα χρειαστούμε:
Υποδοχή 25 ακίδων για Θύρα LPT(μπαμπάς)
Αντιστάσεις 150 Ohm 4 τεμ.
Αντίσταση 10 kOhm 1 τεμ.
Μπαταρία 3 volt

Εδώ είναι η δική μου έκδοση του προγραμματιστή:

Τώρα μπορείτε να ξεκινήσετε να αναβοσβήνει το υλικολογισμικό του μικροελεγκτή.

Στάδιο 4. Υλικολογισμικό μικροελεγκτή

Προσοχή! Αυτό το στάδιο περιγράφει το υλικολογισμικό του μικροελεγκτή Attiny13 χρησιμοποιώντας ένα πρόγραμμα και έναν προγραμματιστή για τη θύρα LPT.

Όλοι γνωρίζουν ότι χωρίς υλικολογισμικό, ένας μικροελεγκτής είναι ένα τσιπ που δεν κάνει τίποτα και για να ελέγχει τη γιρλάντα μας, πρέπει να το φλασάρουμε.
Για υλικολογισμικό θα χρησιμοποιήσουμε αυτό που φτιάξαμε προηγουμένως Προγραμματιστής LPT, υπολογιστή και πρόγραμμα PonyProg2000.
Πρώτα, κατεβάστε το υλικολογισμικό για τη γιρλάντα (σύνδεσμος στο κάτω μέρος της σελίδας), στη συνέχεια κατεβάστε το πρόγραμμα PonyProg2000 από το Διαδίκτυο και εγκαταστήστε το.

Τώρα όλα είναι σχεδόν έτοιμα για να αναβοσβήνει το υλικολογισμικό του μικροελεγκτή. Το μόνο που μένει είναι να συνδέσετε τον μικροελεγκτή στον προγραμματιστή και να συνδέσετε τον προγραμματιστή στον υπολογιστή.
Αφού συνδεθούν όλα, ξεκινήστε το πρόγραμμα PonyProg2000.

Θα εμφανιστεί το ακόλουθο παράθυρο:

Στο παράθυρο, κάντε κλικ στο κουμπί «Ναι».

Μετά τη βαθμονόμηση, θα εμφανιστεί το ακόλουθο μήνυμα:

Αυτό είναι όλο, το πρόγραμμα είναι βαθμονομημένο!

Τώρα μεταβείτε στις ρυθμίσεις (Setup > Interface Setup…). Θα εμφανιστεί το ακόλουθο παράθυρο:

Στη συνέχεια, στο κύριο παράθυρο του προγράμματος επιλέξτε "AVR micro", "Attiny13"

Τώρα το μόνο που απομένει είναι να ανοίξετε το υλικολογισμικό για να το κάνετε αυτό, επιλέξτε «Άνοιγμα αρχείου συσκευής…» στο μενού «Αρχείο». Στη λίστα "Τύπος αρχείου:", επιλέξτε "*.hex" και υποδείξτε τη διαδρομή προς το υλικολογισμικό της γιρλάντας LED μας, κάντε κλικ στο κουμπί "Άνοιγμα".

Στο κύριο παράθυρο, κάντε κλικ στο κουμπί "Εγγραφή συσκευής":

Αφού εμφανιστεί αυτό το μήνυμα:

Ο μικροελεγκτής αναβοσβήνει και λειτουργεί! Αλλά περιμένετε, πρέπει ακόμα να ρυθμίσουμε τα bits ασφαλειών. Παρεμπιπτόντως, τα bit ασφαλειών είναι ένα τμήμα (4 byte). Μικροελεγκτές AVRστο οποίο είναι αποθηκευμένη η διαμόρφωση του μικροελεγκτή.

Για να ορίσετε bits ασφαλειών στο μενού "Command", επιλέξτε "Security and Configuration Bits...", στο παράθυρο που εμφανίζεται, κάντε κλικ στο κουμπί "Read" και επιλέξτε τα πλαίσια όπως στην παρακάτω εικόνα:

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

Εν κατακλείδι, θα ήθελα να πω ότι έγραψα το πρόγραμμα σε περιβάλλον (επισυνάπτεται η πηγή), το πρόγραμμα έχει 9 υπορουτίνες εφέ, επομένως τίποτα δεν σας εμποδίζει να δημιουργήσετε τα δικά σας εφέ.

Από προεπιλογή η συσκευή έχει 4 διαφορετικά εφέ:
1. Σημείο τρεξίματος
2. Γραμμή τρεξίματος
3. Εναλλαγή LED
4. Αναβοσβήνει

Μπορείτε να κατεβάσετε το υλικολογισμικό, τις πηγές, το έργο στο Proteus παρακάτω

Κατάλογος ραδιοστοιχείων

Ονομασία Τύπος Ονομασία Ποσότητα ΣημείωμαΚατάστημαΤο σημειωματάριό μου
Γιρλάντα
U1 MK AVR 8-bit

ATtiny13

1 Στο σημειωματάριο
R1-R5 Αντίσταση

300 Ohm

5 Στο σημειωματάριο
R6 Αντίσταση

4,7 kOhm

1 Στο σημειωματάριο
D1-D5 LED 5 Στο σημειωματάριο
Πίνακας 1 DIP-8 Στο σημειωματάριο
Αντίσταση

Όπως λέει ο κόσμος - ετοιμάστε το έλκηθρο σας το καλοκαίρι...
Σίγουρα επάνω ΠρωτοχρονιάΣτολίζεις το χριστουγεννιάτικο δέντρο με κάθε λογής γιρλάντες και πιθανότατα έχουν γίνει εδώ και καιρό βαρετό με τη μονοτονία του βλεφαρίσματος τους. Θα ήθελα να κάνω κάτι ώστε, ουάου, να αναβοσβήνει ακριβώς όπως στα χριστουγεννιάτικα δέντρα της πρωτεύουσας, μόνο σε μικρότερη κλίμακα. Ή, ως έσχατη λύση, κρεμάστε το στο παράθυρο ώστε αυτή η ομορφιά να φωτίζει την πόλη από τον 5ο όροφο.
Αλλά δυστυχώς, δεν υπάρχουν τέτοιες γιρλάντες προς πώληση.

Στην πραγματικότητα, αυτό ακριβώς είναι το πρόβλημα που έπρεπε να λυθεί πριν από δύο χρόνια. Εξάλλου, λόγω τεμπελιάς πέρασαν 2 χρόνια από ιδέα σε υλοποίηση, ως συνήθως, και όλα έγιναν τον τελευταίο μήνα. Στην πραγματικότητα, θα έχετε περισσότερο χρόνο (ή δεν καταλαβαίνω τίποτα από την ανθρώπινη ψυχολογία, και όλα θα γίνουν ακριβώς το ίδιο τις τελευταίες 2 εβδομάδες πριν από το νέο έτος;).

Το αποτέλεσμα είναι ένας αρκετά απλός σχεδιασμός μεμονωμένων μονάδων με LED, και ένα κοινό που μεταδίδει εντολές από τον υπολογιστή στο δίκτυο αυτών των μονάδων.

Η πρώτη έκδοση της μονάδας σχεδιάστηκε για να τα συνδέει στο δίκτυο μέσω δύο καλωδίων, έτσι ώστε να υπάρχει λιγότερη σύγχυση και όλα αυτά - αλλά δεν λειτούργησε, τελικά χρειάστηκε ένας αρκετά ισχυρός και υψηλής ταχύτητας διακόπτης για να αλλάξετε την ισχύ ακόμη και ενός μικρού αριθμού μονάδων - μια προφανής υπερβολή για την απλότητα του σχεδιασμού, γι 'αυτό έδωσα προτίμηση το τρίτο καλώδιο δεν είναι τόσο βολικό, αλλά είναι πολύ πιο εύκολο να οργανώσετε ένα κανάλι μετάδοσης δεδομένων.

Πώς λειτουργούν όλα.

Το ανεπτυγμένο δίκτυο είναι ικανό να διευθύνει έως και 254 slave modules, τα οποία θα ονομάζονται περαιτέρω SLAVE - συνδέονται μόνο με 3 καλώδια, όπως μαντέψατε - δύο καλώδια είναι +12V τροφοδοσίας, κοινά και το τρίτο είναι σήμα.
έχουν ένα απλό σχέδιο:


Όπως μπορείτε να δείτε, υποστηρίζει 4 κανάλια - Κόκκινο, Πράσινο, Μπλε και Βιολετί.
Είναι αλήθεια ότι σύμφωνα με τα αποτελέσματα των πρακτικών δοκιμών, το μωβ είναι καθαρά ορατό μόνο από κοντά, αλλά πώς! Επίσης, λόγω του γεγονότος ότι τα χρώματα βρίσκονται πολύ μακριά το ένα από το άλλο, η ανάμειξη των χρωμάτων φαίνεται μόνο από 10 μέτρα μακριά, εάν χρησιμοποιείτε LED RGB η κατάσταση θα είναι κάπως καλύτερη.
Για να απλοποιήσουμε το σχέδιο, έπρεπε επίσης να εγκαταλείψουμε σταθεροποίηση χαλαζία- πρώτον αφαιρεί η επιπλέον απόσυρση και δεύτερον το κόστος αντηχείο χαλαζίααρκετά αισθητό και τρίτον - δεν υπάρχει επείγουσα ανάγκη για αυτό.
Ένας προστατευτικός καταρράκτης συναρμολογείται στο τρανζίστορ έτσι ώστε η θύρα του ελεγκτή να μην χτυπηθεί από στατικά - η γραμμή μπορεί να είναι ακόμα αρκετά μεγάλη, σε ακραίες περιπτώσεις μόνο το τρανζίστορ θα υποφέρει. Ο καταρράκτης υπολογίζεται σε MicroCap και έχει κατά προσέγγιση κατώφλι απόκρισης περίπου 7 βολτ και ασθενή εξάρτηση του κατωφλίου από τη θερμοκρασία.

Φυσικά, σύμφωνα με τις καλύτερες παραδόσεις, όλες οι μονάδες ανταποκρίνονται στον αριθμό διεύθυνσης 255 - με αυτόν τον τρόπο μπορείτε να τις απενεργοποιήσετε όλες ταυτόχρονα με μία εντολή.

Μια μονάδα που ονομάζεται MASTER είναι επίσης συνδεδεμένη στο δίκτυο - είναι ένας ενδιάμεσος μεταξύ του υπολογιστή και του δικτύου των υποτελών μονάδων SLAVE. Μεταξύ άλλων, είναι μια πηγή χρόνου αναφοράς για τον συγχρονισμό των υποτελών μονάδων ελλείψει σταθεροποίησης χαλαζία σε αυτά.

Σχέδιο:

Το κύκλωμα περιέχει προαιρετικά ποτενσιόμετρα - μπορούν να χρησιμοποιηθούν σε πρόγραμμα υπολογιστή για βολικό και λειτουργικές ρυθμίσειςεπιθυμητές παραμέτρους, ενεργοποιημένη αυτή τη στιγμήΑυτό υλοποιείται μόνο στο δοκιμαστικό πρόγραμμα με τη μορφή της δυνατότητας εκχώρησης οποιουδήποτε από τα ποτενσιόμετρα σε οποιοδήποτε από τα 4 κανάλια. Το κύκλωμα συνδέεται με έναν υπολογιστή μέσω ενός μετατροπέα διασύνδεσης USB-UART σε ένα τσιπ FT232.

Ένα παράδειγμα ενός πακέτου που αποστέλλεται στο δίκτυο:

Η αρχή του:

Ηλεκτρικά χαρακτηριστικά του σήματος: το log.0 αντιστοιχεί σε +9...12V και το log.1 αντιστοιχεί σε 0...5V.

Όπως μπορείτε να δείτε, τα δεδομένα μεταδίδονται διαδοχικά, με σταθερή ταχύτητα 4 bit. Αυτό οφείλεται στο απαραίτητο περιθώριο σφάλματος στην ταχύτητα λήψης δεδομένων - οι μονάδες SLAVE δεν διαθέτουν σταθεροποίηση χαλαζία και αυτή η προσέγγιση εγγυάται τη λήψη δεδομένων όταν η ταχύτητα μετάδοσης αποκλίνει έως +-5% μεγαλύτερη από αυτή που αντισταθμίζεται προγραμματική μέθοδοςμε βάση τη μέτρηση ενός βαθμονομημένου διαστήματος στην αρχή της μετάδοσης δεδομένων, το οποίο παρέχει αντίσταση στη μετατόπιση συχνότητας αναφοράς κατά +-10%.

Στην πραγματικότητα, ο αλγόριθμος λειτουργίας της μονάδας MASTER δεν είναι τόσο ενδιαφέρον (είναι αρκετά απλός - λαμβάνουμε δεδομένα μέσω UART και τα προωθούμε στο δίκτυο των slave συσκευών), όλες οι πιο ενδιαφέρουσες λύσεις υλοποιούνται σε μονάδες SLAVE, οι οποίες στην πραγματικότητα επιτρέπουν να προσαρμοστείτε στην ταχύτητα μετάδοσης.

Ο κύριος και πιο σημαντικός αλγόριθμος είναι η υλοποίηση ενός λογισμικού 8-bit PWM 4 καναλιών που σας επιτρέπει να ελέγχετε 4 LED με 256 διαβαθμίσεις φωτεινότητας για καθένα από αυτά. Η εφαρμογή αυτού του αλγορίθμου σε υλικό καθορίζει επίσης τον ρυθμό μεταφοράς δεδομένων στο δίκτυο - για ευκολία λογισμικού, μεταδίδεται ένα bit για κάθε βήμα της λειτουργίας PWM. Μια προκαταρκτική εφαρμογή του αλγορίθμου έδειξε ότι εκτελείται σε 44 κύκλους ρολογιού, έτσι αποφασίστηκε να χρησιμοποιηθεί ένας χρονοδιακόπτης ρυθμισμένος να διακόπτει κάθε 100 κύκλους ρολογιού - με αυτόν τον τρόπο, η διακοπή έχει χρόνο να εγγυηθεί ότι θα εκτελεστεί πριν από τον επόμενο και θα εκτελεστεί μέρος του κώδικα του κύριου προγράμματος.
Στην επιλεγμένη συχνότητα ρολογιού του εσωτερικού ταλαντωτή των 4,8 MHz, συμβαίνουν διακοπές σε συχνότητα 48 kHz - αυτή είναι η ταχύτητα bit που έχει το δίκτυο των slave συσκευών και το PWM γεμίζει με την ίδια ταχύτητα - ως αποτέλεσμα, η συχνότητα το σήμα PWM είναι 187,5 Hz, το οποίο είναι αρκετό για να μην παρατηρήσετε το τρεμόπαιγμα των LED. Επίσης, στον χειριστή διακοπών, μετά την εκτέλεση του αλγόριθμου που είναι υπεύθυνος για τη δημιουργία PWM, καταγράφεται η κατάσταση του διαύλου δεδομένων - αποδεικνύεται περίπου στο μέσο του διαστήματος υπερχείλισης του χρονοδιακόπτη, αυτό απλοποιεί τη λήψη δεδομένων. Στην αρχή της λήψης του επόμενου πακέτου 4 bit, ο χρονοδιακόπτης επαναφέρεται, αυτό είναι απαραίτητο για πιο ακριβή συγχρονισμό λήψης και αντίσταση στις αποκλίσεις της ταχύτητας λήψης.
Το αποτέλεσμα είναι η παρακάτω εικόνα:

Ενδιαφέρουσα είναι η εφαρμογή του αλγορίθμου για τη ρύθμιση της ταχύτητας μετάδοσης. Στην αρχή της μετάδοσης, το MASTER εκδίδει έναν παλμό με διάρκεια 4 bit log.0, από τον οποίο όλες οι υποτελείς μονάδες καθορίζουν την απαιτούμενη ταχύτητα λήψης χρησιμοποιώντας έναν απλό αλγόριθμο:

LDI tmp2, st_syn_delay DEC tmp2 ;<+ BREQ bad_sync ; | SBIC PINB, cmd_port; | RJMP PC-0x0003 ;-+

St_syn_delay = 60 - μια σταθερά που καθορίζει τη μέγιστη διάρκεια του παλμού εκκίνησης, η οποία θεωρείται ότι είναι περίπου 2 φορές η ονομαστική τιμή (για αξιοπιστία)

Χρησιμοποιώντας μια πειραματική μέθοδο, καθορίστηκε η ακόλουθη εξάρτηση του προκύπτοντος αριθμού σε tmp2 όταν η συχνότητα του ρολογιού αποκλίνει από την ονομαστική:

4,3Mhz (-10%) 51 μονάδες (0x33) αντιστοιχούν σε 90 τικ χρονοδιακόπτη για επαναφορά της ταχύτητας λήψης στην ονομαστική
4,8Mhz (+00%) 43 μονάδες (0x2B) - αντιστοιχεί σε 100 χρονοδιακόπτες (ονομαστική)
5,3Mhz (+10%) 35 μονάδες (0x23) - αντιστοιχούν σε 110 τικ για χρονοδιακόπτη για επαναφορά της ταχύτητας λήψης στην ονομαστική

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

Y(x) = 110-x*20/16
x = tmp2 - 35 = (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
Υ(x) = (110, 108,75, 107,5, 106,25, 105, 103,75, 102,5, 101,25, 100, 98,75, 97,5, 96,25, 95, 9920,75,

Οι αριθμοί στρογγυλοποιούνται σε ακέραιους αριθμούς και αποθηκεύονται στο EEPROM.

Εάν, κατά την εφαρμογή τάσης στη μονάδα, κρατήσετε τη γραμμή στη λογική κατάσταση "1", θα ενεργοποιηθεί μια υπορουτίνα βαθμονόμησης, η οποία θα σας επιτρέψει να μετρήσετε την περίοδο του σήματος PWM με συχνόμετρο ή παλμογράφο χωρίς διόρθωση και, με βάση στις μετρήσεις, κρίνετε την απόκλιση της συχνότητας ρολογιού του ελεγκτή της μονάδας από την ονομαστική, με ισχυρή απόκλιση μεγαλύτερη από 15% Η ενσωματωμένη σταθερά βαθμονόμησης ταλαντωτή RC μπορεί να χρειαστεί να ρυθμιστεί. Αν και ο κατασκευαστής υπόσχεται βαθμονόμηση στο εργοστάσιο και απόκλιση από την ονομαστική τιμή όχι περισσότερο από 10%.

Προς το παρόν, έχει αναπτυχθεί ένα πρόγραμμα Delphi που σας επιτρέπει να αναπαράγετε ένα προηγουμένως μεταγλωττισμένο μοτίβο για 8 ενότητες με δεδομένη ταχύτητα. Καθώς και ένα βοηθητικό πρόγραμμα για εργασία με ξεχωριστή μονάδα (συμπεριλαμβανομένης της εκ νέου ανάθεσης της διεύθυνσης της μονάδας).

Υλικολογισμικό.
Για τη μονάδα SLAVE, μόνο οι ασφάλειες CKSEL1 = 0 και SUT0 = 0 πρέπει να αναβοσβήνουν. Τα περιεχόμενα του EEPROM αναβοσβήνουν από το αρχείο RGBU-slave.eep, εάν είναι απαραίτητο, μπορείτε να ορίσετε αμέσως την επιθυμητή διεύθυνση της μονάδας στο δίκτυο - το 0ο byte του EEPROM, από προεπιλογή αναβοσβήνει ως $FE = 254 , η διεύθυνση 0x13 περιέχει τη σταθερά βαθμονόμησης του ενσωματωμένου ταλαντωτή RC του ελεγκτή, σε συχνότητα 4,8 MHz δεν φορτώνεται αυτόματα, επομένως είναι απαραίτητο να διαβάσετε την εργοστασιακή τιμή βαθμονόμησης με τον προγραμματιστή και να την γράψετε σε αυτό το κελί - Αυτή η τιμή είναι ατομική για κάθε ελεγκτή με μεγάλες αποκλίσεις συχνότητας από την ονομαστική τιμή, μπορείτε να αλλάξετε τη βαθμονόμηση μέσω αυτού του κελιού χωρίς να επηρεαστεί η εργοστασιακή τιμή.

Για τη μονάδα MASTER, είναι απαραίτητο να αναβοσβήνουν μόνο οι ασφάλειες SUT0 = 0, BOOTSZ0 = 0, BOOTSZ1 = 0, CKOPT = 0. Αφήστε τις υπόλοιπες να μην αναβοσβήνουν.

Τέλος, μια μικρή επίδειξη της γιρλάντας που βρίσκεται στο μπαλκόνι:

Στην πραγματικότητα, η λειτουργικότητα της γιρλάντας καθορίζεται από ένα πρόγραμμα σε υπολογιστή - μπορείτε να δημιουργήσετε έγχρωμη μουσική, κομψό ιριδίζον φωτισμό δωματίου (αν προσθέσετε προγράμματα οδήγησης LED και χρησιμοποιήσετε ισχυρά LED) - κ.λπ. Τι σκοπεύω να κάνω στο μέλλον; Τα σχέδια περιλαμβάνουν ένα πλέγμα 12 μονάδων με LED RGB 3 Watt και φωτισμό δωματίου που βασίζεται σε κομμάτια ταινίας RGB 12 volt (χρειάζεστε μόνο τρανζίστορ πεδίου για την εναλλαγή της ταινίας για κάθε μονάδα, 3 τεμάχια ή 4 αν προσθέσετε ένα κομμάτι μωβ ταινία άλλες διαφορές από εκεί δεν θα είναι πρωτότυπο).

Για να διαχειριστείτε το δίκτυο, μπορείτε να γράψετε το δικό σας πρόγραμμα, ακόμη και σε BASIC - το κύριο πράγμα που πρέπει να κάνει η επιλεγμένη γλώσσα προγραμματισμού είναι να μπορεί να συνδεθεί σε αθάνατες θύρες COM και να διαμορφώσει τις παραμέτρους τους. Αντί για διασύνδεση USB, μπορείτε να χρησιμοποιήσετε έναν προσαρμογέα με RS232 - αυτό δίνει τη δυνατότητα ελέγχου των εφέ φωτισμού από ένα ευρύ φάσμα συσκευών που μπορούν γενικά να προγραμματιστούν.
Το πρωτόκολλο ανταλλαγής με τη συσκευή MASTER είναι αρκετά απλό - στέλνουμε μια εντολή και περιμένουμε μια απάντηση σχετικά με την επιτυχία ή την αποτυχία της, εάν δεν υπάρχει απόκριση για περισσότερα από μερικά χιλιοστά του δευτερολέπτου, υπάρχουν προβλήματα με τη σύνδεση ή τη λειτουργία της συσκευής MASTER. , οπότε είναι απαραίτητο να διεξαχθεί διαδικασία επανασύνδεσης.

Οι ακόλουθες εντολές είναι διαθέσιμες αυτήν τη στιγμή:

0x54; σύμβολο "T" - εντολή "δοκιμή" - ελέγξτε τη σύνδεση, η απάντηση πρέπει να είναι 0x2B.
0x40; Το σύμβολο "@" είναι η εντολή "λήψη και μεταφορά". Μετά την έκδοση της εντολής, πρέπει να περιμένετε την απάντηση "?" ακολουθούμενα από 6 byte δεδομένων:
+0: ​​Διεύθυνση σκλάβου 0..255
+1: Εντολή στη συσκευή
0x21 - byte 2...5 περιέχουν φωτεινότητα καναλιού που πρέπει να εφαρμοστεί αμέσως.
0x14 - ορίστε ένα χρονικό όριο, μετά το οποίο θα είναι η φωτεινότητα σε όλα τα κανάλια
επαναφέρετε στο 0 εάν δεν ληφθούν εντολές κατά τη διάρκεια αυτής της περιόδου. Η τιμή χρονικού ορίου βρίσκεται στο κόκκινο κελί του καναλιού, δηλ. σε ένα byte σε μετατόπιση +2. Η τιμή 0-255 αντιστοιχεί σε ένα χρονικό όριο 0-25,5 δευτερολέπτων από προεπιλογή, timeout = 5 δευτερόλεπτα (γραμμένο στο EEPROM κατά τη διάρκεια του υλικολογισμικού, μπορεί επίσης να αλλάξει εκεί σε ένα byte με μετατόπιση +1).
0x5A - αλλαγή διεύθυνσης συσκευής.
Για αξιοπιστία, η διαδικασία αλλαγής της διεύθυνσης πρέπει να εκτελεστεί τρεις φορές - μόνο τότε θα εφαρμοστεί η νέα διεύθυνση και θα καταχωρηθεί στο EEPROM. Ταυτόχρονα, πρέπει να είστε προσεκτικοί - εάν αντιστοιχίσετε την ίδια διεύθυνση σε δύο συσκευές, θα αντιδράσουν συγχρονισμένα και μπορείτε να τις "διαχωρίσετε" μόνο αποσυνδέοντας φυσικά τις επιπλέον μονάδες από το δίκτυο και αλλάζοντας τη διεύθυνση των υπόλοιπων ένα ή χρησιμοποιώντας προγραμματιστή. Η τιμή της νέας διεύθυνσης μεταδίδεται στο κόκκινο κελί καναλιού - δηλ. σε ένα byte σε μετατόπιση +2.

2: Κόκκινη φωτεινότητα 0...255
+3: Πράσινη φωτεινότητα 0...255
+4: Μπλε φωτεινότητα 0...255
+5: Βιολετί φωτεινότητα 0...255

0x3D; σύμβολο "=" - εντολή ADC. Μετά την έκδοση της εντολής, πρέπει να περιμένετε την απάντηση "?" τότε θα πρέπει να μεταδοθεί 1 byte - ο αριθμός καναλιού ADC 0..7 σε δυαδική μορφή (οι αριθμοί ASCII 0..9 είναι επίσης κατάλληλοι σε αυτήν την χωρητικότητα, αφού τα υψηλότερα 4 bit αγνοούνται).
Σε απόκριση, η εντολή επιστρέφει 2 byte του αποτελέσματος μέτρησης στην περιοχή 0...1023

Πιθανές απαντήσεις σε εντολές:
0x3F; σύμβολο "?" - έτοιμο για εισαγωγή δεδομένων, σημαίνει ότι η συσκευή είναι έτοιμη να λάβει ορίσματα εντολών
0x2B; σύμβολο "+" Απόκριση - η εντολή εκτελείται
0x2D; σύμβολο "-" Απόκριση - η εντολή δεν έχει οριστεί ή είναι λανθασμένη

Περισσότερες λεπτομέρειες μπορείτε να λάβετε από τον πηγαίο κώδικα που βρίσκεται στο GitHub, όπου βρίσκονται και οι πιο πρόσφατες εκδόσεις του έτοιμου υλικολογισμικού.