#include <Servo.h>
Servo myServo; // Membuat objek servo
int position = 0; // Variabel untuk posisi servo
const int buzzerPin = 8; // Pin untuk buzzer
const int ledPin = 13; // Pin untuk LED
void setup() {
Serial.begin(9600); // Memulai komunikasi serial dengan baud rate 9600
myServo.attach(9); // Menghubungkan servo ke pin 9 Arduino
pinMode(buzzerPin, OUTPUT); // Menetapkan pin buzzer sebagai OUTPUT
pinMode(ledPin, OUTPUT); // Menetapkan pin LED sebagai OUTPUT
// LED menggunakan resistor internal pull-up
digitalWrite(ledPin, LOW); // Pastikan LED dimulai dalam keadaan mati
myServo.write(0); // Menetapkan posisi awal servo ke 0 derajat
Serial.println("Ready to receive data to control the servo.");
}
void loop() {
if (Serial.available() > 0) {
position = Serial.parseInt(); // Membaca angka yang diterima melalui UART
// Pastikan posisi yang diterima berada dalam rentang yang valid (0-180)
if (position >= 0 && position <= 180) {
myServo.write(position); // Mengatur posisi servo
// Mengaktifkan buzzer (memberikan suara)
tone(buzzerPin, 1000); // Menghasilkan suara dengan frekuensi 1000 Hz
delay(200); // Memberikan waktu untuk suara
noTone(buzzerPin); // Matikan suara setelah beberapa detik
// Menyalakan LED
digitalWrite(ledPin, HIGH); // Menyalakan LED
delay(200); // LED tetap menyala selama 200 milidetik
digitalWrite(ledPin, LOW); // Mematikan LED
Serial.print("Servo moved to: ");
Serial.println(position);
} else {
Serial.println("Invalid position. Must be between 0 and 180.");
}
}
}