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.
#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
-
AmazonServo motor on Amazonamzn.to
-
AliExpressPurchase SG90 Servo motor 180 or 360 from AliExpresss.click.aliexpress.com
Sumber daya & referensi
Belum ada sumber daya.
Berkas📁
Tidak ada file tersedia.