Nybörjare Arduino (10 / 15 steg)
Steg 10: knapp
Knappen kretsen vi kommer att använda är gjord av två delar - en tryckknapp och en resistor. Till skillnad från LED banan, vi är inte oroad över hur mycket ström passerar genom knappen (till mycket höga nivåer av strömmen vi kan behöva oroa smältande knappen, men Arduino är inte så kraftfull), så motståndet inte agerar som begränsning av nuvarande motstånd i LED krets. Detta motstånd fungerar istället som en pull-down motstånd. En pull-down resistor band en knapp till marken, så att mäta spänningen i korsningen mellan knappen och motståndet kommer alltid att 0V (jordad) när knappen inte är intryckt (och banan är öppen). I denna krets, värdet av nedrullningsbara motståndet spelar egentligen ingen roll, jag lik till använda något runt 10kOhms.
Här är knappen skissen:
Knappen Press upptäckt
int buttonPin = 7.
void setup() {
pinMode (buttonPin, ingång); //this tid vi kommer att ange PIN-koden som indata
Serial.BEGIN (9600); //initialize seriell anslutning
}
void loop() {
om (digitalRead(buttonPin)==HIGH) {//if knappen intryckt
Serial.println("Pressed");
} annat {
Serial.println("unpressed");
}
}
Knappen skissen introducerar några nya idéer:
digitalRead(pinNumber) - liknande digitalWrite(), men används för att mäta värdet av hög eller låg i vår krets. digitalRead() tar ett argument - den pin-kod som vi läser från. Vi måste också se till att initiera ingångsstiftet korrekt:
pinMode (buttonPin, ingång);
Seriell kommunikation - seriell kommunikation kan Arduino skicka meddelanden till datorn medan ett program körs, det är användbara för felsökning, skicka meddelanden till andra enheter eller apps, eller bara få en bättre känsla för vad som händer i din krets. För att aktivera seriell kommunikation i din skiss, måste du initiera seriell anslutning i den Arduino setup() funktion med kommandot Serial.begin(). Serial.BEGIN() tar ett argument, baud rate, som är som överför data mellan Arduino och datorn, 9600 är bra baudvärde för nu. I den följande skissen vi använder Serial.println() att skriva ut meddelanden i Arduino IDE (Verktyg >> Serial Monitor).
if/else - If/else uttalanden ger oss större kontroll över vilka kommandon körs när. I knappen skissen jag använde följande if/else uttalande:
om (digitalRead(buttonPin)==HIGH) {
Serial.println("Pressed");
} annat {
Serial.println("unpressed");
}
om resultatet av digitalRead(buttonPin) returnerar hög då den Arduino skriver ut ordet "tryckte", om digitalRead(buttonPin) returnerar något annat än hög (som låg), Arduino skriver ut ordet "Kolfiberförstärkt". Om uttalanden kan kontrollera om == ("lika"),! = ("inte lika"), >, <>, =, och < =. Prova att köra följande if uttalande i Arduino's loop():
om (4 > 3) {
Serial.println("true");
} annat {
Serial.println("false");
}
Prova att byta om uttalande att utvärdera andra saker.