Οποιοδήποτε χρώμα αποτελείται από τρία χρώματα: Κόκκινο, Πράσινο και Μπλε, χρησιμοποιώντας ένα απλό LED RGB μπορείτε να δημιουργήσετε οποιοδήποτε χρώμα. Αλλά ο περιορισμός του RGB LED είναι ότι έχει τρία ξεχωριστά LED μέσα σε αυτό και απαιτεί τρεις ακίδες κάθε μικροελεγκτή για να λειτουργήσει ένα RGB LED. Επομένως, δεν είναι δυνατή η σύνδεση εκατοντάδων LED με έναν μικροελεγκτή.
Για να ξεπεράσει αυτό το πρόβλημα, η Adafruit δημιούργησε το NeoPixel LED Strip. Απαιτούνται μόνο τρεις ακίδες για την οδήγηση αρκετών RGB NeoPixel LED. Δύο ακίδες είναι για ισχύ και γείωση και ένας ακροδέκτης για δεδομένα εισόδου (DI). Ο πείρος δεδομένων IN χρησιμοποιείται για την αντιμετώπιση και τον έλεγχο των διαφορετικών LED στη λωρίδα με το χρώμα, τη φωτεινότητα κ.λπ. Αλλά απαιτεί έναν μικροελεγκτή για την εκτέλεση NeoPixels. Το Arduino χρησιμοποιείται πολύ συχνά με το NeoPixel, οπότε σήμερα θα μάθουμε να διασυνδέουμε LED NeoPixel με το Arduino. Μπορείτε να μάθετε περισσότερα για το NeoPixels στο AdaFruit.
Εδώ σε αυτό το έργο ελέγχουμε το NeoPixel LED χρησιμοποιώντας την οθόνη αφής Arduino και TFT LCD. Έχουμε δημιουργήσει 7 κουμπιά αφής διαφορετικών χρωμάτων σε TFT LCD 2,4 ιντσών και όταν πατάμε το κουμπί συγκεκριμένου χρώματος στην οθόνη LCD, η λωρίδα LED NeoPixel ανάβει με το ίδιο χρώμα αυτού του κουμπιού. Εδώ έχουμε χρησιμοποιήσει λωρίδα LED NeoPixel Digital RGB 30 LED.
Το NeoPixel RGB LED μπορεί να φωτιστεί σε οποιοδήποτε χρώμα και έτσι μπορούμε να προσθέσουμε περισσότερα κουμπιά στην οθόνη LCD για να φωτίσουμε τα LED με περισσότερα χρώματα όταν πατάμε αυτά τα κουμπιά. Άλλα όμορφα εφέ και μοτίβα μπορούν επίσης να προστεθούν χρησιμοποιώντας την κωδικοποίηση. Μπορείτε να δημιουργήσετε ένα πλήρες ελεγχόμενο Arduino Σύστημα Διακόσμησης χρησιμοποιώντας LED NEO Pixel και μπορείτε να ελέγξετε αυτό το σύστημα με LCD που βρίσκεται κοντά σας.
Απαιτούμενα στοιχεία:
- Arduino Mega ή οποιοδήποτε άλλο μοντέλο Arduino
- 2,4 ιντσών TFT LCD Shield με χειριστήριο SPFD5408
- NeoPixel RGB LED Strip
- Σύνδεση καλωδίων
- Καλώδιο USB ή προσαρμογέας 12 V 1A
Συνδέσεις κυκλώματος:
Για να συνδέσετε το NeoPixels Strip στο Arduino Mega απλώς συνδέστε τον πείρο Arduino 5V στον πείρο 5V του NeoPixel και το GND του Mega στο GND του NeoPixel και, στη συνέχεια, συνδέστε τον πείρο NeoPixel DI (δεδομένα εισόδου) στο Digital Pin no 36 του Arduino Mega. Τοποθετήστε προσεκτικά το TFT LCD Touch Shield πάνω από το Arduino έτσι ώστε το GND του MEGA να βρίσκεται κάτω από το GND του LCD και το 5V pin του Arduino να συνδέεται με το 5V pin του LCD.
Προσέξτε να μην ανταλλάξετε τον πείρο GND και 5V της λωρίδας LED NeoPixel ενώ το συνδέετε στο Arduino, διαφορετικά θα προκαλέσει ζημιά στη λωρίδα LED NeoPixel. Σημειώστε επίσης ότι εδώ έχουμε χρησιμοποιήσει το Arduino Mega αλλά μπορείτε να χρησιμοποιήσετε οποιοδήποτε άλλο μοντέλο Arduino.
Συνδέσεις στο Arduino με το NeoPixel RGB LED Strip:
Καρφίτσες Arduino |
Καρφίτσες της NeoPixel Strip |
5v |
5v |
GND |
GND |
Ψηφιακή καρφίτσα αρ. 36 |
DI (δεδομένα σε) |
Επεξήγηση εργασίας:
Η εργασία του NeoPixel LED με το Arduino είναι πολύ εύκολη. Απλώς πατήστε το κουμπί αφής οποιουδήποτε χρώματος στην οθόνη LCD στην οποία θέλετε να λάμψετε τη λωρίδα LED NeoPixel. Η λυχνία LED ανάβει ανάλογα με αυτό το χρώμα. Ο κώδικας γράφεται με τέτοιο τρόπο ώστε να μπορείτε να επαναλάβετε αυτήν την εργασία ατελείωτα χωρίς να χρειάζεται να επαναφέρετε το Arduino Mega. Μπορείτε να ελέγξετε τον κώδικα και το βίντεο επίδειξης στο τέλος αυτού του άρθρου.
Όταν πατήσετε οποιοδήποτε κουμπί στην οθόνη LCD, τα δεδομένα αποστέλλονται στο Arduino και το Arduino στέλνει περαιτέρω οδηγίες στο NeoPixel Strip για να ανάψει ανάλογα. Για παράδειγμα, η λωρίδα LED NeoPixel ανάβει σε πράσινο χρώμα όταν πατάμε το πράσινο κουμπί στην οθόνη LCD και η λωρίδα LED ανάβει σε κόκκινο χρώμα όταν πατάμε το κόκκινο κουμπί και ούτω καθεξής.
Επεξήγηση προγραμματισμού:
Για διασύνδεση TFT LCD με Arduino έχουμε χρησιμοποιήσει μερικές βιβλιοθήκες. Όλες οι βιβλιοθήκες διατίθενται σε ένα αρχείο rar και μπορείτε να το κατεβάσετε από αυτόν τον σύνδεσμο. Κάντε κλικ στο «Κλωνοποίηση ή λήψη» και «Λήψη ZIP» και προσθέστε στο φάκελο της βιβλιοθήκης Arduino. Αυτή η βιβλιοθήκη είναι απαραίτητη για τη σωστή λειτουργία του TFT LCD.
#περιλαμβάνω
Πρέπει να δοκιμάσετε το TFT LCD σας κάνοντας το Arduino με παραδείγματα κωδικών που δίνονται στη Βιβλιοθήκη και να ελέγξετε εάν οι κωδικοί λειτουργούν σωστά. Πρώτα ελέγξτε τη δοκιμή γραφικών, μετά βαθμονομήστε δοκιμή και τέλος δοκιμή βαφής. Εάν διαπιστώσετε ότι όλα τα χαρακτηριστικά λειτουργούν καλά, ξεκινήστε με τον κωδικό που δίνεται σε αυτό το σεμινάριο.
Επίσης, για τη σωστή λειτουργία της λωρίδας LED NeoPixel RGB, θα χρειαστείτε μια ακόμη βιβλιοθήκη, την οποία μπορείτε να κατεβάσετε από εδώ.
#περιλαμβάνω
Όπως περιγράφηκε προηγουμένως, το Digital Pin 36 of MEGA συνδέεται με DI pin του NeoPixel LED Strip όπως φαίνεται στον παρακάτω κώδικα. Επίσης, οι αριθμοί των LED στη λωρίδα είναι 30, όπως είναι γραμμένο στον κώδικα:
# καθορισμός PIN 36 # καθορισμός NUM_LEDS 30
Τα χρώματα εμφάνισης των κουμπιών LCD επισημαίνονται με ορισμένους κωδικούς. Μπορείτε να αλλάξετε αυτούς τους κωδικούς σύμφωνα με την οθόνη LCD.
#define BLACK 0x0000 #define YELLOW 0x001F #define GREEN 0xF800 #define RED 0x07E0 #define CYAN 0x07FF #define MAGENTA 0xF81F # καθορισμός ΜΠΛΕ 0xFFE0 # καθορισμός ΛΕΥΚΟΣ 0xFFFF
Ορισμένες παράμετροι για τα κουμπιά όπως το μέγεθος και η θέση ορίζονται στον κώδικα:
uint16_t πλάτος = 0; uint16_t ύψος = 0; uint16_t x = 40; uint16_t y = ύψος - 20; uint16_t w = 75; uint16_t h = 20;
Η παράμετρος h χρησιμοποιείται για τη ρύθμιση του μεγέθους του κουμπιού στην οθόνη LCD. Εάν το κάνετε 40, το μέγεθος του κουμπιού θα διπλασιαστεί Η παράμετρος y είναι συντεταγμένη y της LCD.
Τα κουμπιά αφής συμβολίζονται με αριθμούς όπως φαίνεται στον κώδικα:
#define BUTTONS 9 #define BUTTON_Red 0 #define BUTTON_DarkRed 1 #define BUTTON_RED 2 #define BUTTON_DarkGreen 3 #define BUTTON_DeepRed 4 #define BUTTON_Blue 5 #deflineBUTT
Ορισμένες λειτουργίες χρησιμοποιούνται για να εκπέμπουν το χρώμα από το NeoPixel όπως:
άκυρο EmitCyan (); άκυρο EmitWhite (); άκυρο EmitGreen (); άκυρο EmitYellow (); άκυρο EmitPink (); άκυρο EmitBlack ();
Για να βρείτε τις ψηφιακές τιμές RGB που θα εισαχθούν για το δεδομένο χρώμα, μπορείτε να ακολουθήσετε αυτόν τον σύνδεσμο. Απλώς εισαγάγετε το χρώμα που θέλετε να λάμπει η ταινία NeoPixel, βρείτε τις τιμές RGB για αυτό το χρώμα και τοποθετήστε τις παραπάνω λειτουργίες.
Η λειτουργία void initializeButtons () χρησιμοποιείται για την παροχή κειμένου και χρώματος στα κουμπιά και επίσης για την τοποθέτησή τους στην απαιτούμενη θέση στην οθόνη LCD
void initializeButtons () {uint16_t x = 40; uint16_t y = ύψος - 20; uint16_t w = 75; uint16_t h = 40; uint8_t spacing_x = 5………………..
Η λειτουργία void showCalibration () χρησιμοποιείται για τη σχεδίαση των κουμπιών στην οθόνη LCD.
void showCalibration () {tft.setCursor (40, 0); για (uint8_t i = 0; i <8; i ++) {buttons.drawButton (); }}
Ακολουθεί ο Πλήρης Κώδικας Arduino για Λάμψη της λωρίδας LED NeoPixel στο επιθυμητό Χρώμα. Ο κώδικας είναι λίγο μακρύς αλλά απλός, μπορείτε να καταλάβετε τον κώδικα εύκολα.