#include <Servo.h>
const int analogPin = A0; // Pin analog untuk membaca input dari PLC
const int servoPin = 6; // Pin PWM untuk mengendalikan servo
Servo myServo;
void setup() {
Serial.begin(9600); // Mulai komunikasi serial
myServo.attach(servoPin); // Menghubungkan servo dengan pin yang ditentukan
}
void loop() {
int sensorValue = analogRead(analogPin); // Membaca nilai analog dari pin analog
float voltage = sensorValue * (5.0 / 1023.0); // Mengkonversi nilai analog menjadi tegangan
// Konversi tegangan menjadi nilai skala 0-180 untuk servo
int angle = map(voltage, 0, 5, 0, 180);
// Batasan sudut servo
if (angle < 0) {
angle = 0;
} else if (angle > 180) {
angle = 180;
}
// Menggerakkan servo sesuai sudut yang dihitung
myServo.write(angle);
// Menampilkan nilai analog dan sudut servo ke Serial Monitor
Serial.print("Analog Value: ");
Serial.print(sensorValue);
Serial.print(", Voltage: ");
Serial.print(voltage);
Serial.print("V, Servo Angle: ");
Serial.println(angle);
delay(100); // Delay untuk stabilitas
}