Search Code

Proyek Arduino Mudah: Mengontrol Servo dengan Tombol Tekan 180 derajat ke 0 dan kembali

Proyek Arduino Mudah: Mengontrol Servo dengan Tombol Tekan 180 derajat ke 0 dan kembali

Pendahuluan

Artikel ini menjelaskan proyek Arduino sederhana yang menggunakan tombol tekan untuk mengendalikan motor servo. Motor servo adalah motor presisi yang dapat berputar ke posisi tertentu, sehingga ideal untuk aplikasi seperti robotika dan otomasi. Proyek ini akan membuat servo bergerak dari 0 hingga 180 derajat saat tombol ditekan dan kembali ke 0 saat dilepaskan.

Komponen Proyek dan Pengkabelan

Anda akan memerlukan papan Arduino, motor servo, dan tombol tekan.

Instruksi Pengkabelan:

  • Motor Servo: Hubungkan kabel sinyal (biasanya kuning/oranye) ke pin 3 Arduino, kabel daya (merah) ke 5V, dan kabel ground (hitam/coklat) ke GND.
  • Tombol Tekan: Hubungkan satu kaki ke pin digital 2 dan kaki lainnya ke pin GND. Itu saja! Dengan menggunakan resistor pull-up internal Arduino, Anda tidak memerlukan resistor eksternal.

 

Penjelasan Kode

Program ini dipecah menjadi tiga bagian utama: definisi pin, fungsi setup(), dan fungsi loop().

Definisi Pin

Bagian ini menyiapkan pustaka yang diperlukan dan memberikan nama yang bermakna pada pin yang Anda gunakan.

#include <Servo.h>

const int servoPin = 3;
const int buttonPin = 2;

Servo myServo;

Fungsi setup()

Fungsi setup() berisi kode yang hanya berjalan sekali saat papan Arduino dinyalakan atau di-reset. Fungsi ini digunakan untuk konfigurasi awal.

void setup() {
  myServo.attach(servoPin);
  pinMode(buttonPin, INPUT_PULLUP);
  myServo.write(0);
}

Perubahan penting adalah pinMode(buttonPin, INPUT_PULLUP);. Ini mengaktifkan resistor internal yang menarik tegangan pin ke HIGH. Saat Anda menekan tombol, tombol menghubungkan pin ke ground, dan tegangan turun menjadi LOW.

Fungsi loop()

Fungsi loop() berisi logika program utama dan berjalan berulang kali selamanya setelah fungsi setup() selesai.

void loop() {
  int buttonState = digitalRead(buttonPin);

  if (buttonState == LOW) {
    myServo.write(180);
  } else {
    myServo.write(0);
  }
}

Logika di sini sekarang dibalik. Karena penekanan tombol menghasilkan sinyal LOW, kondisi if (buttonState == LOW) digunakan untuk menggerakkan servo ke 180 derajat.

Gambar

Arduino wiring for Servo motor with a push button
Arduino wiring for Servo motor with a push button
795-Ardunino code to control servo motor using a push button to move between 180 and zero degree
Bahasa: C++
#include <Servo.h>
/*
This is sketch for controlling servo motor. when push button is pressed, the servo moves to 180 degreees and stays there. when the push button is released, the servo motor returns back to 0 degree.
*/
// Define the pin for the servo motor
const int servoPin = 3;
// Define the pin for the push button
const int buttonPin = 2;

// Create a Servo object
Servo myServo;

void setup() {
  // Attach the Servo object to the servo pin
  myServo.attach(servoPin);
  // Set the button pin as an input
  pinMode(buttonPin, INPUT);
  // Start the servo at 0 degrees
  myServo.write(0);
}

void loop() {
  // Read the state of the push button
  int buttonState = digitalRead(buttonPin);

  // If the button is pressed (HIGH)
  if (buttonState == HIGH) {
    // Move the servo to 180 degrees
    myServo.write(180);
  } else {
    // If the button is released (LOW), move the servo back to 0 degrees
    myServo.write(0);
  }
}

Hal-hal yang mungkin Anda butuhkan

Sumber daya & referensi

Belum ada sumber daya.

Berkas📁

Tidak ada file tersedia.