#include <Servo.h> // Library Servo
#define SERVO_PIN PA8 // Pin PWM untuk servo
#define RELAY_PIN PA1 // Pin untuk kontrol relay
Servo myServo; // Membuat objek servo
void setup() {
Serial.begin(115200);
Serial.println("Hello STM32!");
Serial.println("Welcome to Wokwi :-)");
// Inisialisasi pin untuk relay
pinMode(RELAY_PIN, OUTPUT);
digitalWrite(RELAY_PIN, LOW); // Pastikan relay dimatikan di awal
myServo.attach(SERVO_PIN); // Hubungkan servo ke pin PA8
myServo.write(0); // Atur posisi awal servo ke 0 derajat
}
void loop() {
// Gerakkan servo dari 0° ke 180° secara bertahap
for (int angle = 0; angle <= 180; angle++) {
myServo.write(angle); // Atur sudut servo
delay(15); // Tunggu agar servo stabil
// Menyalakan relay saat servo mencapai posisi 90°
if (angle == 90) {
digitalWrite(RELAY_PIN, HIGH); // Nyalakan relay
Serial.println("Relay ON");
}
}
// Jeda sebelum arah balik
delay(1000);
// Gerakkan servo dari 180° ke 0° secara bertahap
for (int angle = 180; angle >= 0; angle--) {
myServo.write(angle); // Atur sudut servo
delay(15); // Tunggu agar servo stabil
// Mematikan relay saat servo kembali ke posisi 90°
if (angle == 90) {
digitalWrite(RELAY_PIN, LOW); // Matikan relay
Serial.println("Relay OFF");
}
}
// Jeda sebelum mengulang
delay(1000);
}