Drukknoppen zijn ongelooflijk gebruikelijk in de doe-het-zelf Arduino-ruimte, met talloze projecten op internet die op deze kleine schakelaars vertrouwen om hun code te activeren. Maar hoe kun je precies meer dan één drukknop bedraden en programmeren om met je Arduino te werken? Laten wij het uitzoeken.

Wat maken we?

Dit is een eenvoudig project dat is ontworpen om u op weg te helpen met complexere Arduino-builds in de toekomst. We gaan onze knoppen geen werk geven, maar dit betekent dat je kunt kiezen wat je wilt dat ze voor jezelf doen met behulp van een van onze andere handige DIY Arduino-handleidingen.

Wat heb je nodig?

Je hebt maar een handvol onderdelen nodig om dit project te voltooien, waarvan je er veel al in je doe-het-zelf-onderdelenverzameling hebt.

  • 4 x drukknopschakelaars
  • 4 x 10kΩ weerstanden
  • 1 x Willekeurig type Arduino-bord (we gebruiken een Leonardo)
  • PVC/siliconen gecoate draad

Bedrading van meerdere drukknoppen met een Arduino

De bedrading voor dit project is eenvoudig, maar je moet voorzichtig zijn om te voorkomen dat je draden in de war raken terwijl je elke verbinding maakt, omdat voor elke knop twee verschillende draden nodig zijn.

instagram viewer

Om eenvoudig te beginnen, is het logisch om één drukknop te bedraden met zijn positieve been verbonden met de 5V-pin op onze Arduino, en het aardingsbeen van de knop is verbonden met zowel GND als Digital Pin 2 op onze Arduino bord. Er moet een weerstand worden aangesloten tussen het aardingsbeen van de knop en de GND-pin op de Arduino.

Met één knop aangesloten, is het tijd om de anderen toe te voegen. Elke knop heeft zijn eigen digitale pin nodig; we hebben 2, 3, 4 en 5 gekozen voor de vier knoppen die we gebruiken, maar alle digitale pinnen zullen werken. Nu je Arduino helemaal is aangesloten, is het tijd om aan de code te gaan werken.

Meerdere drukknoppen programmeren met een Arduino

De code voor het project is mooi en eenvoudig, zonder dat er klassenbibliotheken of andere gecompliceerde programmering nodig zijn.

Knoppen toewijzen aan pinnen

Voor de eerste stap moeten we onze knoppen toewijzen aan de verschillende pinnen op ons Arduino-bord. Aangezien we digitale pinnen 2, 3, 4 en 5 hebben gebruikt, zijn dit de pinnen die we met onze code declareren. Dit moet bovenaan uw Arduino-project worden geplaatst, vóór een van de functies.

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

De knoppen instellen

Zoals bij de meeste Arduino-projecten, zullen we een functie gebruiken die één keer aan het begin van het programma wordt uitgevoerd, genaamd ongeldige setup(). Eerst starten we onze seriële verbinding met een baudrate van 57600, gevolgd door de initialisatie van onze knoppen. Dit is alles wat we nodig hebben in onze ongeldige setup() functie.

ongeldige setup()
{
Serieel.begin (57600); // dit begint de seriële verbinding met een baudrate van 57600
pinMode (input4Pin, INPUT);
pinMode (input3Pin, INPUT);
pinMode (input2Pin, INPUT);
pinMode (input1Pin, INPUT); // deze regels verklaren elk van de knoppen als invoer
}

Drukken op knoppen detecteren

Deze volgende fase is complexer dan de andere, omdat we onze eigen functie gaan maken die te maken heeft met een variabele uit de hoofdlusfunctie. Om te beginnen, moeten we onze functie declareren met een integer-variabele zoals de onderstaande code.

void checkPush (int pinNumber)

Hierna moeten we de variabele die we gebruiken toewijzen en een maken als statement om te detecteren wanneer elke knop wordt ingedrukt. Deze functie kan slechts één knop tegelijk controleren, met behulp van de variabele die hij van de hoofdlusfunctie krijgt, zodat hij weet welke knop de controle heeft. Ons als statement controleert de status van de knop met behulp van de ingebouwde digitaal lezen functie.

void checkPush (int pinNumber) 
{
int buttonPushed = digitalRead (pinNumber);
if (buttonPushed == HOOG) {
// voeg hier code toe voor wanneer er op een knop wordt gedrukt
}
anders {
// voeg hier code toe voor wanneer er niet op een knop wordt gedrukt
}
}

Code toegevoegd aan de als instructie wordt uitgevoerd wanneer een knop wordt ingedrukt, terwijl code in de anders statement wordt alleen uitgevoerd als er niet op een knop wordt gedrukt.

De hoofdlus bouwen

Eindelijk, als het laatste stukje code dat je aan je programma moet toevoegen, is het tijd om de lege lus() functie. We hebben slechts vier regels code nodig: één voor elk van de knoppen die we aan onze Arduino hebben bevestigd. Deze regels roepen de functie aan die we in de vorige stap hebben gemaakt met het pinnummer van elke knop.

lege lus()
{
checkPush (5);
checkPush (4);
checkPush (3);
checkPush (2);
}

De voltooide code

Zodra je al deze code hebt ingevoerd, zou je voltooide programma eruit moeten zien als de onderstaande code. We hebben opmerkingen aan elke regel toegevoegd om het begrijpelijker te maken, maar we raden u aan om alles wat u niet herkent op te zoeken en te lezen. Dit kan een geweldige manier zijn om uw codeerkennis uit te breiden.

int input4Pin = 5;
int input3Pin = 4;
int input2Pin = 3;
int ingang1Pin = 2;
// dit verklaart elk van onze knoppen en hun pinnen
// zorg ervoor dat je de pinnen gebruikt waarop je knoppen zijn aangesloten
ongeldige setup()
{
Serieel.begin (57600); // dit begint de seriële verbinding met een baudrate van 57600
pinMode (input4Pin, INPUT);
pinMode (input3Pin, INPUT);
pinMode (input2Pin, INPUT);
pinMode (input1Pin, INPUT); // deze regels verklaren elk van de knoppen als invoer
}
lege lus()
{
checkPush (5);
checkPush (4);
checkPush (3);
checkPush (2); // elk van deze regels roept onze checkPush-functie aan met een ander pinnummer
}
void checkPush (int pinNumber) // deze functie verwacht een geheel getal wanneer deze wordt aangeroepen
{
int buttonPushed = digitalRead (pinNumber); // dit leest de status van een knop op basis van zijn pincode
if (buttonPushed == HIGH) { // dit controleert de status van de knop
// voeg hier code toe voor wanneer er op een knop wordt gedrukt
}
anders {
// voeg hier code toe voor wanneer er niet op een knop wordt gedrukt
}
}

Succes: Bedrading en programmering van meerdere drukknoppen met een Arduino

Dit is een eenvoudig project om mee te beginnen als je meer wilt weten over hardware en software voor Arduino's. Je kunt eenvoudig uitbreiden wat je hebt gemaakt met extra componenten, waardoor je de kans krijgt om een ​​schat aan spannende ideeën te ontdekken en dingen te creëren waar je trots op bent.

Arduino-programmering voor beginners: zelfstudie voor verkeerslichtcontrollers

Lees volgende

DelenTweetenDelenE-mail

Gerelateerde onderwerpen

  • doe-het-zelf
  • Programmeren
  • Arduino
  • Elektronica
  • Programmeren
  • Zelfstudies voor doe-het-zelfprojecten

Over de auteur

Samuël L. Garbett (36 artikelen gepubliceerd)

Samuel is een in het Verenigd Koninkrijk gevestigde technologieschrijver met een passie voor alles wat met doe-het-zelf te maken heeft. Met het starten van bedrijven op het gebied van webontwikkeling en 3D-printen, en vele jaren als schrijver werken, biedt Samuel een uniek inzicht in de wereld van technologie. Hij richt zich voornamelijk op doe-het-zelf technische projecten en doet niets liever dan leuke en opwindende ideeën delen die je thuis kunt uitproberen. Buiten het werk is Samuel meestal te vinden op fietsen, pc-videogames spelen of wanhopig proberen te communiceren met zijn huisdierenkrab.

Meer van Samuel L. Garbett

Abonneer op onze nieuwsbrief

Word lid van onze nieuwsbrief voor technische tips, recensies, gratis e-boeken en exclusieve deals!

Klik hier om je te abonneren