Бұл оқу құралы ESP32 микроконтроллерін, атап айтқанда SunFounder ESP32 IoT Learning Kit (бейнеде 00:04) көмегімен жарықдиодтың жарықтығын басқаруды көрсетеді. Бұл жоба импульстік ені модуляциясын (PWM) және оның жарық көздерінің қарқындылығын басқарудағы қолданылуын үйренетін жаңадан бастаушыларға өте қолайлы. ESP32-нің кіріктірілген PWM мүмкіндіктері тегіс, дәл басқаруға мүмкіндік береді, бұл шығармашылық жобалар үшін көптеген мүмкіндіктер ашады.
Практикалық қолданылуы:
Реттелетін жарықтығы бар қоршаған орта жарықтандыру жүйелерін құру.
Біртіндеп өшетін қарапайым түнгі шам жасау.
Әртүрлі күйлер үшін динамикалық индикатор шамын жасау (мысалы, батарея зарядының төмендігі, желіге қосылу).
Күрделі интерактивті қондырғылар жасау үшін басқа сенсорлармен және жетектермен біріктіру.
Аппараттық құралдар/Компоненттер
Жоба SunFounder ESP32 Starter Kit (бейнеде 00:12) пайдаланады, оған ESP32 микроконтроллері, кеңейту тақтасы, әртүрлі компоненттер және 18650 литий батареясы кіреді. Сондай-ақ сізге жарықдиод және 220 Ом резистор қажет болады (бейнеде 04:32).
Сым қосу нұсқаулығы
Бейнедегі сым қосу схемасына (бейнеде 01:46 және 04:18) және 04:40 уақыт белгісіндегі егжей-тегжейлі түсіндірмеге жүгініңіз. Сым қосу жарықдиодтың анодын резисторға, резисторды ESP32-нің GPIO 26 пиніне, ал жарықдиодтың катодын жерге қосуды қамтиды.
LED_with_Resistor
220 Ом резистормен тізбектей жалғанған жарықдиод. Төменде макет тақтасындағы сым қосу көрсетілген.
LED_fade_ESP32
Кодты түсіндіру
Arduino коды жарықдиодтың жарықтығын басқару үшін Импульстік Ені Модуляциясын (PWM) пайдаланады. Негізгі конфигурацияланатын бөліктер:
ledPin: Жарықдиодқа қосылған GPIO пинін анықтайды (бейнеде 09:41, 26-ға орнатылған). Басқа пинді қолдансаңыз, оны өзгертіңіз.
fadeAmount: Жарықдиод жарықтығының өзгеру жылдамдығын басқарады (бейнеде 10:06). Жоғары мән тезірек өшуді/жануды қамтамасыз етеді. Код жарықтық минималды (0) немесе максималды (255) мәнге жеткенде бағытты автоматты түрде өзгертеді (бейнеде 11:44).
const int ledPin = 26; // Жарықдиод үшін GPIO пині
int brightness = 0;
int fadeAmount = 5;
void setup() {
ledcAttachPin(ledPin, 0); // Пинді PWM арнасына қосу
}
void loop() {
ledcWrite(ledPin, brightness);
brightness = brightness + fadeAmount;
if (brightness <= 0 || brightness >= 255) {
fadeAmount = -fadeAmount;
}
delay(50);
}
Тірі жоба/Демонстрация
Бейнеде өшетін жарықдиодтың жұмысы көрсетілген (бейнеде 14:51). Нұсқаушы өшу жылдамдығын басқару үшін fadeAmount айнымалысын қалай реттеу керектігін көрсетеді (бейнеде 15:16 және 15:51). Кодты ESP32-ге жүктеу процесі де көрсетілген (бейнеде 14:20).
791-ESP32 Tutorial 5/55 - LED Fade, control brightness of an LED in Arduino
Тіл: C++
const int ledPin = 26; // The GPIO pin for the LED
int brightness = 0;
int fadeAmount = 5;
void setup() {
ledcAttach(ledPin, 5000, 8); // Attach the LED pin
}
void loop() {
ledcWrite(ledPin, brightness); // Write the new brightness value to the PWM pin
brightness = brightness + fadeAmount;
if (brightness <= 0 || brightness >= 255) {
fadeAmount = -fadeAmount;
}
delay(50); // Wait for 50 milliseconds
}
Ашықтық: Amazon серіктесі ретінде біз біліктілікке сай сатып алулардан табыс табамыз. Бұл сіз сілтемені басып, сатып алсаңыз, сізге қосымша шығынсыз кішкентай комиссия алатын болуымызды білдіреді.