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

Arduino και το IC του οδηγού TLC5940 PWM LED: 7 βήματα
Arduino και το IC του οδηγού TLC5940 PWM LED: 7 βήματα

Βίντεο: Arduino και το IC του οδηγού TLC5940 PWM LED: 7 βήματα

Βίντεο: Arduino και το IC του οδηγού TLC5940 PWM LED: 7 βήματα
Βίντεο: 7 ПОЛЕЗНЫХ устройств на АРДУИНО, которые можно собрать за 15 минут. 2024, Ιούλιος
Anonim
Arduino και το IC του οδηγού TLC5940 PWM LED
Arduino και το IC του οδηγού TLC5940 PWM LED

Σε αυτό το άρθρο πρόκειται να εξετάσουμε το IC Instrument TLC5940 Texas Instruments 16 καναλιών οδηγού. Ο λόγος που το κάνουμε αυτό είναι να επιδείξουμε έναν άλλο, ευκολότερο τρόπο οδήγησης πολλών LED - και επίσης servos. Αρχικά, εδώ είναι μερικά παραδείγματα του TLC5940. Μπορείτε να παραγγείλετε TLC5940 από την PMD Way με δωρεάν παράδοση σε όλο τον κόσμο.

Το TLC5940 είναι διαθέσιμο στην έκδοση DIP, αλλά και επιτοίχια τοποθέτηση. Είναι πραγματικά ένα βολικό μέρος, που σας επιτρέπει να ρυθμίσετε τη φωτεινότητα των δεκαέξι μεμονωμένων LED μέσω PWM (διαμόρφωση πλάτους παλμού)-και μπορείτε επίσης να αλυσοδέσετε περισσότερες από μία TLC5940 για να ελέγξετε ακόμη περισσότερα.

Κατά τη διάρκεια αυτού του σεμιναρίου θα εξηγήσουμε πώς να ελέγχετε ένα ή περισσότερα IC TLC5940 με LED και θα εξετάζουμε επίσης τα servos ελέγχου. Σε αυτό το σημείο, παρακαλώ κατεβάστε ένα αντίγραφο του TLC5940 (.pdf) όπως θα το αναφέρετε μέσω αυτής της διαδικασίας. Επιπλέον, κάντε λήψη και εγκατάσταση της βιβλιοθήκης TLC5940 Arduino του Alex Leone, η οποία μπορείτε να βρείτε εδώ. Εάν δεν είστε σίγουροι πώς να εγκαταστήσετε μια βιβλιοθήκη, κάντε κλικ εδώ.

Βήμα 1: Δημιουργήστε ένα κύκλωμα επίδειξης TLC5940

Δημιουργήστε ένα κύκλωμα επίδειξης TLC5940
Δημιουργήστε ένα κύκλωμα επίδειξης TLC5940

Το ακόλουθο κύκλωμα είναι το ελάχιστο που απαιτείται για τον έλεγχο δεκαέξι LED από το Arduino ή συμβατό. Μπορείτε να το χρησιμοποιήσετε για να πειραματιστείτε με διάφορες λειτουργίες και να πάρετε μια ιδέα για το τι είναι δυνατό. Θα χρειαστείτε:

  • Ένας Arduino Uno ή συμβατός πίνακας
  • 16 κανονικές, καθημερινές λυχνίες LED που μπορούν να έχουν ρεύμα εμπρός έως και 20 mA
  • αντίσταση 2 kΩ (δώστε ή λάβετε 10%)
  • έναν κεραμικό 0.1uF και έναν ηλεκτρολυτικό πυκνωτή 4.7uF

Σημειώστε τον προσανατολισμό LED-και θυμηθείτε ότι το TLC5940 είναι ένα πρόγραμμα οδήγησης LED κοινής ανόδου-έτσι όλες οι άνοδοι LED συνδέονται μεταξύ τους και στη συνέχεια σε 5V.

Βήμα 2:

Για το συγκεκριμένο κύκλωμα, δεν θα χρειαστείτε εξωτερικό τροφοδοτικό 5V - ωστόσο μπορεί να χρειαστεί ένα στο μέλλον. Ο σκοπός της αντίστασης είναι να ελέγχει την ποσότητα ρεύματος που μπορεί να ρέει μέσω των LED. Η απαιτούμενη τιμή αντίστασης υπολογίζεται με τον ακόλουθο τύπο:

R = 39.06 / Imax όπου R (σε Ohms) είναι η τιμή αντίστασης και Imax (σε Amps) είναι η μέγιστη ποσότητα ρεύματος που θέλετε να ρέει μέσω των LED.

Για παράδειγμα, εάν έχετε LED με ρεύμα 20 mA προς τα εμπρός - ο υπολογισμός της αντίστασης θα είναι: R = 39.06 / 0.02 = 1803 Ohms. Μόλις συναρμολογήσετε το κύκλωμα - ανοίξτε το Arduino IDE και ανεβάστε το σκίτσο BasicUse.pde που βρίσκεται στο φάκελο παραδείγματος για τη βιβλιοθήκη TLC5940.

Θα πρέπει να σας παρουσιαστεί έξοδος παρόμοια με αυτήν που εμφανίζεται στο βίντεο.

Βήμα 3: Έλεγχος του TLC5940

Τώρα που λειτουργεί το κύκλωμα, πώς ελέγχουμε το TLC5940; Πρώτον, οι υποχρεωτικές λειτουργίες - περιλαμβάνουν τη βιβλιοθήκη στην αρχή του σκίτσου με:

#include "Tlc5940.h"

και, στη συνέχεια, προετοιμάστε τη βιβλιοθήκη τοποθετώντας τα ακόλουθα σε κενή ρύθμιση ():

Tlc.init (x);

Το x είναι μια προαιρετική παράμετρος - εάν θέλετε να ρυθμίσετε όλα τα κανάλια σε μια συγκεκριμένη φωτεινότητα μόλις ξεκινήσει το σκίτσο, μπορείτε να εισαγάγετε μια τιμή μεταξύ 0 και 4095 για το x στη συνάρτηση Tlc.init ().

Τώρα για να ενεργοποιήσετε ή να απενεργοποιήσετε ένα κανάλι/LED. Κάθε κανάλι αριθμείται από 0 έως 15 και η φωτεινότητα κάθε καναλιού μπορεί να ρυθμιστεί μεταξύ 0 και 4095. Αυτή είναι μια διαδικασία δύο μερών… Πρώτον-χρησιμοποιήστε μία ή περισσότερες από τις ακόλουθες λειτουργίες για να ρυθμίσετε τα απαιτούμενα κανάλια και την αντίστοιχη φωτεινότητα (PWM επίπεδο):

Tlc.set (κανάλι, φωτεινότητα);

Για παράδειγμα, εάν θέλετε να έχετε τα τρία πρώτα κανάλια ενεργοποιημένα σε πλήρη φωτεινότητα, χρησιμοποιήστε:

Tlc.set (0, 4095) · Tlc.set (1, 4095); Tlc.set (2, 4095);

Το δεύτερο μέρος είναι να χρησιμοποιήσετε τα ακόλουθα για να ενημερώσετε το TLC5940 με τις απαιτούμενες οδηγίες από το πρώτο μέρος:

Tlc.update ();

Εάν θέλετε να απενεργοποιήσετε όλα τα κανάλια ταυτόχρονα, απλώς χρησιμοποιήστε:

Tlc.clear ();

Βήμα 4:

Δεν χρειάζεται να καλέσετε ένα TLC.update () μετά τη διαγραφή της λειτουργίας. Ακολουθεί ένα γρήγορο παράδειγμα σκίτσου που ορίζει τις τιμές φωτεινότητας/PWM όλων των καναλιών σε διαφορετικά επίπεδα:

#include "Tlc5940.h" void setup () {Tlc.init (0); // αρχικοποιήστε το TLC5940 και απενεργοποιήστε όλα τα κανάλια}

κενός βρόχος ()

{για (int i = 0; i <16; i ++) {Tlc.set (i, 1023); } Tlc.update (); καθυστέρηση (1000)? για (int i = 0; i <16; i ++) {Tlc.set (i, 2046); } Tlc.update (); καθυστέρηση (1000)? για (int i = 0; i <16; i ++) {Tlc.set (i, 3069); } Tlc.update (); καθυστέρηση (1000)? για (int i = 0; i <16; i ++) {Tlc.set (i, 4095); } Tlc.update (); καθυστέρηση (1000)? }

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

Βήμα 5: Χρήση δύο ή περισσότερων TLC5940

Μπορείτε να αλυσοδέσετε αρκετά TLC5940 μαζί για να ελέγξετε περισσότερα LED. Πρώτον - συνδέστε το επόμενο TLC5940 στο Arduino όπως φαίνεται στο κύκλωμα επίδειξης - εκτός από τη σύνδεση του πείρου SOUT (17) του πρώτου TLC5940 στον πείρο SIN (26) του δεύτερου TLC5940 - καθώς τα δεδομένα ταξιδεύουν από το Arduino, μέσω το πρώτο TLC5940 στο δεύτερο και ούτω καθεξής. Στη συνέχεια, επαναλάβετε τη διαδικασία εάν έχετε ένα τρίτο κλπ. Μην ξεχνάτε το resisotr που ορίζει το ρεύμα!

Στη συνέχεια, ανοίξτε το αρχείο tlc_config.h που βρίσκεται στο φάκελο βιβλιοθήκης TLC5940. Αλλάξτε την τιμή του NUM_TLCS στον αριθμό των TLC5940 που έχετε συνδέσει μαζί, στη συνέχεια αποθηκεύστε το αρχείο και διαγράψτε επίσης το αρχείο Tlc5940.o που βρίσκεται επίσης στον ίδιο φάκελο. Τέλος επανεκκινήστε το IDE. Στη συνέχεια, μπορείτε να ανατρέξετε στα κανάλια του δεύτερου και περαιτέρω TLC5940 διαδοχικά από το πρώτο. Δηλαδή, το πρώτο είναι 0 ~ 15, το δεύτερο 16 ~ 29 κ.ο.κ.

Βήμα 6: Έλεγχος Servos Με το TLC5940

Καθώς το TLC5940 παράγει έξοδο PWM (διαμόρφωση πλάτους παλμού), είναι ιδανικό και για οδήγηση σερβομηχανισμών. Ακριβώς όπως τα LED - μπορείτε να ελέγχετε έως και δεκαέξι ταυτόχρονα. Ιδανικό για δημιουργία ρομπότ που μοιάζει με αράχνη, περίεργα ρολόγια ή κάνοντας θόρυβο.

Όταν επιλέγετε το σερβο σας, βεβαιωθείτε ότι δεν τραβάει περισσότερα από 120 mA όταν λειτουργεί (το μέγιστο ρεύμα ανά κανάλι) και λάβετε επίσης υπόψη την ενότητα "Διαχείριση ρεύματος και θερμότητας" στο τέλος αυτού του σεμιναρίου. Και χρησιμοποιήστε εξωτερική τροφοδοσία με servos, μην βασίζεστε στη γραμμή 5V του Arduino.

Η σύνδεση ενός σερβο είναι απλή - η γραμμή GND συνδέεται με το GND, το 5V (ή το καλώδιο τάσης τροφοδοσίας) συνδέεται με το 5v (ή άλλη κατάλληλη παροχή) και ο πείρος ελέγχου σερβο συνδέεται με μία από τις εξόδους του TLC5940. Τέλος - και αυτό είναι σημαντικό - συνδέστε μια αντίσταση 2,2kΩ μεταξύ των πείρων εξόδου TLC5940 που χρησιμοποιούνται και 5V. Ο έλεγχος ενός σερβο δεν είναι τόσο διαφορετικός από ένα LED. Χρειάζεστε τις δύο πρώτες γραμμές στην αρχή του σκίτσου:

#include "Tlc5940.h" #include "tlc_servos.h"

τότε το ακόλουθο in void setup ():

tlc_initServos ();

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

tlc_setServo (κανάλι, γωνία);

Ακριβώς όπως τα LED, μπορείτε να μαζέψετε μερικά από αυτά μαζί και, στη συνέχεια, να εκτελέσετε την εντολή με:

Tlc.update ();

Ας τα δούμε λοιπόν όλα εν δράσει. Το ακόλουθο παράδειγμα σκίτσου σαρώνει τέσσερις σερβο σε 90 μοίρες:

#include "Tlc5940.h" #include "tlc_servos.h"

void setup ()

{tlc_initServos (); // Σημείωση: αυτό θα μειώσει τη συχνότητα PWM στα 50Hz. }

κενός βρόχος ()

{for (int angle = 0; angle = 0; angle--) {tlc_setServo (0, angle); tlc_setServo (1, γωνία); tlc_setServo (2, γωνία); tlc_setServo (3, γωνία); Tlc.update (); καθυστέρηση (5)? }}

Το βίντεο δείχνει αυτό το σκίτσο σε δράση με τέσσερα servos.

Εάν τα servos δεν περιστρέφονται στη σωστή γωνία - για παράδειγμα ζητάτε 180 μοίρες και περιστρέφονται μόνο στους 90 ή περίπου εκεί, απαιτείται λίγη επιπλέον εργασία.

Πρέπει να ανοίξετε το αρχείο tlc_servos.h που βρίσκεται στο φάκελο βιβλιοθήκης TLC5940 Arduino και να πειραματιστείτε με τις τιμές για SERVO_MIN_WIDTH και SERVO_MAX_WIDTH. Για παράδειγμα, αλλάξτε SERVO_MIN_WIDTH από 200 σε 203 και SERVO_MAX_WIDTH από 400 σε 560.

Βήμα 7: Διαχείριση ρεύματος και θερμότητας

Όπως αναφέρθηκε προηγουμένως, το TLC5940 μπορεί να χειριστεί έως και 120 mA ανά κανάλι. Μετά από κάποιους πειραματισμούς, μπορείτε να παρατηρήσετε ότι το TLC5940 ζεσταίνεται - και αυτό είναι εντάξει.

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

συμπέρασμα

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

Αυτή η ανάρτηση σας φέρνει το pmdway.com - το οποίο προσφέρει προϊόντα TLC5940 μαζί με τα πάντα για κατασκευαστές και λάτρεις των ηλεκτρονικών, με δωρεάν παράδοση σε όλο τον κόσμο.

Συνιστάται: