Sunteți pe pagina 1din 2

Cdigo

//Asignacin de pines y declaracin de variables int sensorPin = A0; //Pin para lectura analgica int Pin2 = 9; //Pin para PWM 1 int Pin1 = 10; //Pin para PWM 2 float e=0; //error float e0=0; //error pasad0 float pd=0; //variable de control float d=0; //Diferencia entre error y error pasado float val=0; //Valor analgico ledo 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); e=val-455; referencia d=e-e0; e0=e; //lee entrada del sensor //error= valor ledo menos //diferenciacin discreta //error pasado

//control pd= (43*e) + (25*d); // constantes multiplicando a e y a d pd = constrain(pd, -255, 255); //Limitar pd //Condiciones de posicin 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 } }

S-ar putea să vă placă și