Pada kesempatan kali ini saya akan menjelaskan mengenai bagaimana cara membuat sebuah alat untuk kendali angle servo dengan menggunakan PID Control sebagai penentu arah sudutnya. aplikasi dari alat ini bisa untuk buka tutup tempat sampah otomatis atau buka tutup pintu otomatis, prinsip kerjanya yaitu menggunakan sensor jarak SRF04 dan aktuatornya berupa servo, semakin dekat jaraknya maka servo akan semakin membuka / menutup atau menuju ke sudut tertentu yang telah diprogram menggunakan PID. untuk lebih jelasnnya berikut adalah skema dan programnya.
a. Arduino UNO
b. Sensor Jarak SRF04
c. Motor Servo
d. Program Arduino IDE
#include <Servo.h>
#define trigPin 10
#define echoPin 11
Servo myservo;
int sp = 90;
float kp = 1.18;
float ki = 0.67;
float kd = 0.15;
float p,i,d,suhu,pid,pidx;
float error,errorx,sumerr;
long duration, distance;
void setup() {
myservo.attach(9);
Serial.begin (9600);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
}
void loop() {
error = sp - distance;
p = error * kp;
sumerr = error + errorx;
i = ki * sumerr;
d = error - errorx;
pid = p + i + d;
pid = 250.0 - pid;
pidx = sp - pid;
myservo.write(pidx);
if(pidx < 1){
pidx = 0;
}
if(pidx > 250){
pidx = 250;
}
digitalWrite(trigPin, LOW); // Added this line
delayMicroseconds(2); // Added this line
digitalWrite(trigPin, HIGH);
delayMicroseconds(10); // Added this line
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = (duration/2) / 29.1;
Serial.print(distance);
Serial.println(" cm");
Serial.print("PID= ");
Serial.println(pidx);
delay(200);
errorx = error;
}
e. VIDEO HASILNYA
No comments:
Post a Comment