Arduino UNO ger förmågan att interagera med den verkliga världen med sina digitala stift. Du kan använda dessa stift för att styra enheter som lysdioder, motorer och reläer eller läsa ingångar från sensorer, knappar och switchar. Denna handledning kommer att förklara hur man ställer in digitala stift, utför läs- och skrivoperationer och använder if
Uttalanden för logikbaserade beslut i dina projekt.
Vad du behöver
- Arduino Uno med USB -kabel
- LED och ett 220-ohm-motstånd (för utgångsexempel)
- Tryckknapp och ett 10K-ohm-motstånd (för inmatningsexempel)
- Breadboard och jumpertrådar
- En dator med Arduino Ide installerad
Steg 1: Ställa in digitala stift
Digitala stiftlägen
Arduino Uno har 14 digitala stift (D0-D13). Dessa stift kan konfigureras som:
- Input: För att läsa signaler från sensorer eller switchar.
- Produktion: För att kontrollera lysdioder, motorer eller andra ställdon.
Använda pinMode()
funktion för att ställa in läget för en stift i setup()
fungera:
pinMode(pinNumber, mode);
-
pinNumber
: Stiftet du vill konfigurera (t.ex. 2, 3, etc.). -
mode
: AntingenINPUT
,INPUT_PULLUP
ellerOUTPUT
.
Steg 2: Skriva till en digital stift
Du kan styra enheter genom att skriva HIGH
eller LOW
till en utgångsstift med digitalWrite()
fungera:
digitalWrite(pinNumber, value);
-
value
: AntingenHIGH
(5V) ellerLOW
(0V).
Exempel: Blinkande en LED
Så här blinkar du en LED ansluten till stift 13:
#define ledPin 13 // LED connected to pin 13
void setup() {
pinMode(ledPin, OUTPUT); // Set pin 13 as an output
}
void loop() {
digitalWrite(ledPin, HIGH); // Turn the LED on
delay(1000); // Wait for 1 second
digitalWrite(ledPin, LOW); // Turn the LED off
delay(1000); // Wait for 1 second
}
Steg 3: Läsning från en digital stift
För att läsa tillståndet på en stift, använd digitalRead()
fungera:
int state = digitalRead(pinNumber);
-
state
: Kommer att vara antingenHIGH
ellerLOW
baserat på insignalen.
Exempel: Läsa en knapptryckning
Anslut en tryckknapp till stift 2 med ett neddragningsmotstånd (10K-ohm). När du trycker på kommer knappen att skicka en HIGH
signal.
#define buttonPin 2 // Button connected to pin 2
#define ledPin 13 // LED connected to pin 13
void setup() {
pinMode(buttonPin, INPUT); // Set pin 2 as an input
pinMode(ledPin, OUTPUT); // Set pin 13 as an output
}
void loop() {
int buttonState = digitalRead(buttonPin); // Read the button state
if (buttonState == HIGH) {
digitalWrite(ledPin, HIGH); // Turn on the LED if the button is pressed
} else {
digitalWrite(ledPin, LOW); // Turn off the LED otherwise
}
}
Steg 4: Använda if
Uttalanden med digitala stift
if
Uttalanden gör att du kan skapa villkorad logik i ditt program. Kombinera digitala läsningar och skriver för att utföra åtgärder baserade på input.
Exempel: Växla en LED på Button Press
Den här skissen växlar LED -tillståndet varje gång knappen trycks in:
#define buttonPin 2 // Button connected to pin 2
#define ledPin 13 // LED connected to pin 13
bool ledState = false; // Current state of the LED
bool lastButtonState = LOW; // Previous state of the button
void setup() {
pinMode(buttonPin, INPUT);
pinMode(ledPin, OUTPUT);
}
void loop() {
bool currentButtonState = digitalRead(buttonPin);
if (currentButtonState == HIGH && lastButtonState == LOW) {
ledState = !ledState; // Toggle the LED state
digitalWrite(ledPin, ledState ? HIGH : LOW);
}
lastButtonState = currentButtonState; // Update the button state
delay(50); // Debounce delay
}
Steg 5: Avancerad användning med logikoperationer
Du kan använda flera if
uttalanden, else if
och logiska operatörer (&&
, ||
, etc.) för att skapa mer komplexa beteenden.
Exempel: Multi-ingångskontroll
Kontrollera en LED baserad på tillstånden för två knappar:
#define button1 2 // Button 1 connected to pin 2
#define button2 3 // Button 2 connected to pin 3
#define ledPin 13 // LED connected to pin 13
void setup() {
pinMode(button1, INPUT);
pinMode(button2, INPUT);
pinMode(ledPin, OUTPUT);
}
void loop() {
bool button1State = digitalRead(button1);
bool button2State = digitalRead(button2);
if (button1State == HIGH && button2State == HIGH) {
digitalWrite(ledPin, HIGH); // Turn on LED if both buttons are pressed
} else {
digitalWrite(ledPin, LOW); // Turn off LED otherwise
}
}
Felsökning
-
LED tänds inte:
- Se till att lysdioden är ansluten korrekt (långt ben till den positiva stiftet).
- Använd ett 220-ohm-motstånd för att undvika skador.
-
Knappen svarar inte:
- Kontrollera om det är korrekt ledningar med ett neddragnings- eller pull-up-motstånd.
- Verifiera att pinmode är inställd på
INPUT
ellerINPUT_PULLUP
.
-
Avskaffa frågor:
- Använd en liten fördröjning eller implementera en mjukvarumekanism för att hantera signalbrus från mekaniska knappar.
Slutsats
Du har lärt dig hur du utför digital läs- och skrivoperationer med Arduino UNO, konfigurera PIN -lägen och användning if
Uttalanden för villkorad logik. Dessa grundläggande färdigheter gör det möjligt för dig att kontrollera en mängd olika hårdvarukomponenter och skapa interaktiva, lyhörda projekt. Experimentera ytterligare genom att kombinera flera ingångar och utgångar för mer komplext beteende!