Spiedpoga: kā izmantot šo vienkāršo elementu ar Arduino

pogu

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.

spiedpogas simbols

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

ķēde 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

pull-up un pull-down

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:

atsitējs

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

anti-lielība ar spiedpogu un Arduino

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);

}


5 komentāri, atstājiet savus

Atstājiet savu komentāru

Jūsu e-pasta adrese netiks publicēta. Obligātie lauki ir atzīmēti ar *

*

*

  1. Atbildīgais par datiem: Migels Ángels Gatóns
  2. Datu mērķis: SPAM kontrole, komentāru pārvaldība.
  3. Legitimācija: jūsu piekrišana
  4. Datu paziņošana: Dati netiks paziņoti trešām personām, izņemot juridiskus pienākumus.
  5. Datu glabāšana: datu bāze, ko mitina Occentus Networks (ES)
  6. Tiesības: jebkurā laikā varat ierobežot, atjaunot un dzēst savu informāciju.

  1.   Marcelo Castillo viettura attēls teica

    Forši !!! Liels paldies, es būvēju CNC, un paradoksālā kārtā man visgrūtāk bija noskaņot pogas.

  2.   Liliana teica

    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?

  3.   John teica

    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

  4.   omars romero rinkons teica

    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.

    1.    Isaac teica

      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.