Tipkalo: kako koristiti ovaj jednostavni element s Arduinom

dugme

Un gumb je gumb koji vam omogućuje prekidanje ili slanje elektroničkog signala. Ovim jednostavnim elementom u kombinaciji s drugim elementima možete stvoriti projekte za mnoštvo aplikacija. Upotreba ove tipke tipki vrlo je česta kada su u pitanju projekti s Arduinom. Kombinacijom nekoliko ovih gumba možete stvoriti nešto složeniju tipkovnicu, iako već postoje programabilne tipkovnice za ove namjene ...

Usput, ne biste trebali miješati 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 tipka 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 gumba.

simbol tipke

Postoje NEMA ili normalno otvorenih tipki i NC ili normalno zatvorenih tipki. To će vam također zvučati 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 dopušta struji da prolazi kad se na nju ne vrši pritisak i propustit će je samo kad je pritisnete.

Znajući da, 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 za reći.

Integracija gumba s Arduinom

sklop s Arduinom

La spajanje tipke učiniti interakciju s Arduinom ne može biti jednostavnije. Primjer je dijagram koji možete vidjeti na ovim crtama. To bi bilo sve što je potrebno za početak eksperimentiranja. Ali naravno, s tom shemom možete malo učiniti. Trebali biste uložiti malo mašte da odlučite čime će taj gumb upravljati. Zapravo, ako često čitate hwlibre.es, već ste vidjeli neke članke u kojima smo koristili gumbe ...

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:

  • Povući- S ovom konfiguracijom otpora, kada se pritisne tipka, mikrokontroler ili Arduino mogu vidjeti ili očitati nulu na tom pinu. Odnosno, tumači ga kao NISKI signal.
  • Padajući: U ovom je slučaju suprotno, možete pročitati ili primiti signal 1 ili HIGH kroz priključeni pin.

Nemojte ga miješati s NC ili NA, što je nešto drugo drugačije kao što smo vidjeli ranije. Ovo je neovisno od ostalih ...

Protiv odskoka

Tipke imaju znak povratni efekt kad se pritisne. Odnosno, kad se pritisne ili otpusti, dolazi do fluktuacije signala koji prolazi kroz njegove kontakte i može dovesti do prelaska iz VISOKOG u NISKO stanje ili obrnuto, a da zapravo ne želite da se to dogodi. To može proizvesti neželjeni učinak na Arduino i učiniti ga čudnim stvarima, poput aktiviranja elementa kada smo ga stvarno htjeli isključiti tipkom itd. To je zato što Arduino tumači odskoke kao da je pritisnut više puta ...

Taj negativni učinak ima rješenje. Zbog toga se u sklop za odbijanje (hardverska metoda) ili softver (izmjena izvornog koda) mora primijeniti mali kondenzator, bez obzira je li korištena povlačna ili padajuća 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 s kondenzator protiv odbijanja izgledali bi otprilike ovako:

odskočiti

Dok 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 (gumb) == 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 gumba i protu-odskočnog kruga, vidjet ćemo praktični primjer upravljajte LED-om pomoću tipke. Shema je jednako jednostavna kao što vidite.

Jednom kada se pravilno povežete, slijedeća stvar je napisati kod u Arduino IDE-u za programiranje ploče i započinjanje eksperimentiranja s gumbima. Jednostavan primjer koda za upravljanje našim krugom bio bi sljedeći:

// Primjer skice za upravljanje gumbom
int pin = 2;
int država;
pulsirajući int = 0;
void postavljanje ()

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

pinMode (13, IZLAZ); // Za LED

Serijski počet (9600);
}
petlja void ()

{
if (digitalRead (2) == HIGH)

{

iglica = 2;

antiBounce (); // Poziv funkciji 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 svoj komentar

Vaša email adresa neće biti objavljen. Obavezna polja su označena s *

*

*

  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 obvezi.
  5. Pohrana podataka: Baza podataka koju hostira Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.

  1.   Slika rezerviranog mjesta Marcela Castilla dijo

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

  2.   Liliana dijo

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

  3.   Ivan dijo

    Izvrsno objašnjenje .. Prije nekoliko godina napravio sam projekt paljenja automobila i istina je da nikada nisam mogao ispravno pritisnuti tipku. Za paljenje .. Isprobat ću ovu metodu. Veliko hvala na velikoj pomoći

  4.   omar romero rincon dijo

    Pozdrav, radim projekt s tri gumba i 5 LED dioda sa sljedećim redoslijedom.
    1 tipka šalje signal na 2 LED diode, koje sam nazvao 1 i 2.
    drugi gumb šalje signal na 3 LED diode, nazvane 2,3 i 4.
    moj treći gumb šalje signal na druge 3 LED diode, nazvane 3,4, 5 i XNUMX.

    Uspio sam napraviti taj slijed, imam samo jedan problem, pri pritisku na 2 tipke, šalje lažni signal na LED koja bi trebala ostati upaljena zbog čega povremeno treperi, kontrolirao sam ga tako što sam stavio odgodu (od 2 sekunde, što mi je potrebno da LED diode ostanu upaljene i onda se ugase.onda moje pitanje je kako da stavim millis funkciju u svoj program,ne razumijem kako millis radi,želim znati možete li mi pomoći tako da praveći primjer za 3 gumba koristeći millis u svakom od njih, trebam millis da bih mogao pritisnuti gumbe u bilo kojem trenutku bez odgađanja arduina.

    1.    Isaac dijo

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