Digital basahin at isulat gamit ang Arduino Uno

Digital Read and Write Using the Arduino Uno

Ang Arduino Uno ay nagbibigay ng kakayahang makipag -ugnay sa totoong mundo gamit ang mga digital na pin. Maaari mong gamitin ang mga pin na ito upang makontrol ang mga aparato tulad ng mga LED, motor, at relay, o basahin ang mga input mula sa mga sensor, pindutan, at switch. Ipapaliwanag ng tutorial na ito kung paano mag -set up ng mga digital na pin, magsagawa ng basahin at isulat ang mga operasyon, at magamit if Mga pahayag para sa mga desisyon na batay sa lohika sa iyong mga proyekto.


Ano ang kakailanganin mo

  1. Arduino uno na may USB cable
  2. LED at isang 220-ohm risistor (para sa mga halimbawa ng output)
  3. Pindutan ng push at isang 10k-ohm risistor (para sa mga halimbawa ng input)
  4. Mga wire ng tinapay at jumper
  5. Isang computer na may naka -install na Arduino IDE

Hakbang 1: Pag -set up ng mga digital na pin

Mga mode ng digital pin

Ang Arduino Uno ay may 14 digital pin (D0-D13). Ang mga pin na ito ay maaaring mai -configure bilang:

  • Input: Upang mabasa ang mga signal mula sa mga sensor o switch.
  • Output: Upang makontrol ang mga LED, motor, o iba pang mga actuators.

Gamitin ang pinMode() function upang itakda ang mode ng isang pin sa setup() Function:

pinMode(pinNumber, mode);
  • pinNumber: Ang pin na nais mong i -configure (hal., 2, 3, atbp.).
  • mode: Alinman INPUT, INPUT_PULLUP, o OUTPUT.

Hakbang 2: Pagsulat sa isang Digital Pin

Maaari mong kontrolin ang mga aparato sa pamamagitan ng pagsulat HIGH o LOW sa isang output pin gamit ang digitalWrite() Function:

digitalWrite(pinNumber, value);
  • value: Alinman HIGH (5v) o LOW (0v).

Halimbawa: kumikislap ng isang LED

Narito kung paano kumurap ng isang LED na konektado sa pin 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
}

Hakbang 3: Pagbasa mula sa isang digital pin

Upang mabasa ang estado ng isang pin, gamitin ang digitalRead() Function:

int state = digitalRead(pinNumber);
  • state: Ay magiging alinman HIGH o LOW batay sa signal ng pag -input.

Halimbawa: Pagbasa ng isang pindutan ng pindutan

Ikonekta ang isang pindutan ng push upang i-pin 2 gamit ang isang pull-down risistor (10k-ohm). Kapag pinindot, ang pindutan ay magpapadala ng isang 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
  }
}

Hakbang 4: Paggamit if Mga pahayag na may mga digital na pin

if Pinapayagan ka ng mga pahayag na lumikha ng kondisyong lohika sa iyong programa. Pagsamahin ang mga digital na nagbabasa at nagsusulat upang magsagawa ng mga aksyon batay sa mga input.

Halimbawa: I -toggle ang isang LED sa pindutan ng pindutan

Ang sketch na ito ay toggles ang estado ng LED sa bawat oras na ang pindutan ay pinindot:

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

Hakbang 5: Advanced na paggamit sa mga operasyon ng lohika

Maaari kang gumamit ng maramihang if mga pahayag, else if, at mga lohikal na operator (&&, ||, atbp.) Upang lumikha ng mas kumplikadong pag -uugali.

Halimbawa: Multi-input control

Kontrolin ang isang LED batay sa mga estado ng dalawang pindutan:

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

Pag -aayos

  • Ang LED ay hindi magaan:

    • Tiyakin na ang LED ay konektado nang tama (mahabang binti sa positibong pin).
    • Gumamit ng isang 220-OHM risistor upang maiwasan ang pinsala.
  • Hindi tumugon ang pindutan:

    • Suriin para sa tamang mga kable na may isang pull-down o pull-up risistor.
    • Patunayan ang pinmode ay nakatakda sa INPUT o INPUT_PULLUP.
  • Mga isyu sa debounce:

    • Gumamit ng isang maliit na pagkaantala o ipatupad ang isang mekanismo ng debounce ng software upang mahawakan ang ingay ng signal mula sa mga mekanikal na pindutan.

Konklusyon

Nalaman mo kung paano magsagawa ng digital na basahin at isulat ang mga operasyon kasama ang Arduino Uno, i -configure ang mga mode ng pin, at gamitin if Mga pahayag para sa kondisyon na lohika. Ang mga pangunahing kasanayan ay nagbibigay -daan sa iyo upang makontrol ang isang iba't ibang mga sangkap ng hardware at lumikha ng mga interactive, tumutugon na mga proyekto. Eksperimento karagdagang sa pamamagitan ng pagsasama ng maraming mga input at output para sa mas kumplikadong pag -uugali!

Mag -iwan ng komento

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.