Digitaalinen lukeminen ja kirjoita Arduino UNO: lla

Digital Read and Write Using the Arduino Uno

Arduino UNO tarjoaa kyvyn olla vuorovaikutuksessa todellisen maailman kanssa sen digitaalisten nastajen avulla. Voit käyttää näitä nastat hallitsemaan laitteita, kuten LED -laitteita, moottoreita ja releitä, tai lukemaan tuloja antureista, painikkeista ja kytkimistä. Tämä opetusohjelma selittää, kuinka digitaaliset nastat asetetaan, suorittaa luku- ja kirjoitustoimenpiteitä ja hyödyntää if Lausunnot logiikkapohjaisista päätöksistä projektissasi.


Mitä tarvitset

  1. Arduino Uno USB -kaapelilla
  2. LED ja 220 OHM -vastus (lähtöesimerkkejä varten)
  3. Paina painiketta ja 10 k-OHM-vastus (tuloesimerkkejä varten)
  4. Leipälevy- ja hyppyjohdot
  5. Tietokone, jossa Arduino IDE on asennettu

Vaihe 1: Digitaalisten tappien asettaminen

Digitaalitappitilat

Arduino UNO: lla on 14 digitaalista nasta (D0-D13). Nämä nastat voidaan määrittää seuraavasti:

  • Tulo: Signaalien lukeminen antureista tai kytkimistä.
  • Lähtö: LEDien, moottorien tai muiden toimilaitteiden hallitsemiseksi.

Käyttää pinMode() toiminto asettaa nastatapa setup() Toiminto:

pinMode(pinNumber, mode);
  • pinNumber: Tappi, jonka haluat määrittää (esim. 2, 3 jne.).
  • mode: Kumpaakin INPUT, INPUT_PULLUPtai OUTPUT.

Vaihe 2: Kirjoittaminen digitaaliseen nastaan

Voit hallita laitteita kirjoittamalla HIGH tai LOW Lähtötappi digitalWrite() Toiminto:

digitalWrite(pinNumber, value);
  • value: Kumpaakin HIGH (5v) tai LOW (0 V).

Esimerkki: LEDin vilkkuminen

Näin vilkkuu LED, joka on kytketty nastaan ​​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
}

Vaihe 3: Lukeminen digitaalisesta nastasta

Lue PIN -koodin tila käyttämällä digitalRead() Toiminto:

int state = digitalRead(pinNumber);
  • state: Tulee olemaan joko HIGH tai LOW Tulosignaalin perusteella.

Esimerkki: Painikkeen lukeminen Paina

Kytke painatus painikkeeksi nastaan ​​2 vetävällä vastuksella (10k-OHM). Kun painike painetaan, painike lähettää a HIGH signaali.

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

Vaihe 4: Käyttäminen if Lausunnot digitaalisilla nastailla

if Lausuntot antavat sinun luoda ehdollisen logiikan ohjelmaan. Yhdistä digitaalinen lukee ja kirjoittaa suorittamaan toimintoja tulojen perusteella.

Esimerkki: Vaihda LED -painike Paina

Tämä luonnos vaihtaa LED -tilan joka kerta, kun painiketta painetaan:

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

Vaihe 5: Lisäkäyttö logiikkaoperaatioilla

Voit käyttää useita if lausunnot, else ifja loogiset operaattorit (&&, ||jne.) Monimutkaisemman käyttäytymisen luominen.

Esimerkki: Multi-INPut-ohjaus

Hallitse LEDiä kahden painikkeen tilojen perusteella:

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

Vianetsintä

  • LED ei syty:

    • Varmista, että LED on kytketty oikein (pitkä jalka positiiviseen nastaan).
    • Käytä 220-OHM-vastusta vaurioiden välttämiseksi.
  • Painike ei vastaa:

    • Tarkista oikea johdotus vetävällä tai vetovastuksella.
    • Varmista, että PinMode on asetettu INPUT tai INPUT_PULLUP.
  • Debount -kysymykset:

    • Käytä pientä viivettä tai toteuta ohjelmisto -disanssimekanismia, jotta voit käsitellä mekaanisten painikkeiden signaalin kohinaa.

Johtopäätös

Olet oppinut suorittamaan digitaalisia luku- ja kirjoitustoimintoja Arduino UNO: lla, määrittää PIN -tilat ja käyttää if Lausunnot ehdollisen logiikan suhteen. Näiden perustaidon avulla voit hallita monenlaisia ​​laitteistokomponentteja ja luoda interaktiivisia, reagoivia projekteja. Kokeile edelleen yhdistämällä useita tuloja ja lähtöjä monimutkaisempaan käyttäytymiseen!

Jätä kommentti

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.