Cashigarkani, waxaan ku baran doonnaa sida loo isticmaalo badhanka riixista si loo rogo LED-ka qabasho iyo damin ESP32 microcontroller. Mashruucu wuxuu muujin doonaa sida loo akhriyo xaaladda badhanka riixista iyo xakamaynta LED-ka si waafaqsan. Marka badhanka la riixo, LED-ku wuu shidi doonaa, marka la sii daayana wuu dami doonaa. Tani waa fikrad aasaasi ah oo loogu talagalay mashaariic badan oo isdhexgal ah oo isticmaalaya ESP32.
ESP32 waa microcontroller awood badan oo leh awoodo Wi-Fi iyo Bluetooth ku dhex jira, taasoo ka dhigaysa mid ku habboon codsiyada IoT ee kala duwan. Casharkan, waxaan isticmaali doonaa ESP32 ka yimid SunFounder ESP32 Starter Kit, oo ay ku jiraan qaybo muhiim ah sida resistors iyo LEDs, si aan u abuurno wareeg fudud. Sharaxaad faahfaahsan oo ku saabsan fiilada iyo koodhka, fadlan ula soco fiidiyowga (fiidiyowga 00:00).
Qalabka La Sharxay
Qaybaha muhiimka ah ee mashruucan waxaa ka mid ah ESP32 microcontroller, badhan riixis, LED, iyo resistors. ESP32 wuxuu u shaqeeyaa sida maskaxda mashruuca, isagoo xakameynaya LED-ka iyadoo lagu salaynayo xaaladda badhanka riixista. Badhanka riixista wuxuu u oggolaanayaa isticmaalayaasha inay la falgalaan wareegga, halka LED-ku bixiyo jawaab celin muuqaal ah marka badhanka la riixo.
Badhanka riixista wuxuu u shaqeeyaa isagoo xidhaya wareegga marka la riixo, isagoo u oggolaanaya hadda inuu qulqulo. Ficilkan wuxuu u diraa calaamad HIGH ah pin-ka gelinta ee loo qoondeeyay ee ESP32, kaas oo markaa lagu akhriyi karo koodhka. Resistor-ka ku xiran badhanka wuxuu hubinayaa in pin-ku leeyahay xaalad qeexan marka badhanka la riixin, isagoo ka hortagaya dhaqan aan joogto ahayn.
Badhan riixis oo leh resistor
Tilmaamaha Fiilada
Si loo fiilo wareegga, ku bilow adigoo ku xiraaya pin-ka dheer ee LED-ka (anode) resistor 220-ohm ah. Ku xir dhamaadka kale ee resistor-ka GPIO pin 26 ee ESP32. Pin-ka gaaban ee LED-ka (cathode) waa in lagu xiraa dhulka. Marka xigta, qaado badhanka riixista oo ku xir hal dhinac korontada 3.3V ee sabuurada. Dhinaca kale ee badhanka riixista wuxuu ku xirmaa GPIO pin 14.
Intaa waxaa dheer, dhig resistor 10k-ohm ah oo ka socda GPIO pin 14 ilaa dhulka si loo hubiyo in pin-ku akhriyo LOW marka badhanka la riixin. Ugu dambeyntii, ku xir siliga dhulka ee ESP32 dhulka guud ee sabuurada rootiga. Qaabkani wuxuu u oggolaanayaa ESP32 inuu akhriyo xaaladda badhanka oo uu xakameeyo LED-ka si waafaqsan.
Tusaalooyinka Koodhka & Sharaxaadda
Xudunta barnaamijku waxay ku bilaabataa qeexida lambarrada pin-ka ee badhanka iyo LED-ka iyadoo la isticmaalayo constants. Tani waxay hubinaysaa in qoondaynta pin-ka ay ahaato mid aan isbeddelin inta lagu jiro fulinta barnaamijka.
// set pin numbers
const int buttonPin = 14; // Button pin
const int ledPin = 26; // LED pin
Shayga setup(), waxaan bilaabnaa kormeerka serial-ka waxaanan u dhigaynaa pin-ka badhanka sida INPUT halka aan u qaabeyneyno pin-ka LED-ka sida OUTPUT. Tani waxay diyaarisa ESP32 inuu ka akhriyo badhanka oo uu xakameeyo LED-ka.
Hawlgalka aasaasiga ah wuxuu u oggolaanayaa LED-ka inuu si toos ah uga jawaabo badhanka riixista. Faahfaahin dheeri ah oo ku saabsan mashruuca iyo koodhka dhammaystiran, fadlan ula soco fiidiyowga la bixiyay (fiidiyowga 14:00).
Muuujin / Waxa Lagu Filan Karaa
Marka fiilada la dhammeeyo oo koodhka la soo geliyo, riixista badhanka riixista waa inay shiddo LED-ka, iyo sii dayntiisu waa inay damiso LED-ka. Dhaqankan ayaa xaqiijinaya in xaaladda badhanka si sax ah loo akhriyay. Haddii LED-ku uusan uga jawaabin sida la filayo, hubi fiilada oo xaqiiji in badhanka si fiican u shaqeynayo.
Inta lagu jiro tijaabinta, hubi inaad ku fiirsato kormeerka serial-ka ee akhrinta xaaladda badhanka. Waa inaad aragtaa '1' marka badhanka la riixo iyo '0' marka la sii daayo. Haddii akhrintu si lama filaan ah u isbeddesho, waxay muujin kartaa arrin fiilo ah ama baahi loo qabo macquul dheeri ah oo debouncing ah oo ku jira koodhka.
// 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);
}
}