*/
#include <PID_v1.h>
double constante=6; /* Constante que converge o sinal do LM35
para um sinal de 0-1023 níveis para a entrada Input*/
// Declarações das variáveis do PID
double Setpoint, Input, Output;
//Parâmetros PID (kp , ki, kd)
PID myPID(&Input, &Output, &Setpoint, 1.0, 0.25, 0.025, REVERSE);
void setup()
{
Serial.begin(9600); // Inicia Comunicação Serial
pinMode(3,OUTPUT); // Saída 3 PWM - off
pinMode(9,OUTPUT); // Saída 9 PWM - em uso
pinMode(0,INPUT); // Entrada Analógica LM35
pinMode(1,INPUT); // Entrada Analógica Setpoint Potenciômetro
pinMode(7,INPUT); // Entrada digital - off
pinMode(8,INPUT); // Entrada digital - on
myPID.SetMode(AUTOMATIC); //
}
void loop()
{
analogWrite(9,0);
analogWrite(3,0);
while (digitalRead(8)==1) // Sentido 1
{
Input= map(analogRead(0)*constante,0,1023,0,255);
if (Input>=999){
Input=999;
}
Setpoint = map(analogRead(1),0,1023,0,255);
if (Setpoint>=999){
Setpoint=999;
}
myPID.Compute(); // Calcula Saída do PID
analogWrite(9,Output); // Escreve canal 9 PWM
analogWrite(3,0);
// Impressão na tela
Serial.print("a"); // envia string do tipo a(valor)
Serial.print(int(Input));
Serial.print("f"); // envia string do tipo f(valor)
Serial.print(int(Setpoint));
Serial.print("o"); // envia string do tipo o(valor)
Serial.print(int(Output));
}
while (digitalRead(7)==1) // Sentido 2
{
Input= map(analogRead(0)*constante,0,1023,0,255);
if (Input>=999){
Input=999;
E como eu faço para configurar o ventilador no scadabr já que o ON está em uma porta e o OFF em outra porta do arduíno?