Un spiedpoga ir poga, kas ļauj pārtraukt vai nosūtīt elektronisku signālu. Izmantojot šo vienkāršo elementu kopā ar citiem elementiem, jūs varat izveidot projektus daudzām lietojumprogrammām. Šāda veida spiedpogu izmantošana ir ļoti izplatīta, kad runa ir par projektiem ar Arduino. Apvienojot vairākas no šīm pogām, jūs varat izveidot nedaudz sarežģītāku tastatūru, lai gan šīm vajadzībām jau ir programmējamas tastatūras ...
Starp citu, nevajadzētu jaukt spiedpogu ar slēdzi. Tās ir pilnīgi dažādas lietas. Atšķirība ir tāda, ka slēdzis vai slēdzis tiek aktivizēts vai deaktivizēts ar katru nospiedumu, kas uz tā tiek izdarīts. Tā kā spiedpoga paliks tikai vienā stāvoklī, kamēr uz to tiek izdarīts spiediens. Esmu komentējis, ka tas var nosūtīt vai pārtraukt, tas ir tāpēc, ka ir divi pamatpogu veidi.
Ir NO vai parasti atvērtas spiedpogas un NC vai parasti slēgtas spiedpogas. Tas jums izklausīsies arī no stafetēm. Un jā, tā ir tieši tā pati darbība. Kad jums ir NC, tas ļaus strāvai iziet cauri spailēm, un tas pārtrauc tikai tad, kad jūs to nospiežat. No otras puses, NA nelaiž cauri strāvu, kad uz to netiek izdarīts spiediens, un izlaidīs to tikai tad, kad to nospiedīsit.
Zinot to, ir gandrīz viss, kas jums jāzina par spiedpogu lai sāktu savienojumu un programmēšanu, izmantojot Arduino. Patiesība ir tāda, ka tas ir tik vienkāršs elements, ka par šāda veida spiedpogām nav daudz ko teikt.
Pogas pogas integrācija ar Arduino
La pieslēdzot spiedpogu lai tas mijiedarbotos ar Arduino, nevar būt vienkāršāk. Piemērs ir diagramma, kuru varat redzēt šajās līnijās. Tas būtu viss, kas nepieciešams, lai sāktu eksperimentēt. Bet, protams, ar šo shēmu jūs varat darīt maz. Jums būtu nepieciešams mazliet iztēles, lai izlemtu, ko šī poga kontrolēs. Patiesībā, ja jūs bieži lasāt vietni hwlibre.es, jūs jau esat redzējis dažus rakstus, kuros mēs izmantojām spiedpogas ...
Veidi, kā to savienot
Viena lieta, kas jums jāzina, ir jautājums par atlēcienu un kā savienot šīs spiedpogas. Vispirms mēs ejam uz to savienošanas veidu, kas, kā jūs jau zināt, var būt ar pievilkšanas un nolaišanas rezistoriem:
- Uzvilkt- Izmantojot šo rezistora iestatījumu, nospiežot pogu, mikrokontrolleris vai Arduino var redzēt vai nolasīt uz šīs tapas nulli. Tas ir, tas to interpretē kā LOW signālu.
- Vilkt lejā: Šajā gadījumā ir pretēji, caur pievienoto tapu var nolasīt vai saņemt signālu 1 vai HIGH.
Nejauciet to ar NC vai NA, kas ir kaut kas cits, kā mēs redzējām iepriekš. Tas nav atkarīgs no citiem ...
Pretlēciens
Spiedpogām ir a lielības efekts nospiežot. Tas ir, nospiežot vai atlaižot, signālā ir svārstības, kas iet caur kontaktiem un var izraisīt tā pāreju no HIGT stāvokļa uz LOW vai otrādi, patiesībā nevēloties, lai tas notiktu. Tas var radīt nevēlamu efektu uz Arduino un likt tam darīt dīvainas lietas, piemēram, aktivizēt elementu, kad mēs patiešām vēlējāmies to izslēgt ar spiedpogu utt. Tas ir tāpēc, ka Arduino atlēcienus interpretē tā, it kā tas būtu nospiests vairāk nekā vienu reizi ...
Šī negatīvā ietekme tam ir risinājums. Lai to izdarītu, pretelēciena ķēdē (aparatūras metode) vai programmatūrā (avota koda modificēšana) jāievieš mazs kondensators, neatkarīgi no tā, vai ir izmantota pievilkšanas vai nolaižamā konfigurācija, vai tas ir NC vai NO. Visos šajos gadījumos risinājums ir jāievieš, lai izvairītos no šīm atsitieniem.
Piemēram, pull-up un pull-down ķēdes ar pretelēciena kondensators viņi izskatītos apmēram šādi:
Kamēr programmatūras metode To varēja redzēt šajā koda fragmentā:
if (digitalRead (poga) == ZEMS) // Pārbaudiet, vai poga ir nospiesta
{
nospiests = 1; // Mainīgais maina vērtību
}
ja (digitalRead (poga) == HIGH && nospiests == 1)
{
// Veiciet vēlamo darbību
nospiests = 0; // Mainīgais atgriežas sākotnējā vērtībā
}
Vienkāršs projekta piemērs
Kad būsim iemācījušies tēmu par veidiem, kā savienot mūsu spiedpogu un pretatsitienu ķēdi, mēs redzēsim praktisku piemēru kontrolēt LED ar spiedpogu. Shēma ir vienlīdz vienkārša, kā jūs varat redzēt.
Kad tas ir pareizi izveidots, nākamā lieta ir rakstīšana kodu Arduino IDE lai ieprogrammētu paneli un sāktu eksperimentēt ar pogām. Vienkāršs koda piemērs, lai kontrolētu mūsu ķēdi, būtu šāds:
// Pogas vadīšanas skices piemērs
int tapa = 2;
int stāvoklis;
pulsējoša int = 0;
anulēt iestatīšanu ()
{
pinMode (2, INPUT); // Lai lasītu impulsu, veicot šo tapas ievadi
pinMode (13, OUTPUT); // LED
Serial.begin (9600);
}
void loop ()
{
ja (digitalRead (2) == AUGSTS)
{
tapa = 2;
antiBounce (); // Izsaukums pret atlēciena funkciju
}
}
// Programmatūras atlēciena funkcija
anulēt pret atlēcienu ()
{
while (digitalRead (piespraude) == ZEMS);
stāvoklis = digitalRead (13);
digitalWrite (13 ,! stāvoklis);
while (digitalRead (piespraude) == AUGSTS);
}
Forši !!! Liels paldies, es būvēju CNC, un paradoksālā kārtā man visgrūtāk bija noskaņot pogas.
Sveiki! Es konsultējos kā iesācējs saistībā ar GND ... .. melnajam vadam nevajadzētu nākt ārā no negatīvās līnijas, kas atrodas virs 2. diagrammā redzamās?
Lielisks izskaidrojums .. pirms pāris gadiem es veicu automašīnas aizdedzes projektu, un patiesība ir tāda, ka es nekad nevarētu izdarīt pareizu taustiņu. Par aizdedzi .. Es mēģinu izmēģināt šo metodi. Es jums liels paldies par šo lielisko palīdzību
Sveiki, es veicu projektu ar trim pogām un 5 gaismas diodēm ar šādu secību.
1 spiedpoga nosūta signālu uz 2 gaismas diodēm, kuras esmu nosaucis par 1 un 2.
otrā spiedpoga nosūta signālu uz 3 gaismas diodēm, ko sauc par 2,3, 4 un XNUMX.
mans trešais spiedpoga sūta signālu vēl 3 gaismas diodēm, ko sauc par 3,4, 5 un XNUMX.
Man ir izdevies šo secību izdarīt, man ir tikai viena problēma, nospiežot 2 pogas, tas nosūta nepatiesu signālu uz LED, kuram vajadzētu palikt, izraisot periodisku mirgošanu, esmu to kontrolējis ar aizkavi (2 sekundes, kas ir tas, kas man ir vajadzīgs, lai gaismas diodes paliktu ieslēgtas un pēc tam izslēgtos. tad mans jautājums ir, kā es varu ievietot Mills funkciju savā programmā, es nesaprotu, kā Mills darbojas, gribu zināt vai varat man palīdzēt izveidojot piemēru 3 pogām, kurās katrā no tām tiek izmantotas mili, man ir vajadzīgas mili, lai varētu jebkurā laikā nospiest pogas, neaizkavējot arduino.
Sveiks, Omārs!
Es iesaku jums redzēt mūsu Arduino apmācību:
https://www.hwlibre.com/programacion-en-arduino/
Un jūs varat arī redzēt mūsu rakstu par millis ():
https://www.hwlibre.com/millis-arduino/
Sveiciens.