Dando continuidade ao artigo anterior, vamos mostrar como utilizar o controlador PID no Arduino.
Neste artigo vamos mostrar como utilizar a biblioteca PID para Arduino. Esta biblioteca necessita apenas das constantes Kp, Ki, Kd e o sentido (se é a saída tem o mesmo sinal, positivo ou negativo, que a entrada).
Na biblioteca PID existem alguns exemplos disponíveis. Vamos ver o exemplo PID_basic:
/********************************************************
* PID Basic Example
* Reading analog input 0 to control analog PWM output 3
********************************************************/
#include <PID_v1.h>
//Define Variables we'll be connecting to
double Setpoint, Input, Output;
//Specify the links and initial tuning parameters
PID myPID(&Input, &Output, &Setpoint,2,5,1, DIRECT);
void setup()
{
//initialize the variables we're linked to
Input = analogRead(0);
Setpoint = 100;
//turn the PID on
myPID.SetMode(AUTOMATIC);
}
void loop()
{
Input = analogRead(0);
myPID.Compute();
analogWrite(3,Output);
}
Primeiramente, precisamos declarar as variáveis iniciais: Setpoint, Input e Output. São essas variáveis que mudarão ao longo do tempo. Depois precisamos declarar uma instância PID. Neste exemplo está declarado como "myPID". Nesta instância precisamos colocar os parâmetros: Input, Output, Setpoint, as constantes Kp, Ki e Kd e o sentido do PID (positivo ou negativo).
Agora, vamos configurar o PID para operar em modo automático com a função "SetMode". Caso queira configurá-lo como manual, é necessário chamar a função Initialize() depois. Existe a função "SetTuning()", o qual você pode configurar o PID com variáveis diferentes. A função "Compute()" executa o cálculo do PID e o resultado Output irá para o PWM da porta digital 3.
Referências:
http://en.wikipedia.org/wiki/PID_controller
http://arduino.cc/playground/Code/PIDLibrary
http://brettbeauregard.com/blog/2011/04/improving-the-beginners-pid...
Comentar
Pessoal baixei a biblioteca PID e o aplicativo parou de funcionar (o programa não funciona somente os driver),quando clico para abrir o programa não abre mais.
Se alguém poder me ajudar ficarei muito grato.
E ai galera, olha estou com o mesmo problema do Robson Alves. Ja renomeei aquela pasta para PID_v1 que deveria ser, porem a IDE não reconhece.
Alguem sabe o motivo???
Meus amigos, preciso de uma ajudinha bem básica, eu acho.
Preciso fazer um controle de corrente e não estou conseguindo achar um controle ótimo para tal.
Essa corrente, que varia de 0 a 20A na rede, no arduino varia de 0 a 5V, porem, ela distorce muito, por exemplo, quando coloco 3A no instrumento, por exemplo, ele está dando quase 6A. a formula que estou utilizando é 5*sinalentrada/1023. Alguem tem alguma sugestão de como devo fazer para não distorcer resultado?
Nao consigo fazer o upload do programa para o arduino, ele diz que a não é um tipo de nome "PID does not a name type" . Tem alguma ideia do porque.
Eu tive um problema na hora de add a biblioteca porque o programa não aceita o nome com traços separando-os como vem no zip. tive que tirar os traços, talvez dai o problema.
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por
Você precisa ser um membro de Laboratorio de Garagem (arduino, eletrônica, robotica, hacking) para adicionar comentários!
Entrar em Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)