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

4 Ch DMX Dimmer: 6 βήματα
4 Ch DMX Dimmer: 6 βήματα

Βίντεο: 4 Ch DMX Dimmer: 6 βήματα

Βίντεο: 4 Ch DMX Dimmer: 6 βήματα
Βίντεο: Начало работы с QLC+ Управление цветомузыкой с компьютера. Как управлять светом. 2024, Ιούλιος
Anonim
4 Ch DMX Dimmer
4 Ch DMX Dimmer

Η ιδέα είναι να σχεδιάσετε και να δημιουργήσετε ένα φορητό dimmer.

Απαιτήσεις:

  • DMX512 Ελεγχόμενο
  • 4 κανάλια
  • Φορητός
  • Εύχρηστος

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

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

Έχω μεταφέρει αυτό το έργο από τη διεύθυνση https://danfredell.com/df/Projects/Entries/2013/1/6_DMX_Dimmer.html επειδή είναι ακόμα δημοφιλές, υποθέτω. Επίσης έχασα το αρχείο σπόρου iWeb, οπότε δεν μπορώ να το ενημερώσω εύκολα πια. Θα ήταν ωραίο να επιτρέπεται στους ανθρώπους να μοιράζονται τις ερωτήσεις τους σχετικά με το έργο μεταξύ τους.

Βήμα 1: Συγκέντρωση υλικού

Συγκέντρωση του υλικού
Συγκέντρωση του υλικού

Υλικό που χρησιμοποιείται: Το μεγαλύτερο μέρος του παραγγέλθηκε από την Tayda Electronics. Μου αρέσουν καλύτερα από το DigiKey λόγω της μικρότερης και ευκολότερης κατανόησης επιλογής.

  1. ATMEGA328, Μικροελεγκτής
  2. MOC3020, TRIAC Optocoupler. Όχι ZeroCross.
  3. MAX458 ή SN75176BP, δέκτης DMX
  4. ISP814, AC Optocoupler
  5. 7805, ρυθμιστής 5v
  6. BTA24-600, 600V 25A TRIAC
  7. Κρυστάλλος 20MHz
  8. Τροφοδοσία 9V

Μερικά εμπόδια και μαθήματα που πήραμε στην πορεία

  • Εάν δεν είστε ειδικός στο μητρώο, κολλήστε με ένα ATMEGA328P
  • Λάθος οπτικά ζεύγη. Δεν θέλετε Zero Cross
  • Τα υψηλά κανάλια ήταν ασταθή. Η αλλαγή από 16MHz σε 20MHz έλυσε αυτό το ζήτημα
  • Δεν είναι δυνατή η ενδεικτική λυχνία κατάστασης DMX επειδή η κλήση διακοπής έπρεπε να είναι πολύ γρήγορη
  • Η ισχύς DC πρέπει να είναι εξαιρετικά σταθερή, κάθε κυματισμός θα προκαλέσει πολύ θόρυβο στο σήμα DMX

Ο σχεδιασμός TRIAC προήλθε από τον MRedmon, ευχαριστώ.

Βήμα 2: Σχεδιασμός κυκλωμάτων

Σχεδιασμός κυκλωμάτων
Σχεδιασμός κυκλωμάτων

Χρησιμοποίησα το Fritzing 7.7 σε Mac για να σχεδιάσω το κύκλωμά μου.

Το MAX485 στο επάνω μέρος χρησιμοποιείται για τη μετατροπή του σήματος DMX σε κάτι που μπορεί να διαβάσει το Arduino.

Το 4N35 στα αριστερά χρησιμοποιείται για τον εντοπισμό της μηδενικής διασταύρωσης του σήματος AC, οπότε το Arduino θα γνωρίζει σε ποια στιγμή θα μειωθεί η έξοδος του ημιτονοειδούς κύματος. Περισσότερα για τον τρόπο αλληλεπίδρασης υλικού και λογισμικού στην ενότητα λογισμικού.

Έχω την ερώτηση εάν αυτό το έργο θα λειτουργήσει στην Ευρώπη με 230V και 50Hz; Δεν ζω στην Ευρώπη, ούτε ταξιδεύω συχνά εκεί για να μπορώ να δοκιμάσω αυτό το σχέδιο. Θα πρέπει να λειτουργεί, απλώς θα πρέπει να τροποποιήσετε τη γραμμή χρονισμού του κώδικα για τη διαφορετική χρονική καθυστέρηση συχνότητας.

Βήμα 3: Σχεδιασμός κυκλωμάτων Kovari

Circuit Design του Kovari
Circuit Design του Kovari
Circuit Design του Kovari
Circuit Design του Kovari

Μέσα από τη διαδικασία δημιουργίας του ιστότοπού μου μπόρεσα να έχω μερικές συνομιλίες μέσω ηλεκτρονικού ταχυδρομείου. Ο ένας ήταν με τον Kovari Andrei που έκανε ένα σχέδιο κυκλώματος βασισμένο σε αυτό το έργο και ήθελε να μοιραστεί το σχέδιό του. Δεν είμαι σχεδιαστής πλακέτας, αλλά είναι ένα έργο Eagle. Πείτε μου πώς λειτουργεί για εσάς εάν το χρησιμοποιείτε.

Βήμα 4: Σχέδιο κυκλώματος Giacomo

Circuit Design του Giacomo
Circuit Design του Giacomo

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

Ο Giacomo τροποποίησε το κύκλωμα, ώστε να μην απαιτείται μετασχηματιστής με κεντρικό άκρο. Το pcb είναι μονής όψης και μπορεί να είναι μια πιο προσιτή λύση για όσους δεν μπορούν να κάνουν διπλής όψης στο σπίτι (λίγο δύσκολο).

Βήμα 5: Λογισμικό

Λογισμικό
Λογισμικό

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

Summery: Όταν το Arduino εκκινήσει για πρώτη φορά, καλείται η μέθοδος εγκατάστασης (). Εκεί δημιούργησα μερικές από τις μεταβλητές και τις θέσεις εξόδου που θα χρησιμοποιηθούν αργότερα. Το zeroCrossInterupt () καλείται/ τρέχει κάθε φορά που το AC περνά από θετική σε αρνητική τάση. Θα ορίσει τη σημαία zeroCross για κάθε κανάλι και θα ξεκινήσει το χρονόμετρο. Η μέθοδος βρόχου () καλείται συνεχώς για πάντα. Για να ενεργοποιήσετε την έξοδο, το TRIAC πρέπει να ενεργοποιηθεί μόνο για 10 μικροδευτερόλεπτα. Αν είναι καιρός να ενεργοποιηθεί το TRIAC και έχει συμβεί το μηδέν Cross, η έξοδος θα ενεργοποιηθεί μέχρι το τέλος της φάσης εναλλασσόμενου ρεύματος.

Υπήρχαν μερικά παραδείγματα στο διαδίκτυο που χρησιμοποίησα για να ξεκινήσω αυτό το έργο. Το κύριο πράγμα που δεν μπορούσα να βρω ήταν να έχω πολλαπλές εξόδους TRIAC. Άλλοι χρησιμοποίησαν τη λειτουργία καθυστέρησης για PWM την έξοδο, αλλά αυτό δεν θα λειτουργούσε στην περίπτωσή μου επειδή το ATMEGA πρέπει να ακούει DMX όλη την ώρα. Το έλυσα παλμώντας το TRIAC σε τόσα ms μετά από μηδενική διασταύρωση. Παλμώντας το TRIAC πιο κοντά στο μηδενικό σταυρό, εξάγεται περισσότερο από το κύμα αμαρτίας.

Δείτε πώς φαίνεται το μισό κύμα αμαρτίας 120VAC σε έναν παλμογράφο, παραπάνω.

Ο ISP814 συνδέεται με τη διακοπή 1. Έτσι, όταν λαμβάνει σήμα ότι το AC μεταβαίνει από θετικό σε αρνητικό ή αντίστροφα, θέτει το zeroCross για κάθε κανάλι σε true και ξεκινά το χρονόμετρο.

Στη μέθοδο βρόχου (), ελέγχει κάθε κανάλι εάν το zeroCross είναι αληθινό και ο χρόνος ενεργοποίησης του έχει περάσει, θα παλμόσει το TRIAC για 10 μικροδευτερόλεπτα. Αυτό είναι αρκετό για να ενεργοποιήσετε το TRIAC. Μόλις ενεργοποιηθεί ένα TRIAC, θα παραμείνει αναμμένο μέχρι το μηδέν Cross. Το φως θα τρεμόπαιζε όταν το DMX ήταν περίπου 3%, οπότε πρόσθεσα την περικοπή εκεί για να το αποτρέψω. Αυτό προκάλεσε το Arduino να είναι πολύ αργό και ο παλμός μερικές φορές θα ενεργοποιούσε το επόμενο κύμα αμαρτίας αντί για το τελευταίο 4% του κύματος.

Επίσης στον βρόχο () ορίζω την τιμή PWM των LED κατάστασης. Αυτές οι λυχνίες LED μπορούν να χρησιμοποιήσουν το εσωτερικό PWM που δημιουργείται από το Arduino επειδή δεν χρειάζεται να ανησυχούμε για το zeroCross του AC. Μόλις ρυθμιστεί το PWM, το Arduino θα συνεχίσει σε αυτή τη φωτεινότητα μέχρι να ειπωθεί.

Όπως σημειώθηκε στα κορυφαία σχόλια για να χρησιμοποιήσετε μια διακοπή DMX στον ακροδέκτη 2 και να εκτελεστεί στα 20MHz θα πρέπει να επεξεργαστείτε μερικά από τα αρχεία εφαρμογής Arduino. Στο HardwareSerial.cpp ένα κομμάτι κώδικα πρέπει να διαγραφεί, αυτό μας επιτρέπει να γράψουμε τη δική μας κλήση διακοπής. Αυτή η μέθοδος ISR βρίσκεται στο κάτω μέρος του κώδικα για να χειριστεί τη διακοπή DMX. Εάν πρόκειται να χρησιμοποιήσετε ένα Arduino ως προγραμματιστή ISP, φροντίστε να επαναφέρετε τις αλλαγές σας στο HardwareSerial.cpp διαφορετικά το ATMEGA328 στον πίνακα ψωμιού δεν θα είναι προσβάσιμο. Η δεύτερη αλλαγή είναι πιο εύκολη. Το αρχείο boards.txt πρέπει να αλλάξει στη νέα ταχύτητα ρολογιού 20MHz.

φωτεινότητα [ch] = χάρτης (DmxRxField [ch], 0, 265, 8000, 0);

Η φωτεινότητα αντιστοιχεί σε 8000 επειδή είναι η ποσότητα των μικροδευτερολέπτων του 1/2 ενός ημιτονοειδούς κύματος AC στα 60Hz. Έτσι, σε πλήρη φωτεινότητα 256 DMX το πρόγραμμα θα αφήσει το 1/2 του ημιτονοειδούς κύματος ΕΝΕΡΓΟΠΟΙΗΜΕΝΟ για 8000us. Βρήκα 8000 μέσω μαντείας και επιταγής. Κάνοντας τα μαθηματικά 1000000us/60hz/2 = 8333 έτσι ώστε να είναι ένας καλύτερος αριθμός, αλλά το να έχετε επιπλέον 333us πάνω από το κεφάλι επιτρέπει στο TRIAC να ανοίξει και οποιοδήποτε jitter στο πρόγραμμα είναι πιθανώς μια καλή ιδέα.

Στο Arduino 1.5.3 ότι μετέφεραν τη θέση του αρχείου HardwareSerial.cpp. Πρόκειται πλέον για

Διαφορετικά, θα καταλήξετε σε αυτό το σφάλμα: core/core.a (HardwareSerial0.cpp.o): Στη συνάρτηση `_vector_18 ':

Βήμα 6: Συσκευάστε το

Συσκευασία επάνω
Συσκευασία επάνω
Συσκευασία επάνω
Συσκευασία επάνω
Συσκευασία επάνω
Συσκευασία επάνω

Πήρα το γκρι κουτί του έργου στο Menards στο ηλεκτρικό τμήμα τους. Χρησιμοποίησα ένα παλινδρομικό πριόνι για να κόψω τις τρύπες του ηλεκτρικού βύσματος. Η θήκη πήρε έναν σφιγκτήρα για θέατρο συνδεδεμένο στην κορυφή για σκοπούς κρεμάσματος. Ανάβει η κατάσταση για κάθε είσοδο και έξοδο για να βοηθήσει στη διάγνωση εάν υπάρχει ποτέ πρόβλημα. Χρησιμοποιήθηκε ένας κατασκευαστής ετικετών για να εξηγήσει τις διαφορετικές θύρες της συσκευής. Οι αριθμοί δίπλα σε κάθε βύσμα αντιπροσωπεύουν τον αριθμό καναλιού DMX. Τοποθέτησα την πλακέτα κυκλώματος και τον μετασχηματιστή με κάποια θερμή κόλλα. Οι λυχνίες LED είναι κολλημένες στη θέση τους με θήκες led.

Συνιστάται: