Mygtukas: kaip naudoti šį paprastą elementą su „Arduino“

mygtuką

Un mygtukas yra mygtukas, leidžiantis pertraukti arba siųsti elektroninį signalą. Naudodami šį paprastą elementą kartu su kitais elementais galite sukurti daugybės programų projektus. Šio tipo mygtukai naudojami labai dažnai, kai kalbama apie „Arduino“ projektus. Sujungę kelis iš šių mygtukų galite sukurti šiek tiek sudėtingesnę klaviatūrą, nors jau yra programuojamų klaviatūrų šiems tikslams ...

Beje, neturėtumėte painioti mygtuko su jungikliu. Jie yra visiškai skirtingi dalykai. Skirtumas yra tas, kad jungiklis arba jungiklis įjungiamas arba išjungiamas kiekvieną paspaudimą, kuris yra ant jo. Tuo metu, kai spaudžiamas mygtukas, mygtukas liks tik vienoje būsenoje. Aš pakomentavau, kad jis gali siųsti ar pertraukti, nes yra du pagrindiniai mygtukų tipai.

mygtuko simbolis

Yra NE arba paprastai atidaromi mygtukai ir NC arba paprastai uždaryti. Tai jums taip pat skambės iš estafečių. Ir taip, tai lygiai ta pati operacija. Kai turite NC, jis praleis srovę per savo gnybtus ir nutrūksta tik jums spaudžiant. Kita vertus, NA nepraleidžia srovės, kai jai nėra daromas slėgis, ir praleis ją tik tada, kai ją paspausite.

Žinant tai, yra beveik viskas, ką reikia žinoti apie mygtuką kad pradėtumėte ryšį ir programavimą naudodami „Arduino“. Tiesa ta, kad tai yra toks paprastas elementas, kad apie šio tipo mygtukus nėra daug ką pasakyti.

Mygtuko integravimas su „Arduino“

grandinė su „Arduino“

La jungiantis mygtuką kad jis sąveikautų su „Arduino“, negali būti paprasčiau. Pavyzdys yra schema, kurią galite pamatyti šiose eilutėse. Tai būtų viskas, ko reikia norint pradėti eksperimentuoti. Bet, žinoma, naudodamiesi šia schema galite padaryti nedaug. Jums reikėtų įdėti šiek tiek vaizduotės, kad nuspręstumėte, ką tas mygtukas valdys. Tiesą sakant, jei dažnai skaitote hwlibre.es, jau matėte keletą straipsnių, kuriuose mes naudojome mygtukus ...

Jungimo būdai

prisitraukimas ir nusitraukimas

Vienas dalykas, kurį turėtumėte žinoti, yra anti-bounce ir kaip sujungti šiuos mygtukus. Pirmiausia einame prie jų sujungimo būdo, kuris, kaip jūs jau žinote, gali būti su ištraukiamais ir nuleidžiamaisiais rezistoriais:

  • „Pull-Up“- Naudojant šią rezistoriaus konfigūraciją, paspaudus mygtuką, mikrovaldiklis arba „Arduino“ gali matyti arba nuskaityti to kaiščio nulį. Tai reiškia, kad jis interpretuoja jį kaip LOW signalą.
  • Nuleisk: Tokiu atveju yra priešingai, per prijungtą kaištį galite perskaityti arba priimti 1 arba HIGH signalą.

Nepainiokite jo su NC ar NA, kas yra kažkas kita, kaip matėme anksčiau. Tai nepriklauso nuo kitų ...

„Anti-Bounce“

Mygtukai turi a atšokimo efektas paspaudus. Tai yra, kai jis paspaudžiamas arba atleidžiamas, yra signalo svyravimas, kuris praeina per jo kontaktus ir gali paskatinti jį pereiti iš HIGT būsenos į LOW arba atvirkščiai, nenorėdamas, kad tai įvyktų. Tai gali sukelti nepageidaujamą poveikį „Arduino“ ir priversti jį daryti keistus dalykus, pvz., Suaktyvinti elementą, kai mes tikrai norėjome jį išjungti paspaudę mygtuką ir pan. Taip yra todėl, kad „Arduino“ atšokimus aiškina taip, lyg būtų paspaustas ne vieną kartą ...

Tas neigiamas poveikis jis turi sprendimą. Tam reikia naudoti mažą kondensatorių grandinėje, apsaugančioje nuo peršokimo (aparatūros metodas) arba programinėje įrangoje (modifikuojant šaltinio kodą), nesvarbu, ar naudojama ištraukimo, ar ištraukimo konfigūracija, ar NC arba NO. Visais šiais atvejais sprendimas turi būti įgyvendintas siekiant išvengti šių atšokimų.

Pavyzdžiui, pritraukimo ir ištraukimo grandinės su kondensatorius nuo atšokimo jie atrodytų maždaug taip:

atšokęs

O programinės įrangos metodas Tai buvo galima pamatyti šiame kodo fragmente:

jei (digitalRead (mygtukas) == LOW) // Patikrinkite, ar mygtukas paspaustas
{
paspaustas = 1; // Kintamasis keičia vertę
}
if (digitalRead (mygtukas) == HIGH && paspaustas == 1)
{
// Atlikite norimą veiksmą
paspaustas = 0; // Kintamasis grįžta į pradinę vertę
}

Paprastas projekto pavyzdys

anti-bounce su mygtuku ir Arduino

Sužinoję būdus, kaip prijungti savo mygtuką ir anti-rebound grandinę, pamatysime praktinį pavyzdį valdyti šviesos diodą mygtuku. Schema yra vienodai paprasta, kaip matote.

Teisingai prijungus, reikia rašyti „Arduino IDE“ kodą užprogramuoti skydelį ir pradėti eksperimentuoti su mygtukais. Paprastas kodo pavyzdys, kaip valdyti mūsų grandinę, būtų toks:

// Eskizo mygtukui valdyti pavyzdys
int kaištis = 2;
int valstija;
pulsuojantis int = 0;
negaliojanti sąranka ()

{
pinMode (2, INPUT); // Norėdami skaityti impulsą, atlikdami tą smeigtuką

pinMode (13, OUTPUT); // Šviesos diodui

Serijos pradžia (9600);
}
tuščia kilpa ()

{
jei („digitalRead“ (2) == AUKŠTAS)

{

kaištis = 2;

antiBounce (); // Skambinimas anti-bounce funkcija

}
}
// Programinės įrangos anti-bounce funkcija
negaliojantis anti-bounce ()

{
while (digitalRead (PIN) == LOW);
būsena = digitalRead (13);
„digitalWrite“ (būsena 13 ,!);
while (digitalRead (PIN) == AUKŠTAS);

}


5 komentarai, palikite savo

Palikite komentarą

Jūsų elektroninio pašto adresas nebus skelbiamas. Privalomi laukai yra pažymėti *

*

*

  1. Atsakingas už duomenis: Miguel Ángel Gatón
  2. Duomenų paskirtis: kontroliuoti šlamštą, komentarų valdymą.
  3. Įteisinimas: jūsų sutikimas
  4. Duomenų perdavimas: Duomenys nebus perduoti trečiosioms šalims, išskyrus teisinius įsipareigojimus.
  5. Duomenų saugojimas: „Occentus Networks“ (ES) talpinama duomenų bazė
  6. Teisės: bet kuriuo metu galite apriboti, atkurti ir ištrinti savo informaciją.

      Marcelo Castillo vietos rezervavimo atvaizdas sakė

    Saunus!!! Labai ačiū, aš kūriau CNC ir paradoksalu, kad mygtukus man buvo sunkiausia sureguliuoti.

      Liliana sakė

    Sveiki! Aš konsultuojuosi kaip naujokas, kalbėdamas apie BND ... .. juoda viela neturėtų išeiti iš neigiamos linijos, esančios virš tos, kuri parodyta 2 diagramoje?

      Jonas sakė

    Puikus paaiškinimas .. prieš porą metų aš padariau automobilio uždegimo projektą ir tiesa, kad niekada negalėjau atlikti teisingo klavišo paspaudimo. Už uždegimą .. Aš išbandysiu šį metodą. Labai dėkoju už šią puikią pagalbą

      omaras romero rinconas sakė

    Sveiki, darau projektą su trimis mygtukais ir 5 šviesos diodais tokia seka.
    1 mygtukas siunčia signalą į 2 šviesos diodus, kuriuos pavadinau 1 ir 2.
    antrasis mygtukas siunčia signalą į 3 šviesos diodus, vadinamus 2,3, 4 ir XNUMX.
    mano trečiasis mygtukas siunčia signalą į kitus 3 šviesos diodus, vadinamus 3,4, 5 ir XNUMX.

    Man pavyko padaryti tą seką, turiu tik vieną bėdą, paspaudus 2 mygtukus, siunčia klaidingą signalą į LED, kuris turėtų likti degęs, todėl jis su pertrūkiais mirksės, aš suvaldžiau tai uždelsdamas (2 sekundes, ko man reikia, kad šviesos diodai liktų įjungti, o paskui išsijungtų. Tada mano klausimas kaip galiu įdėti Mills funkciją į savo programą, nesuprantu kaip veikia Mills, noriu sužinoti ar galite man padėti Pateikiant 3 mygtukų pavyzdį, kiekviename iš jų naudojami mili, man reikia mili, kad galėčiau bet kada paspausti mygtukus, neatidėliodama arduino.

         Izaokas sakė

      Sveiki Omarai,
      Rekomenduoju peržiūrėti mūsų Arduino pamoką:
      https://www.hwlibre.com/programacion-en-arduino/
      Taip pat galite pamatyti mūsų straipsnį apie milis ():
      https://www.hwlibre.com/millis-arduino/
      Pasisveikinimas.