Χρησιμοποιώντας αυτό σπιτικό μπορείτε να κάνετε οποιοδήποτε χρώμα στο σύστημα RGB με πέντε κουμπιά
1 - προσθέστε κόκκινο
2 - Προσθέστε πράσινο
3 - Προσθήκη μπλε
4 - Τυχαία (τυχαία χρώματα)
5 - Επαναφορά
Τι χρειαζόμαστε:
1. Arduino (στην περίπτωσή μου arduino mega)
2. Συμβούλιο ανάπτυξης
3. Τύπος βραχυκυκλωτήρα: ο μπαμπάς και ο μπαμπάς
4. LCD 1602 (2 γραμμές 16 χαρακτήρων)
5. Κουμπιά 5 τεμάχια
6. LED SMD RGB
7. Αντίσταση για 10 Kom 5 τεμάχια
Για να ξεκινήσετε, συνδέουμε το LED RGB (απουσία αντιστάσεως, βάλτε αντίσταση στα 220 ohms).
Στη συνέχεια, βάζουμε 5 κουμπιά: ένα πόδι κουμπί για την καρφίτσα 5V, και το άλλο μέσω ενός 10K αντίσταση στη γη και το ίδιο πόδι στο arduino.
Συνδέουμε την οθόνη LCD 1602 σε SDA και SCL (I2C).
Όλα αυτά συνδέονται με τις επαφές arduino (GND, 5V, SDA SCL, 2, 3, 4, 9, 10, 11, 12, 13) όπως φαίνεται στην εικόνα.
Λοιπόν, το ίδιο το σκίτσο
#include "LiquidCrustal_I2C.h" // συνδέστε τη βιβλιοθήκη για εργασία με την οθόνη μέσω I2C
#include "Wire.h" // Συνδέστε τη βιβλιοθήκη για να εργαστείτε με το I2C
int R = 9;
int G = 10;
int Β = 11;
// χρώματα RGB
int BR = 0;
int BG = 0;
int BB = 0;
// μεταβλητές για να αποθηκεύσετε την τιμή
int KR = 2; // κόκκινο κουμπί
int KG = 3; // είναι πράσινο
int KB = 4; // μπλε κουμπί
int C = 13; // κουμπί επαναφοράς
int RS = 12; // κουμπί τυχαία
LiquidCrystal_I2C lcd (0χ27.16.2); // Συνδέστε την οθόνη (διεύθυνση, στήλες, γραμμές)
void setup () {// εκτέλεση μία φορά
pinMode (R, OUTPUT);
pinMode (G, OUTPUT).
pinMode (B, OUTPUT).
// συνδέστε το LED RGB
}}
void loop () {// επαναλάβετε ατέρμονα
καθυστέρηση (10). // καθυστέρηση 10 ms
lcd.init (); // ορίστε την οθόνη
lcd.backlight (); // ενεργοποιήστε τον οπίσθιο φωτισμό της οθόνης
lcd.clear (); // διαγράψτε την οθόνη
lcd.setCursor (5, 0). // τοποθετήστε το δρομέα στη 6η στήλη και στην 0η σειρά
lcd.print ("Χρώμα"); // γράψτε χρώμα
lcd.setCursor (0, 1).
lcd.print ("R"); // γράψτε R
lcd.setCursor (6,1).
lcd.print ("G"). / γράψτε G
lcd.setCursor (12,1).
lcd.print ("Β"); γράψτε Β
lcd.print (ΒΒ); // εκτυπώστε την μπλε τιμή
lcd.setCursor (2,1).
lcd.print (BR); // εκτυπώστε την τιμή του κόκκινου
lcd.setCursor (8,1).
lcd.print (BG); // εκτυπώστε την πράσινη τιμή
lcd.setCursor (13,1).
εάν (digitalRead (KR) == HIGH) {BR + = 15; } // αν πατήσετε το κουμπί R, τότε η τιμή του R +15
αν (ψηφιακόRead (KG) == HIGH) {BG + = 15; } // αν πατήσετε το κουμπί G, τότε η τιμή του G +15
εάν (ψηφιακήRead (KB) == HIGH) {BB + = 15; } // αν πιέσετε το πλήκτρο B, τότε η τιμή B +15
αν (ψηφιακόRead (C) == HIGH) {BR - = 254; } // αν πατήσετε το κουμπί C, τότε η τιμή του R -254
αν (ψηφιακήRead (C) == HIGH) {BG - = 254; } // αν πιέσετε το κουμπί C, τότε η τιμή G -254
αν (ψηφιακήRead (C) == HIGH) {BB - = 254; } // αν πατήσετε το κουμπί C, τότε η τιμή B -254
αν (ψηφιακόRead (RS) == HIGH) {BR = τυχαίο (0, 254); } // αν πατήσετε το κουμπί RS, τότε η τιμή του R είναι από 0 έως 254
αν (ψηφιακόRead (RS) == HIGH) {BG = τυχαίο (0, 254); } // αν πατήσετε το πλήκτρο RS, τότε η τιμή του G είναι από 0 έως 254
αν (ψηφιακόRead (RS) == HIGH) {BB = τυχαίο (0, 254); } // αν πατήσετε το κουμπί RS, τότε η τιμή του B είναι από 0 έως 254
BR = περιορισμός (BR, 0, 254). // BR = (τιμή, από, έως)
analogWrite (R, BR). // χρησιμοποιώντας διαμόρφωση PWM προσαρμόζουμε τη φωτεινότητα από 0 σε 254
BG = περιορισμός (BG, 0, 254). // BG = (τιμή, από, έως)
analogWrite (G, BG); // χρησιμοποιώντας διαμόρφωση PWM προσαρμόζουμε τη φωτεινότητα από 0 σε 254
ΒΒ = περιορισμός (ΒΒ, 0, 254). // BB = (τιμή, από, έως)
analogWrite (Β, ΒΒ); // χρησιμοποιώντας διαμόρφωση PWM προσαρμόζουμε τη φωτεινότητα από 0 σε 254
}}
Κατεβάστε το σκίτσο:
Αυτό πρέπει να είναι!
Γράψτε στα σχόλια ότι δεν είναι σαφές ότι θα απαντήσω σε όλες τις ερωτήσεις
#include "LiquidCrustal_I2C.h" // συνδέστε τη βιβλιοθήκη για εργασία με την οθόνη μέσω I2C
#include "Wire.h" // Συνδέστε τη βιβλιοθήκη για να εργαστείτε με το I2C
int R = 9;
int G = 10;
int Β = 11;
// χρώματα RGB
int BR = 0;
int BG = 0;
int BB = 0;
// μεταβλητές για να αποθηκεύσετε την τιμή
int KR = 2; // κόκκινο κουμπί
int KG = 3; // είναι πράσινο
int KB = 4; // μπλε κουμπί
int C = 13; // κουμπί επαναφοράς
int RS = 12; // κουμπί τυχαία
LiquidCrystal_I2C lcd (0χ27.16.2); // Συνδέστε την οθόνη (διεύθυνση, στήλες, γραμμές)
void setup () {// εκτέλεση μία φορά
pinMode (R, OUTPUT);
pinMode (G, OUTPUT).
pinMode (B, OUTPUT).
// συνδέστε το LED RGB
}}
void loop () {// επαναλάβετε ατέρμονα
καθυστέρηση (10). // καθυστέρηση 10 ms
lcd.init (); // ορίστε την οθόνη
lcd.backlight (); // ενεργοποιήστε τον οπίσθιο φωτισμό της οθόνης
lcd.clear (); // διαγράψτε την οθόνη
lcd.setCursor (5, 0). // τοποθετήστε το δρομέα στη 6η στήλη και στην 0η σειρά
lcd.print ("Χρώμα"); // γράψτε χρώμα
lcd.setCursor (0, 1).
lcd.print ("R"); // γράψτε R
lcd.setCursor (6,1).
lcd.print ("G"). / γράψτε G
lcd.setCursor (12,1).
lcd.print ("Β"); γράψτε Β
lcd.print (ΒΒ); // εκτυπώστε την μπλε τιμή
lcd.setCursor (2,1).
lcd.print (BR); // εκτυπώστε την τιμή του κόκκινου
lcd.setCursor (8,1).
lcd.print (BG); // εκτυπώστε την πράσινη τιμή
lcd.setCursor (13,1).
εάν (digitalRead (KR) == HIGH) {BR + = 15; } // αν πατήσετε το κουμπί R, τότε η τιμή του R +15
αν (ψηφιακόRead (KG) == HIGH) {BG + = 15; } // αν πατήσετε το κουμπί G, τότε η τιμή του G +15
εάν (ψηφιακήRead (KB) == HIGH) {BB + = 15; } // αν πιέσετε το πλήκτρο B, τότε η τιμή B +15
αν (ψηφιακόRead (C) == HIGH) {BR - = 254; } // αν πατήσετε το κουμπί C, τότε η τιμή του R -254
αν (ψηφιακήRead (C) == HIGH) {BG - = 254; } // αν πιέσετε το κουμπί C, τότε η τιμή G -254
αν (ψηφιακήRead (C) == HIGH) {BB - = 254; } // αν πατήσετε το κουμπί C, τότε η τιμή B -254
αν (ψηφιακόRead (RS) == HIGH) {BR = τυχαίο (0, 254); } // αν πατήσετε το κουμπί RS, τότε η τιμή του R είναι από 0 έως 254
αν (ψηφιακόRead (RS) == HIGH) {BG = τυχαίο (0, 254); } // αν πατήσετε το πλήκτρο RS, τότε η τιμή του G είναι από 0 έως 254
αν (ψηφιακόRead (RS) == HIGH) {BB = τυχαίο (0, 254); } // αν πατήσετε το κουμπί RS, τότε η τιμή του B είναι από 0 έως 254
BR = περιορισμός (BR, 0, 254). // BR = (τιμή, από, έως)
analogWrite (R, BR). // χρησιμοποιώντας διαμόρφωση PWM προσαρμόζουμε τη φωτεινότητα από 0 σε 254
BG = περιορισμός (BG, 0, 254). // BG = (τιμή, από, έως)
analogWrite (G, BG); // χρησιμοποιώντας διαμόρφωση PWM προσαρμόζουμε τη φωτεινότητα από 0 σε 254
ΒΒ = περιορισμός (ΒΒ, 0, 254). // BB = (τιμή, από, έως)
analogWrite (Β, ΒΒ); // χρησιμοποιώντας διαμόρφωση PWM προσαρμόζουμε τη φωτεινότητα από 0 σε 254
}}