ESP32 Оқулық 6/55 - RGB жарықдиодын қолдану Жоба 2.3 - SunFounder ESP32 IoT оқу жиынтығы
Бұл оқулықта біз ESP32 микроконтроллерін пайдаланып RGB жарықдиодын қалай басқаруға болатынын үйренеміз. Бұл жоба RGB жарықдиодын қосу және PWM (импульстік ені модуляциясы) сигналдарын пайдаланып оның түстерін басқаруды түсінуге көмектеседі. Осы оқулықтың соңында сіз әрбір жарықдиод құрамдас бөлігінің қарқындылығын реттеу арқылы кез келген түс комбинациясын жасай аласыз. Бұл визуалды тартымды жобаларды жасау үшін негізгі дағды болып табылады.

RGB жарықдиоды және оның түстерді араластыру мүмкіндіктерін жақсырақ түсіну үшін біз оны ESP32-мен басқаруға қажетті сымдарды және кодты зерттейміз. Егер сізге визуалды көмек қажет болса, сымдар мен кодты орнатудың нақтырақ түсіндірмесі үшін бейнені (бейнеде 03:20) тексеруді ұмытпаңыз.
Аппараттық құрал түсіндірмесі
Бұл жобаның негізгі құрамдас бөліктеріне ESP32 модулі, RGB жарықдиоды және резисторлар кіреді. ESP32 - бұл кірістірілген Wi-Fi және Bluetooth мүмкіндіктері бар қуатты микроконтроллер, бұл оны IoT қолданбалары үшін өте қолайлы етеді. RGB жарықдиоды бір қаптамада орналасқан үш жеке жарықдиодтан (қызыл, жасыл және көк) тұрады, бұл үш түстің комбинациясына негізделген түстердің кең ауқымын жасауға мүмкіндік береді.
Біздің қондырғыда RGB жарықдиоды ортақ анод конфигурациясында қосылады, мұнда анод түйреуіші оң кернеуге қосылады, ал әрбір түстің катод түйреуіші тәуелсіз басқарылады. Осылайша, біз ESP32 арқылы PWM сигналдарын жіберу арқылы әрбір түстің жарықтығын реттей аламыз.
Деректер парағының мәліметтері
| Өндіруші | SunFounder |
|---|---|
| Бөлшек нөмірі | RGB-LED-4PIN |
| Ортақ түрі | Ортақ анод |
| Тікелей кернеу (әр жарықдиод үшін) | 2.0 В (Қызыл), 3.2 В (Жасыл), 3.2 В (Көк) |
| Максималды ток (әр жарықдиод үшін) | 20 мА |
| Жұмыс температурасы | -25-тен 85 °C-қа дейін |
| Қаптама | 4 түйреуішті тесік арқылы |
- Токты шектеу және зақымдануды болдырмау үшін әрбір түске 220 Ом резисторды пайдаланыңыз.
- Ортақ түйреуіштің тиісті кернеуге (ESP32 үшін 3.3 В) қосылғанына көз жеткізіңіз.
- Кері зақымдануды болдырмау үшін RGB жарықдиодын қосу кезінде полярлықты екі рет тексеріңіз.
- Жарықтық деңгейлерін басқару үшін PWM пайдаланыңыз, шамамен 5000 Гц жиілік ұсынылады.
- Бүкіл қондырғыны қосу алдында әрбір түсті жеке сынап көріңіз.
Сымдарды қосу нұсқаулары
RGB жарықдиодын ESP32-ге қосу үшін алдымен RGB жарықдиодындағы түйреуіштерді анықтаңыз. Ең ұзын түйреуіш - ортақ анод, ол ESP32-дегі 3.3 В қорек көзіне қосылады. Қалған үш түйреуіш қызыл, жасыл және көк түстерге арналған. Біздің қондырғыда қызыл түйреуішті GPIO 27-ге, жасыл түйреуішті GPIO 26-ға және көк түйреуішті GPIO 25-ке қосыңыз. Осы түйреуіштердің әрқайсысына 220 Ом резистор да қосылады.
RGB жарықдиодын макет тақтасына орналастырудан бастаңыз, ортақ анод түйреуіші сол жақта екеніне көз жеткізіңіз. Қызыл түйреуішті макет тақтасына салып, оны резистордың бір ұшына қосыңыз, резистордың екінші ұшы GPIO 27-ге барады. Жасыл және көк түйреуіштер үшін де осыны қайталаңыз, жасыл түйреуішті GPIO 26-ға және көк түйреуішті GPIO 25-ке қосыңыз. Соңында, тізбекті аяқтау үшін ортақ түйреуішті ESP32-дегі 3.3 В түйреуішіне қосыңыз. ESP32-нің жерін де макет тақтасына қосуды ұмытпаңыз.

Код мысалдары және түсіндірме
Кодта біз RGB жарықдиод түйреуіштерін тұрақтыларды пайдаланып анықтаудан бастаймыз. Мысалы, const int redPin = 27; қызыл жарықдиод үшін GPIO түйреуішін анықтайды. Сондай-ақ PWM жиілігі мен ажыратымдылығын const int freq = 5000; және const int resolution = 8; арқылы орнатамыз. Бұл әрбір жарықдиод түсінің жарықтығын басқару үшін қажетті параметрлерді орнатады.
const int redPin = 27;
const int greenPin = 26;
const int bluePin = 25;
Әрі қарай, setup() функциясында әрбір түс үшін PWM арналарын конфигурациялаймыз. ledcAttach() функциясы әрбір түйреуішті сәйкес PWM арнасына байланыстырады. Бұл орнату әрбір түстің жарықтығын тәуелсіз басқара алатынымызды қамтамасыз етеді.
void setup() {
ledcAttach(redPin, freq, resolution);
ledcAttach(greenPin, freq, resolution);
ledcAttach(bluePin, freq, resolution);
}
loop() функциясында біз жарықдиод түстерін өзгерту үшін setColor() функциясын қолданамыз. Бұл функцияға берілген мәндер қызыл, жасыл және көк түстердің қарқындылығын білдіреді. Мысалы, setColor(255, 0, 0); шақыруы жарықдиодты қызыл түске орнатады. Әрбір түс өзгерісінен кейін келесі түске ауысу алдында бір секунд күту үшін delay(1000); қолданамыз.
void loop() {
setColor(255, 0, 0); // Қызыл
delay(1000);
setColor(0, 255, 0); // Жасыл
delay(1000);
}
Демонстрация / Не күтуге болады
Сымдарды қосуды аяқтап, кодты ESP32-ге жүктегеннен кейін RGB жарықдиодының әртүрлі түстермен айналып өтетінін көруіңіз керек: қызыл, жасыл, көк, сары, күлгін және көгілдір. Егер жарықдиод дұрыс жанбаса, сымдарды қосуды қайта тексеріп, ортақ анодтың 3.3 В-қа қосылғанына көз жеткізіңіз. Сонымен қатар, күтпеген түстерді байқасаңыз, жарықдиод түйреуіштеріне резистор қосылымдарын тексеріңіз.
Бейнеде көрсетілгендей (бейнеде 10:45), setColor() функциясындағы мәндерді реттеу әртүрлі түстерді жасауға мүмкіндік береді. RGB жарықдиодының қалай жауап беретінін көру үшін әртүрлі комбинациялармен тәжірибе жасаңыз.
Бейне уақыт белгілері
- 00:00 - RGB жарықдиодына кіріспе
- 03:20 - Сымдарды қосу түсіндірмесі
- 10:45 - Кодты қарап шығу
- 12:30 - Түстерді араластыру демонстрациясы
// Define RGB LED pins
const int redPin = 27;
const int greenPin = 26;
const int bluePin = 25;
// Define PWM frequency and resolution
const int freq = 5000;
const int resolution = 8;
void setup() {
// Set up PWM pins
ledcAttach(redPin, freq, resolution);
ledcAttach(greenPin, freq, resolution);
ledcAttach(bluePin, freq, resolution);
}
void loop() {
setColor(255, 0, 0); // Red
delay(1000);
setColor(0, 255, 0); // Green
delay(1000);
setColor(0, 0, 255); // Blue
delay(1000);
setColor(255, 255, 0); // Yellow
delay(1000);
setColor(80, 0, 80); // Purple
delay(1000);
setColor(0, 255, 255); // Cyan
delay(1000);
}
void setColor(int red, int green, int blue) {
ledcWrite(redPin, red);
ledcWrite(greenPin, green);
ledcWrite(bluePin, blue);
}
Common Course Links
Common Course Files
Ресурстар мен сілтемелер
-
ҚұжаттамаESP32 Tutorial 6/55 - SunFounder RGB LED doc pagedocs.sunfounder.com
Файлдар📁
Файлдар жоқ.