Tlačítko: jak používat tento jednoduchý prvek s Arduinem

knoflík

Un push button je tlačítko, které umožňuje přerušit nebo odeslat elektronický signál. S tímto jednoduchým prvkem v kombinaci s dalšími prvky můžete vytvářet projekty pro velké množství aplikací. Použití tohoto typu tlačítek je velmi běžné, pokud jde o projekty s Arduino. Kombinací několika z těchto tlačítek můžete vytvořit poněkud složitější klávesnici, i když pro tyto účely již existují programovatelné klávesnice ...

Mimochodem, neměli byste si mýlit tlačítko s vypínačem. Jsou to úplně jiné věci. Rozdíl je v tom, že spínač nebo spínač se aktivuje nebo deaktivuje při každém stisknutí, které je na něm provedeno. Zatímco tlačítko zůstane pouze v jednom stavu, když je na něj vyvíjen tlak. Uvedl jsem, že může odesílat nebo přerušovat, protože existují dva základní typy tlačítek.

symbol tlačítka

Tam jsou NE nebo normálně otevřená tlačítka a NC nebo normálně zavřená. To vám bude znít také z relé. A ano, je to přesně stejná operace. Pokud máte NC, nechá proud projít jeho svorkami a přeruší se pouze při jeho stisknutí. Na druhou stranu NA nenechá proud projít, když na něj není vyvíjen tlak a nechá ho projít, jen když ho stisknete.

S vědomím toho, je téměř vše, co potřebujete vědět o tlačítku zahájíte připojení a programování pomocí Arduina. Pravdou je, že se jedná o tak jednoduchý prvek, že k tomuto typu tlačítek toho nelze říci více.

Integrace tlačítkem s Arduino

okruh s Arduinem

La připojení tlačítka interakce s Arduinem nemůže být jednodušší. Příkladem je diagram, který vidíte na těchto řádcích. To by bylo vše, co je potřeba k zahájení experimentování. Ale samozřejmě s tímto schématem můžete udělat jen málo. Bylo by nutné, abyste věnovali trochu představivosti, abyste se rozhodli, co bude toto tlačítko ovládat. Ve skutečnosti, pokud často čtete hwlibre.es, určitě už jste viděli některé články, kde jsme použili tlačítka ...

Způsoby připojení

pull-up a pull-down

Jedna věc, kterou byste měli vědět, je problém anti-bounce a jak spojit tato tlačítka. Nejprve jdeme na způsob, jak je spojit, o kterém už víte, že může být s pull-up a pull-down rezistory:

  • Vytáhnout- S touto konfigurací odporu, když je stisknuto tlačítko, mikrokontrolér nebo Arduino může na tomto pinu vidět nebo číst nulu. To znamená, že to interpretuje jako NÍZKÝ signál.
  • Strhnout: V tomto případě je to naopak, můžete číst nebo přijímat signál 1 nebo HIGH prostřednictvím připojeného kolíku.

Nezaměňujte to s NC nebo NA, což je něco jiného, ​​jak jsme viděli dříve. To je nezávislé na ostatních ...

Anti-Bounce

Tlačítka mají a odrazit účinek při stisknutí. To znamená, že když je stisknuto nebo uvolněno, dochází k fluktuaci signálu, který prochází jeho kontakty a může způsobit, že přejde ze stavu HIGT do LOW nebo naopak, aniž by to skutečně chtěl. To může na Arduino vyvolat nežádoucí účinek a přimět jej dělat divné věci, jako je aktivace prvku, když jsme jej opravdu chtěli vypnout tlačítkem atd. Je to proto, že Arduino interpretuje odrazy, jako by bylo stisknuto více než jednou ...

Tento negativní účinek má řešení. K tomu musí být v anti-bounce obvodu (hardwarová metoda) nebo softwaru (úprava zdrojového kódu) implementován malý kondenzátor, ať už byla použita pull-up nebo pull-down konfigurace, nebo jestli je NC nebo NO. Ve všech těchto případech musí být řešení implementováno, aby se zabránilo těmto odrazům.

Například roztahovací a roztahovací obvody s anti-bounce kondenzátor vypadají asi takto:

odskočit

Zatímco softwarová metoda To lze vidět v tomto fragmentu kódu:

if (digitalRead (button) == LOW) // Zkontrolujte, zda je stisknuto tlačítko
{
stisknuto = 1; // Proměnná mění hodnotu
}
if (digitalRead (tlačítko) == VYSOKÉ && stisknuté == 1)
{
// Proveďte požadovanou akci
stisknuto = 0; // Proměnná se vrátí na původní hodnotu
}

Jednoduchý příklad projektu

anti-bounce s tlačítkem a Arduino

Jakmile jsme se naučili předmět způsobů, jak propojit naše tlačítko a obvod proti odskočení, uvidíme praktický příklad ovládejte LED pomocí tlačítka. Schéma je stejně jednoduché, jak vidíte.

Po správném připojení je další věcí psát kód v Arduino IDE naprogramujte svůj panel a začněte experimentovat s tlačítky. Jednoduchý příklad kódu pro ovládání našeho obvodu by byl následující:

// Příklad náčrtu k ovládání tlačítka
int pin = 2;
int stav;
pulzující int = 0;
neplatné nastavení ()

{
pinMode (2, VSTUP); // Chcete-li načíst pulz provedením vstupu tohoto kolíku

pinMode (13, OUTPUT); // Pro LED

Serial.begin (9600);
}
neplatná smyčka ()

{
if (digitalRead (2) == HIGH)

{

kolík = 2;

antiBounce (); // Volání funkce anti-bounce

}
}
// Softwarová funkce proti odrazu
void anti-bounce ()

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

}


5 komentářů, nechte svůj

Zanechte svůj komentář

Vaše e-mailová adresa nebude zveřejněna. Povinné položky jsou označeny *

*

*

  1. Odpovědný za údaje: Miguel Ángel Gatón
  2. Účel údajů: Ovládací SPAM, správa komentářů.
  3. Legitimace: Váš souhlas
  4. Sdělování údajů: Údaje nebudou sděleny třetím osobám, s výjimkou zákonných povinností.
  5. Úložiště dat: Databáze hostovaná společností Occentus Networks (EU)
  6. Práva: Vaše údaje můžete kdykoli omezit, obnovit a odstranit.

  1.   Zástupný obrázek pro Marcelo Castillo řekl

    Chladný!!! Děkuji mnohokrát, stavěl jsem CNC a paradoxně pro mě byla ta tlačítka nejtěžší naladění.

  2.   Liliana řekl

    Ahoj! Konzultuji jako nováček v souvislosti s GND ... černý vodič by neměl vycházet ze záporné čáry, která je umístěna nad vodičem zobrazeným na obrázku 2?

  3.   John řekl

    Skvělé vysvětlení .. před pár lety jsem udělal projekt zapalování automobilu a pravdou je, že jsem nikdy nedokázal udělat správný stisk kláves. Pro zapalování .. Zkouším tuto metodu. Moc vám děkuji za tuto skvělou pomoc

  4.   omar romero rincon řekl

    Dobrý den, dělám projekt se třemi tlačítky a 5 LED s následující sekvencí.
    1 tlačítko vyšle signál do 2 LED, které jsem nazval 1 a 2.
    druhé tlačítko vysílá signál do 3 LED, nazývaných 2,3 a 4.
    moje třetí tlačítko vysílá signál dalším 3 LED diodám, nazývaným 3,4, 5 a XNUMX.

    Tu sekvenci se mi podařilo udělat, mám jen jeden problém, při stisku 2 tlačítek to vyšle falešný signál do LED, která by měla zůstat svítit a přerušovaně blikat, ovládal jsem to nastavením zpoždění (2 sekundy, což je to, co potřebuji, aby LED zůstaly svítit a pak zhasly. pak moje otázka zní, jak mohu do svého programu vložit funkci millis, nerozumím tomu, jak funguje millis, chci vědět, zda mi můžete pomoci Když udělám příklad pro 3 tlačítka pomocí milis v každém z nich, potřebuji milis, abych mohl kdykoli stisknout tlačítka bez zdržování arduina.

    1.    Isaac řekl

      Hola Omar,
      Doporučuji vám prohlédnout si náš tutoriál pro Arduino:
      https://www.hwlibre.com/programacion-en-arduino/
      A můžete se také podívat na náš článek o millis ():
      https://www.hwlibre.com/millis-arduino/
      Pozdrav.