Stap 10: knop
Het circuit van de knop dat we gebruiken bestaat uit twee componenten - een drukknop en een weerstand. In tegenstelling tot het LED-circuit, zijn we niet bezorgd over de hoeveelheid stroom doorgeven via de knop (op zeer hoge niveaus van huidige we zorgen te maken wellicht over het smelten van de knop, maar de Arduino is niet zo krachtig), dus de weerstand niet handelt zoals de beperking van de huidige weerstand in het LED-circuit. In plaats daarvan fungeert deze weerstand als een pull-down weerstand. Een pull-down weerstand banden een knop aan grond, zodat de spanning op de kruising tussen de knop en de weerstand te meten zal altijd 0V (geaard) wanneer de knop niet is ingedrukt (en het circuit geopend is). In dit circuit, de waarde van de pull-down weerstand maakt eigenlijk niet uit, ik graag gebruik maken van iets rond de 10kOhms.
Hier is de schets van de knop:
//Button Press Detection int buttonPin = 7; void setup(){ pinMode(buttonPin, INPUT);//this time we will set the pin as INPUT Serial.begin(9600);//initialize Serial connection } void loop(){ if (digitalRead(buttonPin)==HIGH){//if button pressed Serial.println("pressed"); } else { Serial.println("unpressed"); } }
De knop schets introduceert enkele nieuwe ideeën:
digitalRead(pinNumber) - vergelijkbaar met digitalWrite(), maar gebruikt een waarde van hoog of laag in onze schakeling te meten. digitalRead() neemt één argument - het pin-nummer dat we uit aan het lezen bent. Wij moeten ook zorgen ervoor dat de invoer pin correct te initialiseren:
pinMode (buttonPin, INPUT);
Seriële communicatie - seriële communicatie laat de Arduino berichten naar uw computer stuurt terwijl een programma wordt uitgevoerd, het nuttig voor debugging is, het verzenden van berichten naar andere apparaten of apps, of gewoon om een beter gevoel van wat is in je schakeling gaande er. Om te schakelen van seriële communicatie in uw schets, hebt u voor het initialiseren van de seriële aansluiting in de Arduino de Setup functie met de opdracht Serial.begin(). Serial.begin() neemt één argument, de baud-rate, dat de snelheid van data-overdracht tussen de Arduino en uw computer is, 9600 is een goede baud-rate voor nu. In het volgende schema gebruiken we Serial.println() voor het afdrukken van berichten in de Arduino IDE (Tools >> seriële Monitor).
if/else - If/else statements geeft ons meer controle over welke opdrachten worden uitgevoerd wanneer. In de sketch knop gebruikte ik de volgende if/else statement:
Als (digitalRead(buttonPin)==HIGH) {}
Serial.println("pressed");
} else {}
Serial.println("unpressed");
}
Als het resultaat van digitalRead(buttonPin) als resultaat hoog daarna de Arduino prints, het woord "ingedrukt", als digitalRead(buttonPin) als iets anders dan HIGH (zoals LOW resultaat), de Arduino afgedrukt het woord "ongeperst". Als verklaringen kunnen controleren == ("gelijk aan"),! = ("niet gelijk is aan"), >, <>, =, en < =. Probeer de volgende if-instructie in de loop van de Arduino:
Als (4 > 3) {}
Serial.println("True");
} else {}
Serial.println("false");
}
Wijzig de als verklaring voor de evaluatie van andere dingen.