Butoanele sunt incredibil de comune în spațiul DIY Arduino, cu nenumărate proiecte de pe web bazându-se pe aceste întrerupătoare mici pentru a-și activa codul. Dar cum exact puteți conecta și programa mai mult de un buton pentru a funcționa cu Arduino? Să aflăm.

Ce facem?

Acesta este un proiect simplu care este conceput pentru a vă ajuta să începeți cu versiuni Arduino mai complexe în viitor. Nu vom oferi butoanelor noastre o treabă, dar acest lucru înseamnă că puteți alege ce ați dori să facă pentru dvs. folosind unul dintre celelalte ghiduri la îndemână pentru Arduino DIY.

De ce ai nevoie?

Ai nevoie doar de câteva piese pentru a finaliza acest proiect, multe dintre ele le vei avea deja în colecția ta de piese de bricolaj.

  • 4 x întrerupătoare cu buton
  • 4 x rezistențe 10kΩ
  • 1 x Oricare tip de placă Arduino (folosim un Leonardo)
  • Sârmă acoperită cu PVC/silicon

Conectarea mai multor butoane cu un Arduino

Cablajul pentru acest proiect este simplu, dar trebuie să aveți grijă să evitați să vă încurceți firele pe măsură ce faceți fiecare conexiune, deoarece fiecare buton necesită două fire diferite.

instagram viewer

Începând simplu, este logic să conectați un buton cu piciorul pozitiv conectat la pinul de 5V pe Arduino nostru și piciorul de masă al butonului este conectat atât la GND, cât și la Pinul Digital 2 de pe Arduino. bord. Trebuie conectat un rezistor între piciorul de masă al butonului și pinul GND de pe Arduino.

Cu un buton conectat, este timpul să le adăugați pe celelalte. Fiecare buton are nevoie de propriul PIN digital; am ales 2, 3, 4 și 5 pentru cele patru butoane pe care le folosim, dar oricare dintre pinii digitali va funcționa. Acum că Arduino este conectat, este timpul să începeți să lucrați la cod.

Programarea mai multor butoane cu un Arduino

Codul proiectului este frumos și simplu, fără a fi nevoie de biblioteci de clasă sau alte programe complicate.

Atribuirea butoanelor la pini

Pentru primul pas, trebuie să ne atribuim butoanele diferiților pini de pe placa noastră Arduino. Având în vedere că am folosit pinii digitali 2, 3, 4 și 5, aceștia sunt pinii pe care îi vom declara cu codul nostru. Acesta ar trebui să fie plasat în partea de sus a proiectului dvs. Arduino, înainte de oricare dintre funcții.

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

Configurarea butoanelor

Ca și în cazul majorității proiectelor Arduino, vom folosi o funcție care va rula o dată la începutul programului, numită void setup(). În primul rând, vom începe conexiunea noastră serială cu o viteză de transmisie de 57600, urmată de inițializarea butoanelor noastre. Acesta este tot ce avem nevoie în noi void setup() funcţie.

void setup()
{
Serial.begin (57600); // aceasta începe conexiunea serială cu o viteză de transmisie de 57600
pinMode (input4Pin, INPUT);
pinMode (input3Pin, INPUT);
pinMode (input2Pin, INPUT);
pinMode (input1Pin, INPUT); // aceste linii declară fiecare dintre butoane ca intrare
}

Detectarea apăsărilor de butoane

Această etapă următoare este mai complexă decât celelalte, deoarece vom crea propria noastră funcție care va avea de-a face cu o variabilă din funcția principală a buclei. Pentru a începe, trebuie să ne declarăm funcția cu o variabilă întreagă precum codul de mai jos.

void checkPush (int pinNumber)

După aceasta, trebuie să atribuim variabila pe care o folosim și să creăm un dacă declarație pentru a detecta când fiecare buton este apăsat. Această funcție poate verifica numai butonul la un moment dat, folosind variabila pe care o primește din funcția de buclă principală, astfel încât să știe ce buton este verificat. Al nostru dacă instrucțiunea verifică starea butonului folosind funcția încorporată digitalRead funcţie.

void checkPush (int pinNumber) 
{
int buttonPushed = digitalRead (pinNumber);
dacă (buton apăsat == MARE) {
// adaugă aici cod pentru când se apasă un buton
}
else {
// adaugă cod aici pentru când nu este apăsat un buton
}
}

Cod adăugat la dacă instrucțiunea va rula atunci când este apăsat un buton, în timp ce codul este în altfel instrucțiunea va rula numai atunci când nu este apăsat un buton.

Construirea buclei principale

În cele din urmă, ca ultima bucată de cod pe care trebuie să o adăugați la programul dvs., este timpul să construiți buclă goală () funcţie. Avem nevoie doar de patru linii de cod: una pentru fiecare dintre butoanele pe care le-am atașat la Arduino. Aceste linii denumesc funcția pe care am creat-o în pasul anterior cu numărul PIN al fiecărui buton.

buclă goală ()
{
checkPush (5);
checkPush (4);
checkPush (3);
checkPush (2);
}

Codul Terminat

Odată ce aveți tot acest cod la loc, programul dvs. terminat ar trebui să arate ca codul de mai jos. Am adăugat comentarii la fiecare rând pentru a fi mai ușor de înțeles, dar vă încurajăm să căutați și să citiți despre orice nu recunoașteți. Aceasta poate fi o modalitate excelentă de a vă extinde cunoștințele de codificare.

int input4Pin = 5;
int input3Pin = 4;
int input2Pin = 3;
int input1Pin = 2;
// aceasta declară fiecare dintre butoanele noastre și pinii lor
// asigurați-vă că utilizați pinii la care sunt conectate butoanele dvs
void setup()
{
Serial.begin (57600); // aceasta începe conexiunea serială cu o viteză de transmisie de 57600
pinMode (input4Pin, INPUT);
pinMode (input3Pin, INPUT);
pinMode (input2Pin, INPUT);
pinMode (input1Pin, INPUT); // aceste linii declară fiecare dintre butoane ca intrare
}
buclă goală ()
{
checkPush (5);
checkPush (4);
checkPush (3);
checkPush (2); // fiecare dintre aceste linii apelează funcția noastră checkPush cu un număr PIN diferit
}
void checkPush (int pinNumber) // această funcție așteaptă o valoare întreagă atunci când este apelată
{
int buttonPushed = digitalRead (pinNumber); // aceasta citește starea unui buton pe baza numărului său de pin
if (buttonPushed == HIGH) { // aceasta verifică starea butonului
// adaugă aici cod pentru când se apasă un buton
}
else {
// adaugă cod aici pentru când nu este apăsat un buton
}
}

Succes: cablarea și programarea mai multor butoane cu un Arduino

Acesta este un proiect ușor de început atunci când doriți să aflați despre hardware și software pentru Arduinos. Puteți extinde cu ușurință ceea ce ați realizat cu componente suplimentare, oferindu-vă șansa de a explora o mulțime de idei interesante și de a crea lucruri care vă fac să vă simțiți mândru.

Programare Arduino pentru începători: Tutorial de proiect pentru controlerul semaforului

Citiți în continuare

AcțiuneTweetAcțiuneE-mail

Subiecte asemănătoare

  • bricolaj
  • Programare
  • Arduino
  • Electronică
  • Programare
  • Tutoriale pentru proiecte de bricolaj

Despre autor

Samuel L. Garbett (36 articole publicate)

Samuel este un scriitor de tehnologie din Marea Britanie cu o pasiune pentru toate lucrurile bricolaj. După ce a început afaceri în domeniile dezvoltării web și imprimării 3D, împreună cu munca de scriitor timp de mulți ani, Samuel oferă o perspectivă unică asupra lumii tehnologiei. Concentrându-se în principal pe proiecte tehnologice de bricolaj, nu îi place nimic mai mult decât să împărtășească idei distractive și interesante pe care le poți încerca acasă. În afara serviciului, Samuel poate fi găsit de obicei mergând cu bicicleta, jucând jocuri video pe computer sau încercând cu disperare să comunice cu crabul lui.

Mai multe de la Samuel L. Garbett

Aboneaza-te la newsletter-ul nostru

Alăturați-vă buletinului nostru informativ pentru sfaturi tehnice, recenzii, cărți electronice gratuite și oferte exclusive!

Click aici pentru a te abona