Бұл оқулықта біз ESP32 микроконтроллерімен жарықдиодты қосу және өшіру үшін түймені қалай пайдалану керектігін үйренеміз. Жоба түйменің күйін оқу және жарықдиодты соған сәйкес басқаруды көрсетеді. Түйме басылғанда, жарықдиод қосылады, ал босатылғанда, ол өшеді. Бұл ESP32 көмегімен көптеген интерактивті жобалар үшін негізгі тұжырымдама болып табылады.
ESP32 - кірістірілген Wi-Fi және Bluetooth мүмкіндіктері бар қуатты микроконтроллер, оны әртүрлі IoT қолданбаларына жарамды етеді. Бұл сабақта біз резисторлар мен жарықдиодтар сияқты қажетті компоненттерді қамтитын SunFounder ESP32 Starter Kit жинағындағы ESP32 пайдаланып, қарапайым тізбек жасаймыз. Сымдар мен кодтың егжей-тегжейлі түсіндірмесі үшін бейнені қараңыз (бейнеде 00:00).
Аппараттық құрал түсіндірмесі
Бұл жобаның негізгі компоненттеріне ESP32 микроконтроллері, түйме, жарықдиод және резисторлар кіреді. ESP32 жобаның миы ретінде әрекет етеді, түйменің күйіне негізделген жарықдиодты басқарады. Түйме пайдаланушыларға тізбекпен әрекеттесуге мүмкіндік береді, ал жарықдиод түйме басылғанда визуалды кері байланыс береді.
Түйме басылғанда тізбекті жауып, токтың ағуына мүмкіндік беру арқылы жұмыс істейді. Бұл әрекет ESP32-нің белгіленген кіріс түйреуішіне HIGH сигналын жібереді, оны кодта оқуға болады. Түймеге қосылған резистор түйме басылмаған кезде түйреуіштің анықталған күйде болуын қамтамасыз етеді, бұл тұрақсыз әрекетті болдырмайды.
Резистормен түйме
Сымдарды жалғау нұсқаулары
Тізбекті жалғау үшін жарықдиодтың ұзын түйреуішін (анод) 220 Ом резисторға қосудан бастаңыз. Резистордың екінші ұшын ESP32-дегі GPIO 26 түйреуішіне қосыңыз. Жарықдиодтың қысқа түйреуіші (катод) жерге қосылуы керек. Әрі қарай, түймені алып, бір жағын тақтадағы 3.3В қуат көзіне қосыңыз. Түйменің екінші жағы GPIO 14 түйреуішіне қосылады.
Сонымен қатар, GPIO 14 түйреуішінен жерге 10к Ом резисторды қойыңыз, бұл түйме басылмаған кезде түйреуіштің LOW күйін оқуын қамтамасыз етеді. Соңында, ESP32-ден жер сымын макет тақтасындағы ортақ жерге қосыңыз. Бұл орнату ESP32-ге түйменің күйін оқуға және жарықдиодты соған сәйкес басқаруға мүмкіндік береді.
Код мысалдары және түсіндірме
Бағдарламаның негізі түйме мен жарықдиод үшін түйреуіш нөмірлерін тұрақтылар арқылы анықтаудан басталады. Бұл бағдарламаның орындалуы кезінде түйреуіш тағайындауларының өзгеріссіз қалуын қамтамасыз етеді.
// түйреуіш нөмірлерін орнату
const int buttonPin = 14; // Түйме түйреуіші
const int ledPin = 26; // Жарықдиод түйреуіші
setup() функциясында біз сериялық мониторды инициализациялаймыз және түйме түйреуішін кіріс ретінде орнатамыз, ал жарықдиод түйреуішін шығыс ретінде конфигурациялаймыз. Бұл ESP32-ні түймеден оқуға және жарықдиодты басқаруға дайындайды.
loop() функциясының ішінде бағдарлама үздіксіз түйменің күйін оқиды және оны сериялық мониторға шығарады. Егер түйме басылса, жарықдиод қосылады; әйтпесе, ол өшеді. Бұл логика түйменің күйіне негізделген жарықдиодты ауыстыру үшін маңызды.
Бұл негізгі функционалдылық жарықдиодтың түймеге тікелей жауап беруіне мүмкіндік береді. Жоба туралы қосымша мәліметтер мен толық код үшін берілген бейнені қараңыз (бейнеде 14:00).
Демонстрация / Не күтуге болады
Сымдарды жалғау аяқталғаннан және код жүктелгеннен кейін, түймені басу жарықдиодты қосуы керек, ал босату оны өшіреді. Бұл әрекет түйменің күйінің дұрыс оқылып жатқанын растайды. Егер жарықдиод күтілгендей жауап бермесе, сымдарды тексеріңіз және түйменің дұрыс жұмыс істеп тұрғанына көз жеткізіңіз.
Тестілеу кезінде түйменің күйін оқу үшін сериялық мониторды бақылауды ұмытпаңыз. Түйме басылғанда '1', ал босатылғанда '0' көруіңіз керек. Егер көрсеткіштер күтпеген жерден өзгерсе, бұл сымдардағы ақаулықты немесе кодта қосымша дебаунсинг логикасының қажеттілігін көрсетуі мүмкін.
Бейне уақыт белгілері
00:00 Бастау
1:48 Жобамен таныстыру
3:10 Ауыстырып-қосқыш және түйме түсіндірілді
7:19 Сымдарды жалғау түсіндірілді
12:25 Түймеге арналған Arduino коды түсіндірілді
15:56 ESP32 платасын және COM портын таңдау
17:38 Жобаның көрсетілімі
18:33 Жоба-2: Ауыстырып-қосу және LED
19:09 LED жарығын ауыстырып-қосуға арналған Arduino коды
// set pin numbers
const int buttonPin = 14; // Button pin
const int ledPin = 26; // LED pin
// variable for storing the button status
int buttonState = 0;
void setup() {
Serial.begin(115200);
// initialize the button pin as an input
pinMode(buttonPin, INPUT);
// initialize the LED pin as an output
pinMode(ledPin, OUTPUT);
}
void loop() {
// read the state of the button value
buttonState = digitalRead(buttonPin);
Serial.println(buttonState);
delay(100);
// if the button is pressed
if (buttonState == HIGH) {
// turn LED on
digitalWrite(ledPin, HIGH);
} else {
// turn LED off
digitalWrite(ledPin, LOW);
}
}
Ашықтық: Amazon серіктесі ретінде біз біліктілікке сай сатып алулардан табыс табамыз. Бұл сіз сілтемені басып, сатып алсаңыз, сізге қосымша шығынсыз кішкентай комиссия алатын болуымызды білдіреді.