Die Arduino Uno bietet die Möglichkeit, mit den digitalen Stiften mit der realen Welt zu interagieren. Sie können diese Pins verwenden, um Geräte wie LEDs, Motoren und Relais zu steuern oder Eingänge von Sensoren, Tasten und Schalter zu lesen. In diesem Tutorial wird erklärt, wie Sie digitale Stifte einrichten, Lese- und Schreibvorgänge ausführen und nutzen if
Aussagen für logikbasierte Entscheidungen in Ihren Projekten.
Was Sie brauchen werden
- Arduino uno mit USB -Kabel
- LED und ein 220-Ohm-Widerstand (für Ausgangsbeispiele)
- Druckknopf und einen 10k-Ohm-Widerstand (für Eingangsbeispiele)
- Breadboard- und Jumper -Drähte
- Ein Computer mit der Arduino -IDE installiert
Schritt 1: Einrichten digitaler Pins einrichten
Digitale PIN -Modi
Arduino Uno verfügt über 14 digitale Stifte (D0-D13). Diese Stifte können konfiguriert werden als:
- Eingang: Signale von Sensoren oder Schalter lesen.
- Ausgabe: LEDs, Motoren oder andere Aktuatoren zu kontrollieren.
Benutze die pinMode()
Funktionieren Sie den Modus eines Pin in die setup()
Funktion:
pinMode(pinNumber, mode);
-
pinNumber
: Der Stift, den Sie konfigurieren möchten (z. B. 2, 3 usw.). -
mode
: EntwederINPUT
,INPUT_PULLUP
, oderOUTPUT
.
Schritt 2: Schreiben Sie an einen digitalen Pin
Sie können Geräte durch Schreiben steuern HIGH
oder LOW
zu einem Ausgangsstift mit dem digitalWrite()
Funktion:
digitalWrite(pinNumber, value);
-
value
: EntwederHIGH
(5V) oderLOW
(0V).
Beispiel: blinzeln eine LED
Hier erfahren Sie, wie Sie eine mit Pin 13 verbundene LED blinken:
#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
}
Schritt 3: Lesen von einem digitalen Pin
Verwenden Sie das Zustand eines Stifts, um den Zustand eines PINs zu lesen digitalRead()
Funktion:
int state = digitalRead(pinNumber);
-
state
: Wird entweder seinHIGH
oderLOW
basierend auf dem Eingangssignal.
Beispiel: Lesen einer Taste Drücken Sie drücken
Schließen Sie einen Druckknopf mit einem Pulldown-Widerstand (10 k-OHM) an Pin 2 an. Beim Drücken sendet die Taste eine 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
}
}
Schritt 4: Verwenden if
Aussagen mit digitalen Stiften
if
Mit Anweisungen können Sie in Ihrem Programm eine bedingte Logik erstellen. Kombinieren Sie digitale Lese- und Schreibvorgänge, um Aktionen basierend auf Eingaben auszuführen.
Beispiel: Schalten Sie eine LED auf Taste Drücken Sie drücken
Diese Skizze schaltet den LED -Status jedes Mal um, wenn die Taste gedrückt wird:
#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
}
Schritt 5: Fortgeschrittene Nutzung mit logischen Operationen
Sie können mehrere verwenden if
Aussagen, else if
und logische Operatoren (&&
, ||
usw.) um komplexere Verhaltensweisen zu erzeugen.
Beispiel: Mehrfacheingangskontrolle
Steuern Sie eine LED basierend auf den Zuständen von zwei Tasten:
#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
}
}
Fehlerbehebung
-
LED leuchtet nicht an:
- Stellen Sie sicher, dass die LED korrekt angeschlossen ist (langes Bein am positiven Stift).
- Verwenden Sie einen 220-Ohm-Widerstand, um Schäden zu vermeiden.
-
Button antwortet nicht:
- Überprüfen Sie, ob Sie mit einem Pulldown- oder Pull-up-Widerstand eine ordnungsgemäße Verkabelung haben.
- Überprüfen Sie, ob der PinMode auf festgelegt ist
INPUT
oderINPUT_PULLUP
.
-
Ausgaben beenden:
- Verwenden Sie eine kleine Verzögerung oder implementieren Sie einen Software -Entfunce -Mechanismus, um Signalrauschen aus mechanischen Schaltflächen zu verarbeiten.
Abschluss
Sie haben gelernt, wie man digitales Lesen und Schreiben von Operationen mit Arduino Uno ausführt, PIN -Modi konfigurieren und verwenden if
Aussagen für die bedingte Logik. Diese grundlegenden Fähigkeiten ermöglichen es Ihnen, eine Vielzahl von Hardwarekomponenten zu steuern und interaktive, reaktionsschnelle Projekte zu erstellen. Experimentieren Sie weiter, indem Sie mehrere Eingänge und Ausgänge für komplexeres Verhalten kombinieren!