20 fontnál több rendelés esetén ingyen szállítsák!

Digitális olvasás és írás az Arduino Uno használatával

Digital Read and Write Using the Arduino Uno

Az Arduino UNO képes arra, hogy digitális csapjaival kölcsönhatásba lépjen a valós világgal. Ezeket a csapokat használhatja olyan eszközök vezérlésére, mint a LED -ek, a motorok és a relék, vagy az érzékelőkből, gombokból és kapcsolókból származó bemenetek olvasása. Ez az oktatóanyag elmagyarázza, hogyan állítsa be a digitális csapokat, olvassa el az olvasási és írási műveleteket, és használja if Nyilatkozatok a projektekben logikai alapú döntésekről.


Mire lesz szüksége

  1. Arduino UNO USB -kábelrel
  2. LED és egy 220-OHM ellenállás (kimeneti példákhoz)
  3. Nyomógomb és egy 10K-ohm ellenállás (bemeneti példákhoz)
  4. Kenyérlemez és jumper vezetékek
  5. Egy számítógép, amelyen az Arduino IDE telepített

1. lépés: Digitális csapok beállítása

Digitális PIN -módok

Az Arduino UNO-nak 14 digitális csapja van (D0-D13). Ezek a csapok konfigurálhatók:

  • Bemenet: Az érzékelők vagy kapcsolók jeleinek olvasása.
  • Kimenet: A LED -ek, motorok vagy más hajtóművek vezérlése.

Használja a pinMode() funkció a PIN -kód módjának beállításához a setup() funkció:

pinMode(pinNumber, mode);
  • pinNumber: A konfigurálni kívánt PIN -kód (például 2, 3, stb.).
  • mode: Bármelyik INPUT, INPUT_PULLUP, vagy OUTPUT.

2. lépés: Írás egy digitális tűre

Az eszközöket írással vezérelheti HIGH vagy LOW egy kimeneti csaphoz a digitalWrite() funkció:

digitalWrite(pinNumber, value);
  • value: Bármelyik HIGH (5V) vagy LOW (0V).

Példa: egy LED pislogása

Íme, hogyan pisloghat egy LED -t, amely a 13. érintkezőhöz csatlakozik:

#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
}

3. lépés: Olvasás egy digitális tűből

A PIN -kód állapotának elolvasásához használja a digitalRead() funkció:

int state = digitalRead(pinNumber);
  • state: Lesz az is HIGH vagy LOW a bemeneti jel alapján.

Példa: Egy gombnyomás olvasása

Csatlakoztasson egy nyomógombot a 2. érintkezőhöz egy legördülő ellenállással (10k-ohm). Amikor megnyomják, a gomb elküldi a HIGH jel.

#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
  }
}

4. lépés: Használat if Nyilatkozatok digitális csapokkal

if Az állítások lehetővé teszik a feltételes logika létrehozását a programban. Kombinálja a digitális leolvasásokat és írást, hogy a bemenetek alapján műveleteket hajtson végre.

Példa: Váltás egy LED -es gombra nyomja meg a gombot

Ez a vázlat a LED -állapotot minden egyes gomb megnyomásakor váltja:

#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
}

5. lépés: Fejlett használat logikai műveletekkel

Használhatja a többszöröset if nyilatkozatok, else ifés logikai operátorok (&&, ||stb.), hogy összetettebb viselkedéseket hozzon létre.

Példa: Multi-bemeneti vezérlés

A LED ellenőrzése két gomb állapota alapján:

#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
  }
}

Hibaelhárítás

  • A LED nem világít:

    • Győződjön meg arról, hogy a LED helyesen van csatlakoztatva (hosszú láb a pozitív PIN -hez).
    • Használjon 220 ohmos ellenállást a sérülések elkerülése érdekében.
  • A gomb nem válaszol:

    • Ellenőrizze, hogy nincs-e megfelelő vezeték a lefelé vagy a húzó ellenállással.
    • Ellenőrizze, hogy a pinMode beállítva van -e INPUT vagy INPUT_PULLUP.
  • Kezelési kérdések:

    • Használjon egy kis késleltetést, vagy hajtson végre egy szoftver elszámolási mechanizmust a mechanikus gombok jelzajának kezelésére.

Következtetés

Megtanulta, hogyan kell elvégezni a digitális olvasási és írási műveleteket az Arduino UNO -val, konfigurálhatja a PIN -módokat, és használhatja if A feltételes logika nyilatkozata. Ezek az alapvető készségek lehetővé teszik a hardverkomponensek széles skálájának ellenőrzését és interaktív, érzékeny projektek létrehozását. Kísérletezzen tovább több bemenet és output kombinálásával a bonyolultabb viselkedés érdekében!

Notice an Issue? Have a Suggestion?
If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.

Hagyj egy megjegyzést