Sibil & Inhinyeriyang Pampasabog
Pag - unawa at Pag - aalis ng Paa sa Arduino Button Inputs
Table of Contents
Ang pag-iinsip ay isang teknik na ginagamit sa microcontrol programming upang matiyak ang maaasahang pagbabasa ng mga input ng buton. Kapag pinindot o inilabas ang isang buton, maaari itong lumikha ng maramihang mga signal dahil sa mekanikal na mga pagyanig, na nagiging sanhi ng mga maling pag-udyok.Ang pag-iisyu ng debouncing ay tumutulong upang salain ang mga hindi kanais nais na signal na ito at matiyak ang tumpak na pag-unawa ng mga pindot ng buton.
Ano ba ang Debouncing?
Ang pag-iinip ay ang proseso ng pag-alis ng ingay na dulot ng pisikal na pag-iimbita ng isang buton. Kapag pinindot ang isang buton, ang contact ay maaaring mabilis na mag-uugnay at mag-iba ng mga ilang beses bago manirahan. kung hindi ito mag-ebolb, ang mga mabilis na signal na ito ay maaaring bigyan ng maling kahulugan bilang multiple presss.
Mga Paraan ng Pag - aalis ng Bibo
May dalawang karaniwang paraan ng pagpapatupad ng pag-iimbestiga sa Arduino:
- Ang Software Debouncing: ay kinasasangkutan ng pagdaragdag ng isang pagkaantala o pagsusuri sa estado ng button sa paglipas ng panahon upang matiyak ang isang matatag na hudyat.
- [Hardware Debouncing: Ginagamit ang mga elektronikong sangkap tulad ng RC filters o Schmitt ay nag-uudyok upang mapadulas ang signal.
Pag - aalis ng mga Software
Ang software debouncing ay karaniwang ginagamit sa mga proyektong Arduino. Ito ay kinasasangkutan ng pagbabasa ng estadong button, paghihintay ng maikling panahon, at pagkatapos ay kumpirma kung ang estado ay mananatiling hindi nagbabago.Ang prosesong ito ay nagbabawas ng mga maling sanhi na sanhi ng pag-ikot.
Halimbawa ng mga code sappet:
st int buttonPin = 2;
[[int ⁇ t ⁇ t]] [2] [1]] [
[1] Pinanigan ng mahabang panahon ang huling DrebounceTime = 0;
[1] Hindi na-signed long debounceDelay = 50;]
Iwasan ang loop() ⁇
int reading = digital Reading(buttonPin);
kung (basahin !=[kailangan ng sanggunian] ⁇
[huling DrebounceTime = millis();
kung ((millis() - huling DrebounceTime) [t ⁇ t ⁇ t]; debounceDelay) ⁇ [
buttonState = pagbasa;]
⁇
⁇