PID İLE TOPU DENGEDE TUTMA MEKANİZMASI PROJESİ
KULLANILAN MALZEMELER:
1- ARDUİNO MEGA
2- HRC SENSOR
3- MİCROSERVO MOTOR
4- DENGE DÜZENEĞİ
5- BREADBOARD
6- GEREKTİĞİ KADAR KABLO
KULLANILAN KODLAR:
const int servoPin = 9; //Servo Pin Adresi
float Ki = 0; //İntegral Kazanç Başlat
float Kd = 1.1; //Türev Kazanç Başlat
PID myPID(&Input, &Output, &Setpoint, Kp, Ki, Kd, DIRECT); //PID nesnesini başlat
float readPosition() {
delay(40); //Okuma Gecikmesi (çok küçük ayarlamayın)
myPID.SetMode(AUTOMATIC); //PID yi MyPID olarak ayarla
myPID.SetOutputLimits(-80,80); //Çıkış limitlerini -80 ve 80 olarak ayarla
Setpoint = 15;
Input = readPosition();
myPID.Compute(); //Çıktıyı -80 ve 80 arasında hesaplar
ServoOutput=102+Output; //102 derece benim yatemim
myServo.write(ServoOutput); //Çıkış değerini Servo ya yazar.
Kontrol Döngüsü |
Bağlantı Şeması |
Hiç yorum yok:
Yorum Gönder