Arduino
Librería PID con Arduino
Publicado por Andoni Diaz Puerta en Arduino el 19/04/2011 (09:26)
Etiquetas: pid, arduino, lib, library, libreria, ide
. 11 comentarios
Como ya sabrán la mayoría de los que leen este blog a diario, el algoritmo PID (o
Proporcional Integral Derivativo), es un elemento bastante usado en sistemas autómatas (de
una manera u otra), en los cuales este algoritmo cobra bastante importancia en las funciones
de re-alimentación, además de provocar que la curva de respuesta sea mucho mas suave
que si usamos un sistema alternativo.
La idea es haceros un poco de resumen sobre el panorama de librerías ya diseñadas que nos
permitan crear un control PID sencillo (relativamente), sin tener que programarlo desde 0.
Arduino no se queda atrás!
El PID tiene una fórmula, ecuación, expresión, que nos permite calcular los parámetros de
salida, a partir de unos dados, básicamente es esta:
Y ahora, vayámonos con la lib de arduino!
ARDUINO PID LIBRARY
Cita de wikipedia
"Un PID (Proporcional Integral Derivativo) es un mecanismo de control
por realimentación que calcula la desviación o error entre un valor medido y el
valor que se quiere obtener, para aplicar una acción correctora que ajuste el
proceso."
Funciones
PID()
Compute()
SetMode()
SetOutputLimits()
SetTunings()
SetSampleTime()
SetControllerDirection()
Ejemplo básico:
view plaincopy to clipboardprint?
1. /********************************************************
2. * PID Basic Example
3. * Reading analog input 0 to control analog PWM output 3
4. ********************************************************/
5.
6. #include
7.
8. //Define Variables we'll be connecting to
9. double Setpoint, Input, Output;
10.
11. //Specify the links and initial tuning parameters
12. PID myPID(&Input, &Output, &Setpoint,2,5,1, DIRECT);
13.
14. void setup()
15. {
16. //initialize the variables we're linked to
17. Input = analogRead(0);
18. Setpoint = 100;
19.
20. //turn the PID on
21. [Link](AUTOMATIC);
22. }
23.
24. void loop()
25. {
26. Input = analogRead(0);
27. [Link]();
28. analogWrite(3,Output);
29. }
Enlaces
Descarga la última versión
Página de ejemplos
Página oficial en background de Arduino (Con 2 ejemplos mas!)
Explicacíon de la librería y el PID por el autor de dicha libreria