Tlačidlo: ako používať tento jednoduchý prvok s Arduinom

tlačidlo

Un push button je tlačidlo, ktoré umožňuje prerušiť alebo vyslať elektronický signál. Pomocou tohto jednoduchého prvku v kombinácii s ostatnými prvkami môžete vytvárať projekty pre veľké množstvo aplikácií. Používanie tohto typu tlačidiel je pri projektoch s Arduinom veľmi bežné. Kombináciou niekoľkých z týchto tlačidiel môžete vytvoriť o niečo zložitejšiu klávesnicu, aj keď pre tieto účely už existujú programovateľné klávesnice ...

Mimochodom, nemali by ste si mýliť tlačidlo s vypínačom. Sú to úplne odlišné veci. Rozdiel je v tom, že spínač alebo spínač sa aktivuje alebo deaktivuje pri každom stlačení, ktoré sa na ňom vykoná. Zatiaľ čo tlačidlo bude vyvíjať tlak iba na jeden stav. Poznamenal som, že môže odosielať alebo prerušovať, pretože existujú dva základné typy tlačidiel.

symbol tlačidla

Tam sú NIE alebo normálne otvorené tlačidlá a NC alebo normálne zatvorené tlačidlá. To vám bude znieť aj z relé. A áno, je to úplne rovnaká operácia. Ak máte NC, nechá prejsť prúd cez svoje svorky a prerušuje sa iba pri jeho stlačení. Na druhej strane NA nenechá prejsť prúd, keď na neho nie je vyvíjaný tlak a nechá ho prejsť iba vtedy, keď ho stlačíte.

S vedomím, že, je takmer všetko, čo potrebujete vedieť o tlačidle na zahájenie pripojenia a programovania pomocou Arduina. Pravda je, že ide o taký jednoduchý prvok, že k tomuto typu tlačidiel nie je možné veľa povedať.

Integrácia tlačidiel s Arduino

obvod s Arduinom

La pripojenie tlačidla interakcia s Arduinom už nemôže byť jednoduchšia. Príkladom je schéma, ktorú môžete vidieť na týchto riadkoch. To by bolo všetko, čo je potrebné na začatie experimentovania. Ale samozrejme, s touto schémou môžete urobiť len málo. Bolo by potrebné, aby ste rozhodli trochu fantázie, aby ste rozhodli, čo toto tlačidlo ovláda. Ak čítate hwlibre.es často, určite ste už videli niektoré články, kde sme používali tlačidlá ...

Spôsoby pripojenia

príťah a príťah

Jedna vec, ktorú by ste mali vedieť, je problém proti odrazeniu a ako spojiť tieto tlačidlá. Najprv pôjdeme na spôsob ich spojenia, o ktorom už viete, že môže byť pomocou pull-up a pull-down rezistorov:

  • Vytiahni- S týmto nastavením odporu, keď je stlačené tlačidlo, môže mikrokontrolér alebo Arduino na tomto pine vidieť alebo načítať nulu. To znamená, že to interpretuje ako signál NÍZKY.
  • Vytiahnutie: V tomto prípade je to naopak, cez pripojený pin môžete čítať alebo prijímať signál 1 alebo HIGH.

Nemýľte si to s NC alebo NA, čo je niečo iné, ako sme videli predtým. Toto je nezávislé od ostatných ...

Anti-Bounce

Tlačidlá majú a odrazový efekt pri stlačení. To znamená, že pri stlačení alebo uvoľnení dôjde k kolísaniu signálu, ktorý prechádza cez jeho kontakty, a môže spôsobiť, že prejde zo stavu HIGT do stavu LOW alebo naopak bez toho, aby to skutočne chcel. To môže na Arduino spôsobiť nežiaduci efekt a prinútiť ho robiť divné veci, napríklad aktivovať prvok, keď sme ho skutočne chceli vypnúť tlačidlom atď. Je to preto, že Arduino interpretuje odrazy, akoby bolo stlačené viackrát ...

Tento negatívny účinok má riešenie. Na tento účel musí byť do anti-bounce obvodu (hardvérová metóda) alebo softvéru (modifikujúci zdrojový kód) implementovaný malý kondenzátor, či už bola použitá konfigurácia pull-up alebo pull-down, alebo či je NC alebo NO. Vo všetkých týchto prípadoch musí byť riešenie implementované, aby sa zabránilo týmto odrazom.

Napríklad pull-up a pull-down obvody s protiskokový kondenzátor vyzerali by asi takto:

odskakujúci hráč

Kým softvérová metóda Bolo to vidieť v tomto útržku kódu:

if (digitalRead (button) == LOW) // Skontrolujte, či je stlačené tlačidlo
{
stlačené = 1; // Premenná mení hodnotu
}
if (digitalRead (pushbutton) == HIGH && press == 1)
{
// Vykonajte požadovanú akciu
stlačené = 0; // Premenná sa vráti na pôvodnú hodnotu
}

Jednoduchý príklad projektu

anti-bounce s tlačidlom a Arduino

Keď sme sa naučili predmet spôsobov, ako spojiť naše tlačidlo a anti-rebound obvod, uvidíme praktický príklad na ovládajte LED pomocou tlačidla. Schéma je rovnako jednoduchá, ako vidíte.

Po správnom pripojení je ďalšou vecou zápis kód v Arduino IDE naprogramujte svoj panel a začnite experimentovať s tlačidlami. Jednoduchým príkladom kódu na ovládanie nášho obvodu by bol tento:

// Príklad náčrtu na ovládanie tlačidla
int kolík = 2;
int stav;
pulzujúca int = 0;
nastavenie neplatnosti ()

{
pinMode (2, VSTUP); // Ak chcete načítať impulz vykonaním vstupu tohto kolíka

pinMode (13, OUTPUT); // Pre LED

Serial.egegin (9600);
}
neplatná slučka ()

{
if (digitalRead (2) == HIGH)

{

kolík = 2;

antiBounce (); // Volanie funkcie anti-bounce

}
}
// Softvérová funkcia proti odrazu
void anti-bounce ()

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

}


5 komentáre, nechajte svoj

Zanechajte svoj komentár

Vaša e-mailová adresa nebude zverejnená. Povinné položky sú označené *

*

*

  1. Zodpovedný za údaje: Miguel Ángel Gatón
  2. Účel údajov: Kontrolný SPAM, správa komentárov.
  3. Legitimácia: Váš súhlas
  4. Oznamovanie údajov: Údaje nebudú poskytnuté tretím stranám, iba ak to vyplýva zo zákona.
  5. Ukladanie dát: Databáza hostená spoločnosťou Occentus Networks (EU)
  6. Práva: Svoje údaje môžete kedykoľvek obmedziť, obnoviť a vymazať.

  1.   Zástupný obrázok pre Marcelo Castillo dijo

    Super !!! Ďakujem pekne, staval som CNC a paradoxne pre mňa bolo vyladenie gombíkov najťažšie.

  2.   Liliana dijo

    Ahoj! Ako nováčik sa radím v súvislosti s GND ... čierny vodič by nemal vychádzať zo zápornej čiary, ktorá je umiestnená nad vodičom zobrazeným na obrázku 2?

  3.   John dijo

    Vynikajúce vysvetlenie .. pred pár rokmi som robil projekt zapaľovania automobilu a pravdou je, že by som nikdy nemohol urobiť správny lis. Pre zapaľovanie .. Chystám sa vyskúšať túto metódu. Veľmi pekne ďakujem za túto skvelú pomoc

  4.   omar romero rincon dijo

    Dobrý deň, robím projekt s tromi tlačidlami a 5 LED s nasledujúcou sekvenciou.
    1 tlačidlo vyšle signál 2 LED diódam, ktoré som nazval 1 a 2.
    druhé tlačidlo vysiela signál 3 LED diódam nazývaným 2,3, 4 a XNUMX.
    moje tretie tlačidlo vysiela signál ďalším 3 LED diódam, nazývaným 3,4, 5 a XNUMX.

    Mne sa tá sekvencia podarilo, mám len jeden problém, pri stlačení 2 tlačidiel to vyšle falošný signál do LED, ktorá by mala zostať svietiť, čo spôsobí prerušované blikanie, ovládal som to zadaním oneskorenia (2 sekundy, čo je to, čo potrebujem, aby LED zostali zapnuté a potom zhasli.potom moja otázka znie, ako môžem dať funkciu millis do svojho programu, nerozumiem ako funguje millis, chcem vedieť, či mi môžete pomôcť Keď urobím príklad pre 3 tlačidlá pomocou milis v každom z nich, potrebujem milis, aby som mohol kedykoľvek stlačiť tlačidlá bez oneskorenia arduina.

    1.    Isaac dijo

      ahoj Omar,
      Odporúčam vám pozrieť si náš návod na Arduino:
      https://www.hwlibre.com/programacion-en-arduino/
      A môžete si tiež pozrieť náš článok o milise ():
      https://www.hwlibre.com/millis-arduino/
      Pozdrav.