Digital baca dan tulis menggunakan Arduino uno

Digital Read and Write Using the Arduino Uno

Arduino UNO menyediakan kemampuan untuk berinteraksi dengan dunia nyata menggunakan pin digitalnya. Anda dapat menggunakan pin ini untuk mengontrol perangkat seperti LED, motor, dan relay, atau membaca input dari sensor, tombol, dan sakelar. Tutorial ini akan menjelaskan cara mengatur pin digital, melakukan operasi baca dan tulis, dan memanfaatkan if Pernyataan untuk keputusan berbasis logika dalam proyek Anda.


Apa yang Anda Butuhkan

  1. Arduino Uno dengan kabel USB
  2. LED dan resistor 220-OHM (untuk contoh output)
  3. Tombol tekan dan resistor 10k-ohm (untuk contoh input)
  4. Papan tempat memotong papan dan kabel jumper
  5. Komputer dengan IDE Arduino diinstal

Langkah 1: Menyiapkan pin digital

Mode pin digital

Arduino Uno memiliki 14 pin digital (D0-D13). Pin ini dapat dikonfigurasi sebagai:

  • Input: Untuk membaca sinyal dari sensor atau sakelar.
  • Keluaran: Untuk mengontrol LED, motor, atau aktuator lainnya.

Gunakan pinMode() fungsi untuk mengatur mode pin di setup() fungsi:

pinMode(pinNumber, mode);
  • pinNumber: PIN yang ingin Anda konfigurasi (mis., 2, 3, dll.).
  • mode: Salah satu INPUT, INPUT_PULLUP, atau OUTPUT.

Langkah 2: Menulis ke pin digital

Anda dapat mengontrol perangkat dengan menulis HIGH atau LOW ke pin output menggunakan digitalWrite() fungsi:

digitalWrite(pinNumber, value);
  • value: Salah satu HIGH (5v) atau LOW (0V).

Contoh: Mengedipkan LED

Inilah cara berkedip LED yang terhubung ke 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
}

Langkah 3: Membaca dari pin digital

Untuk membaca keadaan pin, gunakan digitalRead() fungsi:

int state = digitalRead(pinNumber);
  • state: Akan menjadi baik HIGH atau LOW berdasarkan sinyal input.

Contoh: Membaca tombol Tekan

Hubungkan tombol tekan ke pin 2 dengan resistor pull-down (10k-ohm). Saat ditekan, tombol akan mengirim file HIGH sinyal.

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

Langkah 4: Menggunakan if Pernyataan dengan pin digital

if Pernyataan memungkinkan Anda untuk membuat logika bersyarat di program Anda. Gabungkan bacaan digital dan ditulis untuk melakukan tindakan berdasarkan input.

Contoh: Toggle tombol LED ON

Sketsa ini mengubah keadaan LED setiap kali tombol ditekan:

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

Langkah 5: Penggunaan Lanjutan dengan Operasi Logika

Anda dapat menggunakan beberapa if pernyataan else if, dan operator logis (&&, ||, dll.) Untuk menciptakan perilaku yang lebih kompleks.

Contoh: Kontrol multi-input

Kontrol LED berdasarkan keadaan dua tombol:

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

Pemecahan masalah

  • LED tidak menyala:

    • Pastikan LED terhubung dengan benar (kaki panjang ke pin positif).
    • Gunakan resistor 220 ohm untuk menghindari kerusakan.
  • Tombol tidak menanggapi:

    • Periksa kabel yang tepat dengan resistor pull-down atau pull-up.
    • Verifikasi PinMode diatur ke INPUT atau INPUT_PULLUP.
  • Debounce Masalah:

    • Gunakan penundaan kecil atau terapkan mekanisme debounce perangkat lunak untuk menangani kebisingan sinyal dari tombol mekanis.

Kesimpulan

Anda telah belajar cara melakukan operasi baca dan tulis digital dengan Arduino uno, mengkonfigurasi mode pin, dan menggunakan if Pernyataan untuk logika bersyarat. Keterampilan mendasar ini memungkinkan Anda untuk mengendalikan berbagai komponen perangkat keras dan membuat proyek interaktif dan responsif. Eksperimen lebih lanjut dengan menggabungkan beberapa input dan output untuk perilaku yang lebih kompleks!

Tinggalkan komentar

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.