Butoni i butonit: si ta përdorni këtë element të thjeshtë me Arduino

butoni

Un butoni është një buton që lejon ndërprerjen ose dërgimin e një sinjali elektronik. Me këtë element të thjeshtë të kombinuar me elementë të tjerë mund të krijoni projekte për një mori aplikacionesh. Përdorimi i këtij lloji të butonave është shumë i zakonshëm kur bëhet fjalë për projekte me Arduino. Dhe duke kombinuar disa prej këtyre butonave mund të krijoni një tastierë disi më komplekse, megjithëse tashmë ka tastiera të programueshme për këto përdorime ...

Nga rruga, nuk duhet të ngatërroni butonin e butonit me një çelës. Ato janë gjëra krejt të ndryshme. Dallimi është se çelësi ose çelësi aktivizohet ose çaktivizohet me çdo shtypje që bëhet në të. Ndërsa butoni i shtypjes do të qëndrojë vetëm në një gjendje ndërsa po ushtrohet presion mbi të. Unë kam komentuar që mund të dërgojë ose ndërpresë, kjo është për shkak se ekzistojnë dy lloje themelore të butonave.

simboli i butonit të shtypjes

Nuk janë JO ose butona butonash normalisht të hapur dhe NC ose butona normalisht të mbyllur. Kjo do t'ju tingëllojë gjithashtu nga stafetë. Dhe po, është saktësisht i njëjti operacion. Kur të keni një NC, ajo do të lejojë që rryma të kalojë nëpër terminalet e saj dhe ndërpritet vetëm kur e shtypni. Nga ana tjetër, NA nuk lejon që rryma të kalojë kur nuk ushtrohet presion mbi të dhe do ta lejojë të kalojë vetëm kur e shtypni.

Duke ditur se, është pothuajse gjithçka që duhet të dini për një buton shtypës për të filluar lidhjen dhe programimin tuaj duke përdorur Arduino. E vërteta është se është një element kaq i thjeshtë sa nuk ka shumë më shumë për të thënë në lidhje me këtë lloj butonash.

Integrimi i Butonit Push me Arduino

qark me Arduino

La lidhja e një butoni për ta bërë atë të bashkëveprojë me Arduino nuk mund të jetë më e thjeshtë. Një shembull është diagrami që mund të shihni në këto rreshta. Kjo do të ishte gjithçka që duhet për të filluar eksperimentimin. Por sigurisht, me atë skemë mund të bësh pak. Ju do të duhet të vendosni pak imagjinatë për të vendosur se çfarë do të kontrollojë ai buton. Në fakt, nëse shpesh lexoni hwlibre.es do të keni parë tashmë disa artikuj ku kemi përdorur butona shtypës ...

Mënyrat për ta lidhur atë

tërheqje dhe tërheqje poshtë

Një gjë që duhet të dini është çështja e anti-kërcimit dhe si të lidhni këto butona. Së pari, ne shkojmë në rrugën për t'i lidhur ato, të cilat tashmë e dini se mund të jenë me rezistencat tërheqëse dhe tërheqëse:

  • Tërheq lart- Me këtë konfigurim të rezistencës, kur shtypet butoni, mikrokontrolluesi ose Arduino mund të shohin ose lexojnë një zero në atë kunj. Kjo është, ajo e interpreton atë si një sinjal të ulët.
  • Teposhtë: Në këtë rast është e kundërta, ju mund të lexoni ose merrni një sinjal 1 ose HIGH përmes kunjit të lidhur.

Mos e ngatërroni atë me NC ose NA, që është diçka tjetër ndryshe siç e kemi parë më parë. Kjo është e pavarur nga tjetra ...

Anti-kërcim

Butonat e butonit kanë një efekti i kërcimit kur shtypet. Kjo do të thotë, kur shtypet ose lëshohet ekziston një luhatje e sinjalit që kalon përmes kontakteve të tij dhe mund të shkaktojë që ajo të kalojë nga një gjendje HIGT në ULT or ose anasjelltas pa dashur vërtet që të ndodhë. Kjo mund të prodhojë një efekt të padëshiruar në Arduino dhe ta bëjë atë të bëjë gjëra të çuditshme, si aktivizimi i një elementi kur vërtet dëshironim ta fiknim me butonin e shtypjes, etj. Kjo sepse Arduino interpreton kërcimet sikur të ishte shtypur më shumë se një herë ...

Ai efekt negativ ka nje zgjidhje. Për këtë, një kondensator i vogël duhet të zbatohet në qarkun anti-kërcim (metoda harduerike) ose softuer (duke modifikuar kodin burimor), nëse është përdorur një konfigurim tërheqës ose tërheqës ose nëse është NC ose NO. Në të gjitha këto raste, zgjidhja duhet të zbatohet për të shmangur këto kërcime.

Për shembull, qarqet tërheqëse dhe zbritëse me kondensator anti-kërcim ata do të dukeshin diçka si kjo:

kërcënues

Ndërsa metoda e softverit Mund të shihet në këtë fragment të kodit:

nëse (digitalRead (butoni) == LOW) // Kontrolloni nëse shtypet butoni
{
shtypur = 1; // Ndryshorja ndryshon vlerën
}
nëse (dixhitalLexo (butoni) == LART & && shtypur == 1)
{
// Kryeni veprimin e dëshiruar
shtypur = 0; // Ndryshorja kthehet në vlerën e saj origjinale
}

Shembull i thjeshtë i projektit

anti-kërcim me butonin e shtypjes dhe Arduino

Pasi të kemi mësuar temën e mënyrave të lidhjes së butonit tonë dhe qarkut kundër reagimit, do të shohim një shembull praktik për të kontrolloni një LED me butonin e shtypjes. Skema është po aq e thjeshtë sa mund ta shihni.

Pasi të jetë lidhur në mënyrë korrekte, gjëja tjetër është të shkruash kodin në Arduino IDE të programoni panelin tuaj dhe të filloni të eksperimentoni me butonat. Një shembull i thjeshtë i kodit për të kontrolluar qarkun tonë do të ishte si më poshtë:

// Shembull i skicës për të kontrolluar butonin
pin int = 2;
int shtet;
pulsues int = 0;
konfigurimi i pavlefshëm ()

{
Modaliteti pin (2, INPUT); // Për të lexuar pulsin duke bërë atë hyrje pin

Modaliteti pin (13, OUTPUT); // Për LED

Serial.fillo (9600);
}
lak i pavlefshëm ()

{
nëse (dixhitalLexo (2) == LART)

{

kunja = 2;

antiBounce (); // Thirrje në funksionin anti-kërcim

}
}
// Funksioni anti-kërcim i softuerit
i pavlefshëm anti-kërcim ()

{
ndërsa (dixhitalLexo (pin) == LOW);
gjendje = lexo dixhital (13);
digitalWrite (gjendja 13,!);
ndërsa (lexo dixhital (pin) == LART);

}


5 komente, lini tuajën

Lini komentin tuaj

Adresa juaj e emailit nuk do të publikohet. Fusha e kërkuar janë shënuar me *

*

*

  1. Përgjegjës për të dhënat: Miguel Ángel Gatón
  2. Qëllimi i të dhënave: Kontrolloni SPAM, menaxhimin e komenteve.
  3. Legjitimimi: Pëlqimi juaj
  4. Komunikimi i të dhënave: Të dhënat nuk do t'u komunikohen palëve të treta përveç me detyrim ligjor.
  5. Ruajtja e të dhënave: Baza e të dhënave e organizuar nga Occentus Networks (BE)
  6. Të drejtat: Në çdo kohë mund të kufizoni, rikuperoni dhe fshini informacionin tuaj.

  1.   Imazhi i mbajtësit të vendndodhjes së Marcelo Castillo dijo

    Ftohtë !!! Faleminderit shumë, unë kam qenë duke ndërtuar një CNC dhe paradoksalisht butonat kanë qenë gjëja më e vështirë për mua për tu akorduar.

  2.   Liliana dijo

    Pershendetje! Unë këshillohem si rishtar, në lidhje me GND ND .. tela e zezë nuk duhet të dalë nga vija negative, e cila ndodhet mbi atë që tregohet në diagramin 2?

  3.   John dijo

    Shpjegim i shkëlqyeshëm .. nja dy vjet më parë bëra një projekt të ndezjes së makinës dhe e vërteta është se nuk mund të bëja kurrë një goditje të saktë të tasteve. Për ndezjen .. Do ta provoj këtë metodë. Ju falënderoj shumë për këtë ndihmë të shkëlqyeshme

  4.   omar romero rincon dijo

    Përshëndetje, unë jam duke bërë një projekt me tre butona dhe 5 LED me sekuencën e mëposhtme.
    1 buton shtytës dërgon një sinjal në 2 LED, të cilat unë i kam quajtur 1 dhe 2.
    shtylla e dytë dërgon sinjal në 3 LED, të quajtura 2,3 dhe 4.
    Pushbotoni im i tretë dërgon një sinjal në 3 LED të tjera, të quajtura 3,4, 5 dhe XNUMX.

    Une kam arritur ta bej ate sekuence, kam vetem nje problem, kur shtyp 2 butona dergon nje sinjal false ne LED qe duhet te qendroje ndezur duke bere qe te pulsoj me nderprerje, e kam kontrolluar duke vene vonese (2 sekonda. , e cila eshte ajo qe me duhet qe led-at te rrine ndezur dhe me pas te fiken.atehere pyetja ime eshte si mund ta vendos funksionin millis ne programin tim,nuk e kuptoj si funksionon millis,dua te di nese mund te me ndihmoni duke bërë një shembull për 3 butona duke përdorur millis në secilën prej tyre, më duhet millis që të mund të shtyp butonat në çdo kohë pa vonuar arduino.

    1.    Isaac dijo

      Përshëndetje Omar,
      Unë ju rekomandoj të shikoni tutorialin tonë Arduino:
      https://www.hwlibre.com/programacion-en-arduino/
      Dhe gjithashtu mund të shihni artikullin tonë në millis ():
      https://www.hwlibre.com/millis-arduino/
      Një përshëndetje.