Translate

Membuat Alat Kontrol Angle Servo Menggunakan PID Control ARDUINO

Membuat Alat Kontrol Angle Servo Menggunakan PID Control ARDUINO


         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