Taster: kako koristiti ovaj jednostavni element sa Arduinom

dugme

Un taster je dugme koje omogućava prekidanje ili slanje elektroničkog signala. Ovim jednostavnim elementom u kombinaciji s drugim elementima možete stvoriti projekte za mnoštvo aplikacija. Korištenje ove vrste tipki vrlo je često kada su u pitanju projekti s Arduinom. A kombiniranjem nekoliko ovih tipki možete stvoriti nešto složeniju tipkovnicu, iako za ovu namjenu već postoje programabilne tipkovnice ...

Inače, ne biste trebali brkati tipku s prekidačem. Potpuno su različite stvari. Razlika je u tome što se prekidač ili prekidač aktivira ili deaktivira sa svakim pritiskom na njega. Dok će dugme ostati samo u jednom stanju dok se na njega vrši pritisak. Komentirao sam da može slati ili prekidati, jer postoje dvije osnovne vrste tipki.

taster simbol

Postoje NE ili normalno otvoreni tasteri i NC ili normalno zatvoreni tasteri. To će vam zvučati i iz releja. I da, to je potpuno ista operacija. Kada imate NC, on će pustiti struju da prolazi kroz njegove terminale i prekida ga samo dok ga pritiskate. S druge strane, NA ne pušta struju da prođe kad se na nju ne vrši pritisak i propustit će je samo kad je pritisnete.

Znajući to, je gotovo sve što trebate znati o gumbu za pokretanje veze i programiranje pomoću Arduina. Istina je da je to toliko jednostavan element da se o ovoj vrsti tipkala nema puno više reći.

Integracija tastera sa Arduinom

krug sa Arduinom

La spajanje tastera učiniti interakciju s Arduinom ne može biti jednostavnije. Primjer je dijagram koji možete vidjeti na ovim linijama. To bi bilo sve što je potrebno da bi se započelo eksperimentiranje. Ali naravno, s tom shemom možete malo učiniti. Trebali biste uložiti malo mašte da odlučite čime će to dugme upravljati. U stvari, ako često čitate hwlibre.es, već ste vidjeli neke članke u kojima smo koristili tipke ...

Načini povezivanja

povlačenje i povlačenje

Jedna stvar koju biste trebali znati je pitanje protiv odbijanja i kako povezati ove tipke. Prvo idemo na način njihovog povezivanja, za koji već znate da može biti s pull-up i pull-down otpornicima:

  • Povuci- S ovom postavkom otpornika, kada se pritisne tipka, mikrokontroler ili Arduino mogu vidjeti ili očitati nulu na tom pinu. Odnosno, tumači ga kao NISKI signal.
  • Povući: u ovom slučaju je suprotno, možete pročitati ili primiti signal 1 ili VISOK kroz povezani pin.

Ne brkajte ga sa NC ili NA, što je nešto drugo drugačije kao što smo vidjeli ranije. Ovo je neovisno od ostalih ...

Anti-Bounce

Tasteri imaju a povratni efekt kada se pritisne. Odnosno, kada se pritisne ili otpusti, dolazi do fluktuacije signala koji prolazi kroz njegove kontakte i može dovesti do toga da pređe iz VISOKOG stanja u NISKO ili obrnuto, a da zaista ne želi da se to dogodi. To može proizvesti neželjeni efekt na Arduino i natjerati ga da radi čudne stvari, poput aktiviranja elementa kada smo ga stvarno željeli isključiti tipkom itd. To je zato što Arduino tumači odskoke kao da je pritisnut više puta ...

Taj negativni efekat ima rješenje. U tu svrhu, mali kondenzator mora biti implementiran u anti-bounce krug (hardverska metoda) ili softver (modifikacija izvornog koda), bez obzira da li je korištena pull-up ili pull-down konfiguracija ili je NC ili NO. U svim tim slučajevima, rješenje se mora primijeniti kako bi se izbjegli ovi skokovi.

Na primjer, pull-up i pull-down krugovi pomoću kondenzator protiv odbijanja izgledali bi otprilike ovako:

rebounder

Dok je softverska metoda To se može vidjeti u ovom isječku koda:

if (digitalRead (button) == LOW) // Provjerite je li tipka pritisnuta
{
pritisnuto = 1; // Varijabla mijenja vrijednost
}
ako je (digitalRead (dugme) == VISOKO && pritisnuto == 1)
{
// Izvršite željenu radnju
pritisnuto = 0; // Varijabla se vraća na svoju izvornu vrijednost
}

Jednostavan primjer projekta

protiv odskoka s tipkom i Arduinom

Jednom kada naučimo temu načina povezivanja našeg dugmeta i kruga za odbijanje, vidjet ćemo praktični primjer upravljajte LED-om pomoću dugmeta. Shema je jednako jednostavna kao što vidite.

Jednom kada se pravilno povežete, slijedeća stvar je pisanje kod u Arduino IDE-u da programirate svoju ploču i započnete eksperimentiranje s gumbima. Jednostavan primjer koda za upravljanje našim krugom bio bi sljedeći:

// Primjer skice za upravljanje tipkom
int pin = 2;
int state;
pulsirajući int = 0;
void setup ()

{
pinMode (2, INPUT); // Za očitavanje pulsa unošenjem tog pin-a

pinMode (13, IZLAZ); // Za LED

Serial.begin (9600);
}
void loop ()

{
if (digitalRead (2) == HIGH)

{

pin = 2;

antiBounce (); // Poziv na funkciju protiv odbijanja

}
}
// Softverska funkcija protiv odbijanja
void anti-bounce ()

{
while (digitalRead (pin) == LOW);
stanje = digitalRead (13);
digitalWrite (13 ,! stanje);
while (digitalRead (pin) == HIGH);

}


5 komentara, ostavi svoj

Ostavite komentar

Vaša e-mail adresa neće biti objavljena. Obavezna polja su označena sa *

*

*

  1. Za podatke odgovoran: Miguel Ángel Gatón
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obavezi.
  5. Pohrana podataka: Baza podataka koju hostuje Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.

  1.   Slika rezerviranog mjesta Marcela Castilla rekao je

    Super !!! Puno vam hvala, gradim CNC i paradoksalno mi je bilo najteže podesiti tipke.

  2.   liliana rekao je

    Zdravo! Savjetujem se kao novak, u vezi s GND-om ... ..crna žica ne bi trebala izlaziti iz negativne linije koja se nalazi iznad one prikazane na dijagramu 2?

  3.   Giovanni rekao je

    Izvrsno objašnjenje .. Prije par godina napravio sam projekt za pokretanje automobila i istina je da nikada nisam mogao napraviti ispravan pritisak za paljenje .. Pokušat ću s ovom metodom. Veliko hvala na ovom sjajnom pomoć

  4.   omar romero rincon rekao je

    Poštovani, radim projekat sa tri dugmeta i 5 LED dioda sa sledećim redosledom.
    1 dugme šalje signal na 2 LED diode, koje sam nazvao 1 i 2.
    drugi taster šalje signal na 3 LED diode, nazvane 2,3 i 4.
    moj treći taster šalje signal na druge 3 LED diode, nazvane 3,4, 5 i XNUMX.

    Ja sam uspeo da uradim taj redosled, imam samo jedan problem, pri pritisku na 2 dugmeta šalje lažni signal na LED koja bi trebalo da ostane upaljena zbog čega ona povremeno treperi, kontrolisao sam tako što sam stavio odlaganje (od 2 sekunde, sto mi treba da LED diode ostanu upaljene pa se onda ugase.onda moje pitanje je kako da ubacim funkciju millis u svoj program,ne razumijem kako millis radi,zanima me da li mozete da mi pomognete praveći primjer za 3 dugmeta koristeći milise u svakom od njih, potreban mi je milis da bih mogao pritisnuti dugmad u bilo kojem trenutku bez odlaganja arduina.

    1.    Isaac rekao je

      zdravo Omar,
      Preporučujem da pogledate naš Arduino tutorijal:
      https://www.hwlibre.com/programacion-en-arduino/
      A možete vidjeti i naš članak o millisu ():
      https://www.hwlibre.com/millis-arduino/
      A pozdrav.