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

Arduino Interactive LED Coffee Table: 6 Βήματα (με Εικόνες)
Arduino Interactive LED Coffee Table: 6 Βήματα (με Εικόνες)

Βίντεο: Arduino Interactive LED Coffee Table: 6 Βήματα (με Εικόνες)

Βίντεο: Arduino Interactive LED Coffee Table: 6 Βήματα (με Εικόνες)
Βίντεο: 20 Cool DIY Project 2024, Ιούλιος
Anonim
Image
Image
Τραπεζάκι σαλονιού Arduino Interactive LED
Τραπεζάκι σαλονιού Arduino Interactive LED

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

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

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

Προμήθειες

  1. ws2812b Λαμπτήρες LED -
  2. Τροφοδοσία 5V -
  3. Οποιοδήποτε Arduino χρησιμοποίησα το 2560 -
  4. Φωτοδιόδους
  5. Εκπομπές IR
  6. Αντίσταση 10 Ohms
  7. 1 αντιστάσεις MOhms
  8. 47 πυκνωτές pF
  9. CD4051B Multiplexers
  10. Μητρώα αλλαγής ταχυτήτων SN74HC595
  11. ULN2803A Darlington Arrays
  12. Οποιοδήποτε υπόστρωμα για χρήση ως μεγάλη σανίδα για τα led, χρησιμοποίησα ένα χαρτί από σύνθετο χαρτόνι από την αποθήκη του σπιτιού

Βήμα 1: Δημιουργήστε τον πίνακα και τοποθετήστε τα LED

Δημιουργήστε τον πίνακα και τοποθετήστε τα LED
Δημιουργήστε τον πίνακα και τοποθετήστε τα LED
Δημιουργήστε τον πίνακα και τοποθετήστε τα LED
Δημιουργήστε τον πίνακα και τοποθετήστε τα LED
Δημιουργήστε τον πίνακα και τοποθετήστε τα LED
Δημιουργήστε τον πίνακα και τοποθετήστε τα LED
Δημιουργήστε τον πίνακα και τοποθετήστε τα LED
Δημιουργήστε τον πίνακα και τοποθετήστε τα LED

Το πρώτο πράγμα που έκανα ήταν να δημιουργήσω τον πίνακα που θα περιέχει τα led που θα βάλουμε μέσα στο τραπεζάκι του καφέ. Χρησιμοποίησα ένα κομμάτι χαρτί από σύνθετο χαρτόνι από την αποθήκη του σπιτιού και το έκοψα στις κατάλληλες διαστάσεις για το τραπεζάκι του καφέ που είχα. Αφού έκοψα τον πίνακα σε μέγεθος, άνοιξα όλες τις τρύπες για το πού πήγαιναν τα led. Ο ίδιος ο πίνακας είχε 8 σειρές και 12 στήλες από led ws2812b χωρισμένες 3 ίντσες μεταξύ τους, και ήταν προσαρτημένες σε ένα φιδίσιο μοτίβο. Χρησιμοποίησα ζεστή κόλλα για να τα ασφαλίσω στη θέση τους.

Έπρεπε επίσης να ανοίξω τρύπες στο κέντρο αυτού που θα γίνει ο κόμβος: 4 λυχνίες ws2812b που αποτελούν ένα τετράγωνο, 2 φωτοδιόδους και 2 εκπομπές IR σε ένα μικρότερο τετράγωνο στο κέντρο αυτού. Αυτές οι 4 τρύπες στο κέντρο του κόμβου θα ήταν οι κηλίδες για τις φωτοδιόδους και τους εκπομπούς ir (2 από κάθε μία). Τα άλλαξα για να εξασφαλίσω τη μέγιστη έκθεση και τα τοποθέτησα περίπου 1 ίντσα μεταξύ τους στο κέντρο κάθε κόμβου. Δεν χρειαζόταν να τα κολλήσω στη θέση τους, απλώς έσκυψα τα καλώδια από την άλλη πλευρά για να βεβαιωθώ ότι δεν θα βγουν από την άλλη πλευρά. Επίσης, φρόντισα να λυγίσω τα θετικά και αρνητικά άκρα προς ορισμένες κατευθύνσεις, έτσι ώστε να προσανατολίζονται σωστά στο κύκλωμα. Όλοι οι θετικοί άξονες ήταν στην αριστερή πλευρά του πίσω μέρους του πίνακα, ενώ όλοι οι αρνητικοί οδηγοί ήταν στη δεξιά πλευρά του πίνακα.

Βήμα 2: Κατανοήστε το κύκλωμα

Κατανοήστε το Κύκλωμα
Κατανοήστε το Κύκλωμα
Κατανοήστε το Κύκλωμα
Κατανοήστε το Κύκλωμα
Κατανοήστε το Κύκλωμα
Κατανοήστε το Κύκλωμα

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

Ο κωδικός PCB που περιέχει το έργο KiCad και τα αρχεία gerber μπορεί να βρεθεί εδώ: https://github.com/tmckay1/interactive_coffee_tabl…, σε περίπτωση που θέλετε να παραγγείλετε εσείς οι ίδιοι τα PCB και να δημιουργήσετε ένα παρόμοιο έργο. Χρησιμοποίησα το NextPCB για να δημιουργήσω τους πίνακες.

Υπάρχουν βασικά τρία διαφορετικά κυκλώματα που απαρτίζουν αυτόν τον πίνακα. Το πρώτο δεν θα το αναλύσουμε λεπτομερώς και είναι ένα απλό κύκλωμα που τροφοδοτεί τα led ws2812b. Ένα σήμα δεδομένων PWM αποστέλλεται από το Arduino στους λαμπτήρες led ws2812b και ελέγχει ποια χρώματα εμφανίζονται πού. Χρησιμοποιούμε leds ws2812b, δεδομένου ότι μπορούν να διευθυνσιοδοτηθούν ξεχωριστά, οπότε θα μπορούμε να ελέγχουμε ποια από τα led θα ενεργοποιηθούν και ποια θα απενεργοποιηθούν. Τα led ws2812b τροφοδοτούνται από εξωτερική πηγή ισχύος 5V, αφού το arduino από μόνο του δεν έχει αρκετή ισχύ για να ανάψει όλα τα φώτα. Στο κινούμενο διάγραμμα που επισυνάπτεται χρησιμοποιούν αντίσταση έλξης 330 Ohms, ωστόσο δεν το χρησιμοποιώ στην κατασκευή μου.

Το δεύτερο κύκλωμα ενεργοποιεί τους πομπούς IR. Αυτό το κύκλωμα χρησιμοποιεί έναν καταχωρητή αλλαγής για τον έλεγχο μιας συστοιχίας darlington που στέλνει ισχύ στους εκπομπούς IR. Ο καταχωρητής βάρδιας είναι ένα ολοκληρωμένο κύκλωμα που είναι σε θέση να στέλνει σήματα Υ HIGHΗΛΟΥ ΚΑΙ ΧΑΜΗΛΟΥ σε πολλαπλούς ακροδέκτες μόνο από μια μικρή ποσότητα ακίδων. Στην περίπτωσή μας χρησιμοποιούμε έναν καταχωρητή αλλαγής SN74HC595 που μπορεί να ελεγχθεί από 3 εισόδους, αλλά ελέγχει έως και 8 εξόδους. Το πλεονέκτημα της χρήσης αυτού με το arduino είναι ότι μπορείτε να αλιεύσετε αλυσίδες έως και 8 καταχωρητές βάρδιας στη σειρά (το arduino μπορεί να χειριστεί μόνο έως και 8 από αυτά). Αυτό σημαίνει ότι χρειάζεστε μόνο 3 ακίδες από το arduino για να ενεργοποιήσετε και να απενεργοποιήσετε 64 εκπομπές IR. Ο πίνακας darlington σας δίνει τη δυνατότητα να τροφοδοτήσετε μια συσκευή από εξωτερική πηγή εάν το σήμα εισόδου είναι Υ HIGHΗΛΟ, ή να απενεργοποιήσετε τη συσκευή για αυτήν τη συσκευή εάν το σήμα εισόδου είναι ΧΑΜΗΛΟ. Έτσι, στο παράδειγμά μας, χρησιμοποιούμε μια συστοιχία darlington ULN2803A, η οποία επιτρέπει σε μια εξωτερική πηγή ισχύος 5V να ενεργοποιεί και να απενεργοποιεί έως και 8 εκπομπές IR. Χρησιμοποιούμε μια αντίσταση 10 Ohm με τους πομπούς IR σε σειρά για να λάβουμε το μέγιστο ρεύμα από τους εκπομπούς IR.

Το τρίτο κύκλωμα χρησιμοποιεί έναν πολυπλέκτη για να λαμβάνει πολλαπλές εισόδους από τις φωτοδιόδους και στέλνει την έξοδο σε ένα σήμα δεδομένων. Ο πολυπλέκτης είναι μια συσκευή που χρησιμοποιείται για τη λήψη πολλαπλών εισόδων από τις οποίες θέλετε να διαβάσετε και χρειάζεται μόνο μερικές ακίδες για ανάγνωση από αυτές τις εισόδους. Μπορεί επίσης να κάνει το αντίθετο (demultiplex), αλλά δεν το χρησιμοποιούμε για αυτήν την εφαρμογή εδώ. Έτσι, στην περίπτωσή μας χρησιμοποιούμε έναν πολυπλέκτη CD4051B για να λάβουμε έως και 8 σήματα από τις φωτοδιόδους και χρειαζόμαστε μόνο 3 εισόδους για ανάγνωση από αυτά τα σήματα. Επιπλέον, μπορούμε να αλείψουμε μέχρι 8 πολυπλέκτες (το arduino μπορεί να χειριστεί μόνο έως 8 από αυτούς). Αυτό σημαίνει ότι το arduino μπορεί να διαβάσει από 64 σήματα φωτοδιόδων από μόλις 3 ψηφιακές ακίδες. Οι φωτοδιόδους προσανατολίζονται αντίστροφα μεροληπτικά, πράγμα που σημαίνει ότι αντί να προσανατολιστούμε στην κανονική κατεύθυνση με το θετικό μόλυβδο προσαρτημένο στη θετική πηγή τάσης, εκχωρούμε το αρνητικό καλώδιο στη θετική πηγή τάσης. Αυτό μετατρέπει αποτελεσματικά τις φωτοδιόδους σε αντιστάσεις φωτογραφιών, οι οποίες αλλάζουν στην αντίσταση ανάλογα με την ποσότητα φωτός που δέχεται. Στη συνέχεια, δημιουργούμε ένα διαχωριστή τάσης για να διαβάσουμε μια τάση που εξαρτάται από τη μεταβαλλόμενη αντίσταση των φωτοδιόδων, προσθέτοντας μια αντίσταση υψηλής αντοχής 1 MOhms στη γείωση. Αυτό μας επιτρέπει να λαμβάνουμε υψηλότερες και χαμηλότερες τάσεις στο arduino, ανάλογα με το πόσο φως IR λαμβάνουν οι φωτοδιόδους.

Ακολούθησα το μεγαλύτερο μέρος αυτού του σχεδίου από άλλο άτομο που το έκανε εδώ: https://www.instructables.com/Infrared-Proximity-S… Σε αυτό το σχέδιο πρόσθεσαν επίσης έναν πυκνωτή 47pF, όπως κάνουμε εμείς, απέναντι από την αντίσταση 1 MOhm χρησιμοποιείται για τη δημιουργία του διαχωριστή τάσης με τις φωτοδιόδους. Ο λόγος που το πρόσθεσε ήταν επειδή αυξομείωνε και απενεργοποιούσε τους πομπούς IR με σήμα PWM και αυτό έκανε μια μικρή πτώση τάσης από τις φωτοδιόδους όταν ενεργοποιήθηκαν αμέσως οι εκπομπές IR. Αυτό έκανε τις διόδους φωτογραφιών να αλλάξουν αντίσταση ακόμη και όταν δεν έλαβε περισσότερο φως IR από ένα αντικείμενο επειδή οι εκπομπές IR μοιράστηκαν την ίδια πηγή ισχύος 5V με τις φωτοδιόδους. Ο πυκνωτής χρησιμοποιήθηκε για να βεβαιωθεί ότι δεν υπήρχε πτώση τάσης όταν ενεργοποιήθηκαν και απενεργοποιήθηκαν οι εκπομπές IR. Αρχικά σχεδίαζα να κάνω αυτήν την ίδια στρατηγική, αλλά έμεινα εκτός χρόνου για να το δοκιμάσω, οπότε αντίθετα άφηνα τους εκπομπές IR πάντα ενεργοποιημένους. Θα ήθελα να το αλλάξω στο μέλλον, αλλά μέχρι να επανασχεδιάσω τον κώδικα και το κύκλωμα, αυτή τη στιγμή το PCB έχει σχεδιαστεί για να ανάβει ανά πάσα στιγμή τα φώτα IR και έτσι κι αλλιώς διατηρούσα τους πυκνωτές. Δεν πρέπει να χρειάζεστε τον πυκνωτή εάν χρησιμοποιείτε αυτόν τον σχεδιασμό PCB, αλλά πρόκειται να παρουσιάσω μια άλλη έκδοση του PCB που δέχεται μια πρόσθετη είσοδο στον καταχωρητή βάρδιας που θα σας επιτρέψει να διαμορφώσετε και να απενεργοποιήσετε τους πομπούς IR. Αυτό θα εξοικονομήσει πολλά στην κατανάλωση ενέργειας.

Μπορείτε να ελέγξετε τα κινούμενα διαγράμματα που επισυνάπτονται για μια ρύθμιση πρωτοτύπου για δοκιμή στο arduino σας. Υπάρχει επίσης ένα πιο λεπτομερές χρωματικό σχήμα για κάθε κύκλωμα που περιγράφει τη ρύθμιση και τον προσανατολισμό των ηλεκτρονικών συσκευών. Στο συνημμένο διάγραμμα PCB, έχουμε 4 συνολικά κυκλώματα, 2 κυκλώματα που χρησιμοποιούνται για την ενεργοποίηση των εκπομπών IR και 2 κυκλώματα για ανάγνωση από τις φωτοδιόδους. Είναι προσανατολισμένες στις ομάδες PCB 2 η μία δίπλα στην άλλη με μια ομάδα που αποτελείται από 1 κύκλωμα εκπομπής IR και 1 κύκλωμα φωτοδιόδων, έτσι ώστε 2 στήλες 8 κόμβων να μπορούν να τοποθετηθούν σε ένα μόνο PCB. Συνδέουμε επίσης τα δύο κυκλώματα μαζί, έτσι ώστε τρεις ακίδες από το arduino να μπορούν να ελέγχουν τους δύο καταχωρητές βάρδιας και 3 επιπλέον ακίδες μπορούν να ελέγχουν τους δύο πολυπλέκτες στον πίνακα. Υπάρχει μια πρόσθετη κεφαλίδα εξόδου για να είναι δυνατή η αλυσίδα μαργαρίτας σε επιπλέον PCB.

Ακολουθούν μερικοί πόροι που ακολούθησα για την πρωτοτυπία:

  • https://lastminuteengineers.com/74hc595-shift-regi…
  • https://techtutorialsx.com/2016/02/08/using-a-uln2…
  • https://tok.hakynda.com/article/detail/144/cd4051be…

Βήμα 3: Συγκολλήστε καλώδια στον κόμβο

Συγκόλληση καλωδίων στον κόμβο
Συγκόλληση καλωδίων στον κόμβο
Συγκόλληση καλωδίων στον κόμβο
Συγκόλληση καλωδίων στον κόμβο
Συγκόλληση καλωδίων στον κόμβο
Συγκόλληση καλωδίων στον κόμβο
Συγκόλληση καλωδίων στον κόμβο
Συγκόλληση καλωδίων στον κόμβο

Τώρα που καταλαβαίνετε πώς γίνεται το κύκλωμα, προχωρήστε και κολλήστε τα καλώδια σε κάθε κόμβο. Συγκόλλησα τις φωτοδιόδους παράλληλα (κίτρινα και γκρι σύρματα) και τους εκπομπές ir σε σειρά (πορτοκαλί σύρμα). Στη συνέχεια κόλλησα ένα μακρύτερο κίτρινο καλώδιο στις φωτοδιόδους παράλληλα που θα συνδεθεί στην πηγή ισχύος 5V και ένα μπλε σύρμα που θα προσαρτηθεί στην είσοδο φωτοδιόδων του pcb. Συγκόλλησα ένα μακρύ κόκκινο καλώδιο στο κύκλωμα εκπομπής IR που θα χρησιμοποιηθεί για σύνδεση με την πηγή ισχύος 5V και ένα μαύρο καλώδιο που θα συνδεθεί στην είσοδο εκπομπής IR του PCB. Πραγματικά έκανα τα καλώδια λίγο έως σύντομο χρονικό διάστημα, οπότε μπορούσα να συνδέσω μόνο 5 από τους κόμβους σε κάθε στήλη στο τέλος (αντί για 7). Σκοπεύω να το διορθώσω αργότερα.

Βήμα 4: Συγκολλήστε τα εξαρτήματα PCB και συνδέστε τα στον πίνακα

Συγκολλήστε τα εξαρτήματα PCB και συνδέστε τα στον πίνακα
Συγκολλήστε τα εξαρτήματα PCB και συνδέστε τα στον πίνακα
Συγκολλήστε τα εξαρτήματα PCB και συνδέστε τα στον πίνακα
Συγκολλήστε τα εξαρτήματα PCB και συνδέστε τα στον πίνακα
Συγκολλήστε τα εξαρτήματα PCB και συνδέστε τα στον πίνακα
Συγκολλήστε τα εξαρτήματα PCB και συνδέστε τα στον πίνακα

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

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

Δεδομένου ότι είχα 8 σειρές ws2812b led και 12 στήλες, κατέληξα με 7 σειρές και 11 στήλες κόμβων (77 κόμβοι συνολικά). Η ιδέα είναι να χρησιμοποιήσετε τη μία πλευρά του PCB για μια στήλη κόμβων και την άλλη πλευρά για την άλλη στήλη. Έτσι, επειδή είχα 11 στήλες, χρειάστηκα 6 PCB (το τελευταίο χρειάστηκε μόνο μία ομάδα εξαρτημάτων). Δεδομένου ότι έκανα τα καλώδια πολύ κοντά, μπορούσα να συνδέσω μόνο 55 κόμβους, 11 στήλες και 5 σειρές. Μπορείτε να δείτε στην εικόνα, έκανα ένα λάθος και κόλλησα τα ακατέργαστα καλώδια στον πίνακα, κάτι που θα ήταν καλό αν τα σύρματα ήταν αρκετά λεπτά, αλλά στην περίπτωσή μου ήταν πολύ χοντρά. Αυτό σήμαινε ότι είχα φθαρμένα άκρα καλωδίων πολύ κοντά το ένα στο άλλο για κάθε είσοδο πομπού IR και είσοδο φωτοδιόδων, οπότε συνέβαινε πολύ σφάλμα από όλο το βραχυκύκλωμα καλωδίου. Στο μέλλον θα χρησιμοποιήσω συνδέσμους για να συνδέσω το PCB στα καλώδια της πλακέτας για να αποφύγω τα σορτς και να καθαρίσω τα πράγματα.

Δεδομένου ότι το Arduino μπορεί να κολλήσει μόνο σε 8 καταχωρητές βάρδιας και πολυπλέκτες, δημιούργησα δύο ξεχωριστές αλυσίδες, μία που έπαιρνε τις πρώτες 8 στήλες και μια άλλη τις υπόλοιπες 3 στήλες. Έπειτα στερέωσα κάθε αλυσίδα σε ένα άλλο PC που είχε μόλις 2 πολυπλέκτες, έτσι ώστε να μπορώ να διαβάζω κάθε αλυσίδα σημάτων δεδομένων πολυπλέκτη από αυτούς τους δύο πολυπλέκτες στο arduino. Αυτοί οι δύο πολυπλέκτες ήταν επίσης αλυσοδεμένοι. Αυτό σημαίνει ότι χρησιμοποιήθηκαν συνολικά 16 σήματα εξόδου και 2 αναλογικές είσοδοι στο arduino: 1 σήμα εξόδου για τον έλεγχο των οδηγήσεων ws2812b, 3 σήματα εξόδου για την πρώτη αλυσίδα καταχωρητών βάρδια, 3 σήματα εξόδου για την πρώτη αλυσίδα πολυπλέκτη, 3 σήματα εξόδου για τη δεύτερη αλυσίδα καταχωρητών βάρδιας, 3 σήματα εξόδου για τη δεύτερη αλυσίδα πολυπλέκτη, 3 σήματα εξόδου για τους 2 πολυπλέκτες που συγκεντρώνουν κάθε σήμα δεδομένων PCB και τέλος 2 αναλογικές εισόδους για κάθε σήμα δεδομένων από τους 2 συνολικούς πολυπλέκτες.

Βήμα 5: Ελέγξτε τον Κώδικα

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

Μπορείτε να βρείτε τον κώδικα που χρησιμοποίησα εδώ:

Στο επάνω μέρος ορίζω τους ακροδέκτες arduino που θα συνδέονται σε κάθε τμήμα του PCB. Στη μέθοδο ρύθμισης, ορίζω τις ακίδες εξόδου για τους πολυπλέκτες, ενεργοποιώ τους πομπούς IR, ορίζω έναν πίνακα baseVal που παρακολουθεί την ανάγνωση του φωτός περιβάλλοντος για κάθε φωτοδίοδο και αρχικοποιεί το FastLED που θα γράφει στα led ws2812b. Στη μέθοδο βρόχου, επαναφέρουμε τη λίστα των led που έχουν οριστεί να είναι στη λωρίδα ws2812b. Στη συνέχεια, διαβάζουμε τιμές από τις φωτοδιόδους στις αλυσίδες πολυπλέκτη και ρυθμίζουμε τις λυχνίες ws2812b που υποτίθεται ότι είναι ενεργοποιημένες εάν η ένδειξη από τη φωτοδιόδο στον κόμβο είναι πάνω από ένα ορισμένο όριο από τη βασική τιμή των ενδείξεων φωτός περιβάλλοντος. Στη συνέχεια, αποδίδουμε τις λυχνίες LED εάν υπάρχει οποιαδήποτε αλλαγή στον κόμβο που πρέπει να είναι ενεργοποιημένη. Διαφορετικά, συνεχίζει να κυλά μέχρι να αλλάξει κάτι για να επιταχυνθούν τα πράγματα.

Ο κώδικας πιθανότατα θα μπορούσε να βελτιωθεί και ψάχνω να το κάνω αυτό, αλλά υπάρχει περίπου 1-2 δευτερόλεπτα καθυστέρηση από όταν ανάβουν τα φώτα αφού τοποθετηθεί ένα αντικείμενο στο τραπέζι. Πιστεύω ότι το βασικό ζήτημα είναι ότι το FastLED χρειάζεται λίγο χρόνο για να αποδώσει τα 96 led στο τραπέζι και ο κώδικας πρέπει να περάσει και να διαβάσει 77 εισόδους από τον πίνακα. Προσπάθησα αυτόν τον κώδικα με 8 led και το βρήκα σχεδόν άμεσο, αλλά κοιτάζω το γλυκό σημείο των LED που θα λειτουργούν με αυτόν τον κώδικα και θα είναι σχεδόν άμεσο, καθώς και θα βελτιώσω τον κώδικα.

Βήμα 6: Ενεργοποιήστε το Arduino

Ενεργοποιήστε το Arduino!
Ενεργοποιήστε το Arduino!
Ενεργοποιήστε το Arduino!
Ενεργοποιήστε το Arduino!
Ενεργοποιήστε το Arduino!
Ενεργοποιήστε το Arduino!

Τώρα το μόνο που χρειάζεται να κάνετε είναι να ενεργοποιήσετε το arduino και να δείτε τη λειτουργία του πίνακα! Χρησιμοποιώντας τη βιβλιοθήκη κινούμενων εικόνων που αναφέραμε προηγουμένως, μπορείτε να βάλετε μερικά δροσερά κινούμενα σχέδια ws2812b ή να βάλετε τον κωδικό του τραπεζιού και να τον δείτε να φωτίζεται σε κάθε ενότητα. Μη διστάσετε να σχολιάσετε τυχόν ερωτήσεις ή απόψεις και θα προσπαθήσω να επικοινωνήσω μαζί σας εγκαίρως. Στην υγειά σας!

Συνιστάται: