Painike: kuinka käyttää tätä yksinkertaista elementtiä Arduinon kanssa

-painiketta

Un painike on painike, jonka avulla voit keskeyttää tai lähettää sähköisen signaalin. Tällä yksinkertaisella elementillä yhdistettynä muihin elementteihin voit luoda projekteja monille sovelluksille. Tämän tyyppisten painikkeiden käyttö on hyvin yleistä Arduinon kanssa tehtävissä projekteissa. Ja yhdistämällä useita näistä painikkeista voit luoda hieman monimutkaisemman näppäimistön, vaikka näihin käyttötarkoituksiin on jo ohjelmoitavia näppäimistöjä ...

Muuten sinun ei pidä sekoittaa painonappia kytkimeen. Ne ovat täysin erilaisia ​​asioita. Erona on, että kytkin tai kytkin aktivoidaan tai deaktivoidaan jokaisella sitä painavalla painalluksella. Painike pysyy vain yhdessä tilassa, kun siihen kohdistetaan painetta. Olen kommentoinut, että se voi lähettää tai keskeyttää, koska painikkeita on kahta perustyyppiä.

painonappisymboli

On olemassa EI tai normaalisti auki olevat painikkeet ja NC- tai normaalisti suljetut painikkeet. Tämä kuulostaa sinulle myös releistä. Ja kyllä, se on täsmälleen sama operaatio. Kun sinulla on NC, se päästää virran läpi terminaaliensa ja se keskeytyy vain, kun painat sitä. Toisaalta NA ei anna virran kulkea, kun siihen ei kohdistu painetta, vaan päästää sen läpi vain, kun painat sitä.

Sen tietäen, on melkein kaikki mitä sinun tarvitsee tietää painikkeesta aloittaaksesi yhteyden ja ohjelmoinnin Arduinolla. Totuus on, että se on niin yksinkertainen elementti, että tämän tyyppisistä painikkeista ei ole paljon muuta sanottavaa.

Painonappien integrointi Arduinon kanssa

piiri Arduinon kanssa

La kytkemällä painike jotta se olisi vuorovaikutuksessa Arduinon kanssa, ei voisi olla yksinkertaisempaa. Esimerkki on kaavio, jonka näet näillä viivoilla. Se olisi kaikki mitä tarvitaan kokeilun aloittamiseen. Mutta tietysti tällä järjestelmällä voit tehdä vähän. Sinun olisi tarpeen laittaa vähän mielikuvitusta päättääksesi, mitä painike hallitsee. Itse asiassa, jos luet hwlibre.es-sivustoa usein, olet jo nähnyt joitain artikkeleita, joissa olemme käyttäneet painikkeita ...

Tapoja yhdistää se

vedä ylös ja alas

Yksi asia, jonka sinun pitäisi tietää, on kysymys palautumisesta ja kuinka kytkeä nämä painikkeet. Ensin siirrymme tapaan liittää ne, mikä tiedät jo olevan ylös- ja alasvetovastusten kanssa:

  • Vedä ylös- Tällä vastusasetuksella, kun painiketta painetaan, mikro-ohjain tai Arduino voi nähdä tai lukea nastan tuolissa. Toisin sanoen se tulkitsee sen LOW-signaaliksi.
  • Vetää alas: Tässä tapauksessa on päinvastainen, voit lukea tai vastaanottaa 1- tai HIGH-signaalin liitetyn nastan kautta.

Älä sekoita sitä NC: hen tai NA: han, mikä on jotain muuta erilaista, kuten olemme aiemmin nähneet. Tämä on riippumaton muista ...

Anti-Bounce

Painikkeissa on a pomppiva vaikutus kun sitä painetaan. Toisin sanoen, kun sitä painetaan tai vapautetaan, signaalissa on vaihtelu, joka kulkee koskettimiensa läpi ja saattaa aiheuttaa sen siirtymisen HIGT-tilasta LOW-tilaan tai päinvastoin ilman, että todella haluaisi sen tapahtuvan. Tämä voi aiheuttaa ei-toivottuja vaikutuksia Arduinoon ja saada sen tekemään outoja asioita, kuten aktivoimaan elementin, kun halusimme todella sammuttaa sen painikkeella jne. Tämä johtuu siitä, että Arduino tulkitsee pomppuja ikään kuin sitä olisi painettu useammin kuin kerran ...

Tämä kielteinen vaikutus sillä on ratkaisu. Tätä varten pieni kondensaattori on asennettava palautumisenestopiiriin (laitteistomenetelmä) tai ohjelmistoon (lähdekoodin muokkaaminen) riippumatta siitä, onko käytetty ylös- tai alasvetokokoonpanoa vai onko se NC tai NO. Kaikissa näissä tapauksissa ratkaisu on toteutettava näiden palautumisten välttämiseksi.

Esimerkiksi veto- ja vetopiirit palautumisen estävä kondensaattori ne näyttävät tältä:

rebounder

Vaikka ohjelmistomenetelmä Se näkyy tässä koodinpätkässä:

jos (digitalRead (painike) == MATALA) // Tarkista, painetaanko painiketta
{
painettu = 1; // Muuttuja muuttaa arvoa
}
jos (digitalRead (painike) == KORKEA && painettu == 1)
{
// Suorita haluttu toiminto
painettu = 0; // Muuttuja palaa alkuperäiseen arvoonsa
}

Yksinkertainen projektiesimerkki

anti-pomppiminen painikkeella ja Arduino

Kun olemme oppineet aiheen tavoista liittää painonappimme ja palautumisenestopiiri, näemme käytännön esimerkin ohjata LEDiä painikkeella. Järjestelmä on yhtä yksinkertainen kuin näet.

Kun yhteys on muodostettu oikein, seuraava asia on kirjoittaa koodi Arduino IDE: ssä ohjelmoida paneeli ja alkaa kokeilla painikkeita. Yksinkertainen koodiesimerkki piirimme ohjaamiseksi olisi seuraava:

// Esimerkki luonnoksesta painikkeen ohjaamiseksi
int tappi = 2;
int-tila;
sykkivä int = 0;
void setup ()

{
pinMode (2, INPUT); // Pulssin lukeminen tekemällä kyseinen tappi

pinMode (13, OUTPUT); // LEDille

Sarja-aloitus (9600);
}
void loop ()

{
jos (digitalRead (2) == KORKEA)

{

tappi = 2;

antiBounce (); // Kutsu palautumisen estotoimintoon

}
}
// Ohjelmiston palautumisen estotoiminto
mitätön poistumisen esto ()

{
while (digitalRead (tappi) == LOW);
tila = digitalRead (13);
digitalWrite (13,! -tila);
while (digitalRead (tappi) == KORKEA);

}


5 kommenttia, jätä omasi

Jätä kommentti

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *

*

*

  1. Vastuussa tiedoista: Miguel Ángel Gatón
  2. Tietojen tarkoitus: Roskapostin hallinta, kommenttien hallinta.
  3. Laillistaminen: Suostumuksesi
  4. Tietojen välittäminen: Tietoja ei luovuteta kolmansille osapuolille muutoin kuin lain nojalla.
  5. Tietojen varastointi: Occentus Networks (EU) isännöi tietokantaa
  6. Oikeudet: Voit milloin tahansa rajoittaa, palauttaa ja poistaa tietojasi.

  1.   Marcelo Castillo paikkamerkki dijo

    Viileä!!! Paljon kiitoksia, olen rakentanut CNC: tä ja paradoksaalisesti painikkeita on ollut minulle vaikeinta virittää.

  2.   Liliana dijo

    Hei! Neuvottelen aloittelijana GND: n yhteydessä ... ..Mustan johtimen ei pitäisi tulla ulos negatiivisesta linjasta, joka sijaitsee kaaviossa 2 esitetyn yläpuolella?

  3.   Johannes dijo

    Erinomainen selitys .. muutama vuosi sitten tein auton sytytysprojektin, ja totuus on, että en koskaan voinut tehdä oikeaa näppäimen painallusta. Sytytyksestä .. Aion kokeilla tätä menetelmää. Kiitän teitä suuresta avusta

  4.   omar romero rincon dijo

    Hei, teen projektia, jossa on kolme painiketta ja 5 LEDiä seuraavassa järjestyksessä.
    1 painike lähettää signaalin 2 ledille, joita olen kutsunut 1:ksi ja 2:ksi.
    toinen painike lähettää signaalin kolmelle LEDille, joita kutsutaan 3, 2,3 ja 4.
    Kolmas painonappini lähettää signaalin toiselle kolmelle LEDille, joita kutsutaan 3, 3,4 ja 5.

    Olen onnistunut tekemään sen sarjan, minulla on vain yksi ongelma, kun painan 2 painiketta, se lähettää väärän signaalin LEDiin, jonka pitäisi jäädä palamaan aiheuttaen sen vilkkumisen ajoittain, olen ohjannut sitä asettamalla viiveen (2 sekuntia, mitä tarvitsen, jotta LEDit pysyvät päällä ja sammuvat sitten kysymykseni on, kuinka voin laittaa millis-toiminnon ohjelmaani, en ymmärrä miten millis toimii, haluan tietää voitko auttaa minua Esimerkkinä 3 painikkeesta, joissa kussakin on millis, tarvitsen millit, jotta voin painaa painikkeita milloin tahansa viivyttelemättä arduinoa.

    1.    Isaac dijo

      Hola Omar,
      Suosittelen, että katsot Arduino-opetusohjelmamme:
      https://www.hwlibre.com/programacion-en-arduino/
      Ja voit myös nähdä artikkelimme millisista ():
      https://www.hwlibre.com/millis-arduino/
      Tervehdys.