Gumbi su nevjerojatno česti u DIY Arduino prostoru, s bezbrojnim projektima diljem weba koji se oslanjaju na ove male prekidače za aktiviranje svog koda. Ali kako točno možete povezati i programirati više od jednog gumba za rad s vašim Arduinom? Hajde da vidimo.

Što izrađujemo?

Ovo je jednostavan projekt koji je osmišljen kako biste započeli sa složenijim Arduino izradama u budućnosti. Našim gumbima nećemo zadavati posao, ali to znači da možete odabrati što želite da rade za sebe koristeći jedan od naših drugih praktičnih DIY Arduino vodiča.

Što trebaš?

Za dovršetak ovog projekta trebate samo nekoliko dijelova, od kojih ćete mnoge već imati u svojoj kolekciji DIY dijelova.

  • 4 x prekidači s tipkom
  • 4 x 10kΩ otpornika
  • 1 x Bilo koji vrsta Arduino ploče (koristimo Leonardo)
  • Žica presvučena PVC/silikonom

Ožičenje više tipki s Arduinom

Ožičenje za ovaj projekt je jednostavno, ali morate biti oprezni da se žice ne zapetljaju dok uspostavljate svaku vezu, jer svaki gumb zahtijeva dvije različite žice.

instagram viewer

Počevši od jednostavnog, ima smisla spojiti jednu tipku s pozitivnom nogom spojenom na pin od 5V na našem Arduinu, a nožica uzemljenja gumba spojena na GND i digitalni pin 2 na našem Arduinu odbor. Otpornik mora biti spojen između noge uzemljenja gumba i GND pina na Arduinu.

Kada je jedan gumb spojen, vrijeme je da dodate ostale. Svaki gumb treba svoj vlastiti digitalni pin; odabrali smo 2, 3, 4 i 5 za četiri gumba koje koristimo, ali bilo koji od digitalnih pinova će raditi. Sada kada je vaš Arduino spojen, vrijeme je da počnete raditi na kodu.

Programiranje više tipki s Arduinom

Kod za projekt je lijep i jednostavan, bez potrebe za ikakvim bibliotekama klasa ili drugim kompliciranim programiranjem.

Dodjeljivanje gumba iglama

Za prvi korak, moramo dodijeliti naše gumbe različitim iglama na našoj Arduino ploči. Budući da smo koristili digitalne pinove 2, 3, 4 i 5, ovo su pinovi koje ćemo deklarirati našim kodom. Ovo bi trebalo biti postavljeno na vrh vašeg Arduino projekta, prije bilo koje funkcije.

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

Postavljanje gumba

Kao i kod većine Arduino projekata, koristit ćemo funkciju koja će se pokrenuti jednom na početku programa, tzv void setup(). Prvo ćemo započeti našu serijsku vezu s brzinom prijenosa od 57600, nakon čega slijedi inicijalizacija naših gumba. Ovo je sve što nam treba u našoj void setup() funkcija.

void setup()
{
Serial.begin (57600); // ovo započinje serijsku vezu brzinom prijenosa od 57600
pinMode (input4Pin, INPUT);
pinMode (input3Pin, INPUT);
pinMode (input2Pin, INPUT);
pinMode (input1Pin, INPUT); // ove linije deklariraju svaki od gumba kao ulaz
}

Prepoznavanje pritiska na tipke

Ova sljedeća faza je složenija od ostalih, jer ćemo kreirati vlastitu funkciju koja će se baviti varijablom iz glavne funkcije petlje. Za početak, moramo deklarirati našu funkciju s cjelobrojnom varijablom kao što je kod u nastavku.

void checkPush (int pinNumber)

Nakon toga, moramo dodijeliti varijablu koju koristimo i kreirati ako izjavu za otkrivanje kada se pritisne svaki gumb. Ova funkcija može provjeravati samo gumb po jedan, koristeći varijablu koju dobiva od glavne funkcije petlje tako da zna koji gumb provjerava. Naše ako izjava provjerava stanje gumba pomoću ugrađenog digitalRead funkcija.

void checkPush (int pinNumber) 
{
int buttonPushed = digitalRead (pinBroj);
if (buttonPushed == VISOKO) {
// ovdje dodajte kod za kada se pritisne gumb
}
ostalo {
// ovdje dodajte kod za kada se gumb ne pritisne
}
}

Kod dodan u ako izjava će se pokrenuti kada se pritisne gumb, dok je kod u drugo Izjava će se pokrenuti samo kada gumb nije pritisnut.

Izgradnja glavne petlje

Konačno, kao posljednji dio koda koji trebate dodati svom programu, vrijeme je za izradu void petlja() funkcija. Trebaju nam samo četiri retka koda: po jedan za svaki gumb koji smo pričvrstili na naš Arduino. Ove linije pozivaju funkciju koju smo kreirali u prethodnom koraku s pin brojem svakog gumba.

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

Završeni kod

Nakon što imate sav ovaj kod na mjestu, vaš gotov program trebao bi izgledati kao kod u nastavku. Dodali smo komentare u svaki redak kako bismo ga lakše razumjeli, ali potičemo vas da pogledate i pročitate o svemu što ne prepoznajete. Ovo može biti izvrstan način da proširite svoje znanje o kodiranju.

int input4Pin = 5;
int input3Pin = 4;
int input2Pin = 3;
int ulaz1Pin = 2;
// ovo deklarira svaki naš gumb i njihove igle
// provjerite koristite li igle na koje su vaši gumbi povezani
void setup()
{
Serial.begin (57600); // ovo započinje serijsku vezu brzinom prijenosa od 57600
pinMode (input4Pin, INPUT);
pinMode (input3Pin, INPUT);
pinMode (input2Pin, INPUT);
pinMode (input1Pin, INPUT); // ove linije deklariraju svaki od gumba kao ulaz
}
void petlja()
{
checkPush (5);
checkPush (4);
checkPush (3);
checkPush (2); // svaki od ovih redaka poziva našu funkciju checkPush s različitim pin brojem
}
void checkPush (int pinNumber) // ova funkcija očekuje cjelobrojnu vrijednost kada se pozove
{
int buttonPushed = digitalRead (pinBroj); // ovo čita stanje gumba na temelju njegovog pin broja
if (buttonPushed == HIGH) { // ovo provjerava stanje gumba
// ovdje dodajte kod za kada se pritisne gumb
}
ostalo {
// ovdje dodajte kod za kada se gumb ne pritisne
}
}

Uspjeh: Ožičenje i programiranje više tipki s Arduinom

Ovo je jednostavan projekt za početak kada želite naučiti o hardveru i softveru za Arduinos. Možete jednostavno proširiti ono što ste napravili dodatnim komponentama, dajući vam priliku da istražite mnoštvo uzbudljivih ideja i stvorite stvari zbog kojih se osjećate ponosno.

Arduino programiranje za početnike: Vodič za projekt kontrolera semafora

Pročitajte dalje

UdioCvrkutUdioE-mail

Povezane teme

  • DIY
  • Programiranje
  • Arduino
  • Elektronika
  • Programiranje
  • Upute za DIY projekte

O autoru

Samuel L. Garbett (Objavljeno 36 članaka)

Samuel je pisac o tehnologiji sa sjedištem u Ujedinjenom Kraljevstvu sa strašću za sve stvari DIY. Nakon što je pokrenuo poslove u području web razvoja i 3D ispisa, uz dugogodišnji rad kao pisac, Samuel nudi jedinstven uvid u svijet tehnologije. Usredotočujući se uglavnom na DIY tehničke projekte, ne voli ništa više od dijeljenja zabavnih i uzbudljivih ideja koje možete isprobati kod kuće. Izvan posla, Samuela se obično može naći kako vozi bicikl, igra PC video igrice ili očajnički pokušava komunicirati sa svojim rakovim ljubimcem.

Više od Samuela L. Garbett

Pretplatite se na naše obavijesti

Pridružite se našem biltenu za tehničke savjete, recenzije, besplatne e-knjige i ekskluzivne ponude!

Kliknite ovdje za pretplatu