Potisni gumbi so neverjetno pogosti v prostoru DIY Arduino, pri čemer se nešteto projektov po spletu zanaša na ta majhna stikala za aktiviranje svoje kode. Toda kako natančno lahko povežete in programirate več kot en gumb za delo z vašim Arduinom? Pa ugotovimo.

Kaj izdelujemo?

To je preprost projekt, ki je zasnovan tako, da v prihodnosti začnete z bolj zapletenimi gradnjami Arduina. Našim gumbom ne bomo dajali dela, vendar to pomeni, da lahko izberete, kaj želite, da naredijo zase, z uporabo enega od naših drugih priročnih vodnikov za DIY Arduino.

Kaj potrebujete?

Za dokončanje tega projekta potrebujete le nekaj delov, od katerih jih boste veliko že imeli v svoji zbirki delov DIY.

  • 4 x gumbna stikala
  • 4 x 10kΩ upori
  • 1 x poljuben vrsta plošče Arduino (uporabljamo Leonardo)
  • Žica s PVC/silikonsko prevleko

Ožičenje več gumbov z Arduinom

Ožičenje za ta projekt je preprosto, vendar morate biti previdni, da se žice ne zapletejo med vsako povezavo, saj vsak gumb zahteva dve različni žici.

Če začnemo preprosto, je smiselno ožičiti en gumb s pozitivno nogo, ki je priključena na 5V pin na našem Arduinu, ozemljitvena noga gumba pa je povezana z GND in Digital Pin 2 na našem Arduinu deska. Med ozemljitveno nogo gumba in zatičem GND na Arduinu mora biti povezan upor.

instagram viewer

Ko je en gumb povezan, je čas, da dodate druge. Vsak gumb potrebuje svoj digitalni zatič; izbrali smo 2, 3, 4 in 5 za štiri gumbe, ki jih uporabljamo, vendar bo kateri koli digitalni zatič deloval. Zdaj, ko je vaš Arduino ožičen, je čas, da začnete delati na kodi.

Programiranje več tipk z Arduinom

Koda za projekt je lepa in preprosta, brez potrebe po kakršnih koli knjižnicah razredov ali drugem zapletenem programiranju.

Dodeljevanje gumbov zatičem

Za prvi korak moramo naše gumbe dodeliti različnim zatičem na naši plošči Arduino. Glede na to, da smo uporabili digitalne zatiče 2, 3, 4 in 5, so to zatiči, ki jih bomo razglasili z našo kodo. To je treba postaviti na vrh vašega Arduino projekta, pred katero koli funkcijo.

int input4Pin = 5;
int input3Pin = 4;
int input2Pin = 3;
int input1Pin = 2;

Nastavitev gumbov

Kot pri večini projektov Arduino, bomo uporabili funkcijo, ki se bo zagnala enkrat na začetku programa, imenovana void setup(). Najprej bomo začeli našo serijsko povezavo s hitrostjo prenosa 57600, čemur bo sledila inicializacija naših gumbov. To je vse, kar potrebujemo v našem void setup() funkcijo.

void setup()
{
Serial.begin (57600); // s tem se začne serijska povezava s hitrostjo prenosa 57600
pinMode (input4Pin, INPUT);
pinMode (input3Pin, INPUT);
pinMode (input2Pin, INPUT);
pinMode (input1Pin, INPUT); // te vrstice deklarirajo vsak gumb kot vhod
}

Zaznavanje pritiskov na gumbe

Ta naslednja faza je bolj zapletena od ostalih, saj bomo ustvarili lastno funkcijo, ki bo obravnavala spremenljivko iz funkcije glavne zanke. Za začetek moramo svojo funkcijo deklarirati s celoštevilsko spremenljivko, kot je spodnja koda.

void checkPush (int pinNumber)

Po tem moramo dodeliti spremenljivko, ki jo uporabljamo, in ustvariti če izjavo za zaznavanje, kdaj je vsak gumb pritisnjen. Ta funkcija lahko hkrati preverja samo gumb, pri čemer uporablja spremenljivko, ki jo dobi iz funkcije glavne zanke, tako da ve, kateri gumb preverja. Naša če stavek preveri stanje gumba s pomočjo vgrajenega digitalRead funkcijo.

void checkPush (int pinNumber) 
{
int buttonPushed = digitalno branje (pinŠtevilka);
če (buttonPushed == VISOKO) {
// tukaj dodajte kodo, ko pritisnete gumb
}
drugače {
// tukaj dodajte kodo, ko gumb ni pritisnjen
}
}

Koda je dodana v če stavek se bo zagnal, ko pritisnete gumb, medtem ko je koda v drugo stavek se bo zagnal samo, če gumb ni pritisnjen.

Izgradnja glavne zanke

Končno, kot zadnji kos kode, ki ga morate dodati svojemu programu, je čas, da sestavite void loop() funkcijo. Potrebujemo samo štiri vrstice kode: po eno za vsak gumb, ki smo ga pritrdili na naš Arduino. Te vrstice pokličejo funkcijo, ki smo jo ustvarili v prejšnjem koraku, s številko pin vsakega gumba.

void loop()
{
checkPush (5);
checkPush (4);
checkPush (3);
checkPush (2);
}

Končana koda

Ko imate vso to kodo na mestu, bi moral vaš končni program videti kot spodnja koda. V vsako vrstico smo dodali komentarje, da bi jo lažje razumeli, vendar vam priporočamo, da poiščete in preberete o vsem, česar ne prepoznate. To je lahko odličen način za razširitev znanja o kodiranju.

int input4Pin = 5;
int input3Pin = 4;
int input2Pin = 3;
int input1Pin = 2;
// to deklarira vsak naš gumb in njihove zatiče
// poskrbite, da boste uporabili zatiče, na katere so povezani vaši gumbi
void setup()
{
Serial.begin (57600); // s tem se začne serijska povezava s hitrostjo prenosa 57600
pinMode (input4Pin, INPUT);
pinMode (input3Pin, INPUT);
pinMode (input2Pin, INPUT);
pinMode (input1Pin, INPUT); // te vrstice deklarirajo vsak gumb kot vhod
}
void loop()
{
checkPush (5);
checkPush (4);
checkPush (3);
checkPush (2); // vsaka od teh vrstic pokliče našo funkcijo checkPush z drugačno številko pin
}
void checkPush (int pinNumber) // ta funkcija ob klicu pričakuje celo število
{
int buttonPushed = digitalno branje (pinŠtevilka); // to prebere stanje gumba na podlagi njegove številke pin
if (buttonPushed == HIGH) { // to preveri stanje gumba
// tukaj dodajte kodo, ko pritisnete gumb
}
drugače {
// tukaj dodajte kodo, ko gumb ni pritisnjen
}
}

Uspeh: Ožičenje in programiranje več tipk z Arduinom

To je preprost projekt za začetek, ko želite izvedeti več o strojni in programski opremi za Arduinos. Z dodatnimi komponentami lahko preprosto razširite, kar ste naredili, kar vam daje priložnost, da raziščete številne vznemirljive ideje in ustvarite stvari, zaradi katerih se počutite ponosni.

Programiranje Arduino za začetnike: Vadnica za projekt krmilnika semaforjev

Preberite Naprej

DelitiTweetDelitiE-naslov

Povezane teme

  • DIY
  • Programiranje
  • Arduino
  • Elektronika
  • Programiranje
  • Vadnice za projekte DIY

O avtorju

Samuel L. Garbett (36 objavljenih člankov)

Samuel je pisatelj o tehnologiji s sedežem v Združenem kraljestvu s strastjo za vse stvari, ki jih naredim sam. Z ustanovitvijo podjetij na področju spletnega razvoja in 3D tiskanja ter dolgoletnega pisanja, Samuel ponuja edinstven vpogled v svet tehnologije. Osredotoča se predvsem na tehnološke projekte DIY in ne ljubi nič drugega kot deljenje zabavnih in vznemirljivih idej, ki jih lahko preizkusite doma. Zunaj službe je Samuela običajno mogoče najti, da kolesari, igra računalniške videoigre ali obupno poskuša komunicirati s svojim hišnim rakom.

Več od Samuel L. Garbett

Naročite se na naše novice

Pridružite se našemu glasilu za tehnične nasvete, ocene, brezplačne e-knjige in ekskluzivne ponudbe!

Kliknite tukaj, da se naročite