Download - Diagrama eléctrico y código para contol PD, Péndulo invertido

Transcript
Page 1: Diagrama eléctrico y código  para contol PD, Péndulo invertido

Código

//Asignación de pines y declaración de variables

int sensorPin = A0; //Pin para lectura analógicaint Pin2 = 9; //Pin para PWM 1

int Pin1 = 10; //Pin para PWM 2float e=0; //errorfloat e0=0; //error pasad0float pd=0; //variable de controlfloat d=0; //Diferencia entre error y error pasadofloat val=0; //Valor analógico leído

void setup() {  // declare the ledPin as an OUTPUT:  pinMode(Pin1, OUTPUT); //PIN1 salida PWM  pinMode(Pin2, OUTPUT); //PIN2 salida PWM}void loop() {   val = analogRead(sensorPin); //lee entrada del sensor  e=val-455;                   //error= valor leído menos referencia  d=e-e0;                      //diferenciación discreta  e0=e;                        //error pasado    //control  pd= (43*e) + (25*d); // constantes multiplicando a e y a d   pd = constrain(pd, -255, 255); //Limitar pd    //Condiciones de posición    if (pd>0)  {     analogWrite(Pin1, pd);//activar pin1      analogWrite(Pin2, 0); //desactivar pin2   }  if (pd<0)  {    analogWrite(Pin2, abs(pd));//activar pin2     analogWrite(Pin1, 0); //Descativar pin1   }      }

Page 2: Diagrama eléctrico y código  para contol PD, Péndulo invertido