Bom dia! Estou desenvolvendo um controle de temperatura, utilizando controlador P mas não está rodando mais e não consigo encontrar o problema. Se alguém puder por favor ajudar aí!!
Componentes:
- Termopar
- Nanoshield Triac
- Nanoshield Zero Cross
- Nanoshield Interface
- Base Board
- Lâmpada
Código
#include <max6675.h> //INCLUSÃO DE BIBLIOTECA
#include <Dimmer.h>
// Configura a lampa no Triac: pino D3
Dimmer lamp(3);
int ktcSO = 5; //PINO DIGITAL (SO)
int ktcCS = 6; //PINO DIGITAL (CS)
int ktcCLK = 7; //PINO DIGITAL (CLK / SCK)
MAX6675 ktc(ktcCLK, ktcCS, ktcSO); //CRIA UMA INSTÂNCIA UTILIZANDO OS PINOS (CLK, CS, SO)
// CONTROLE PROPORCIONAL
double setPoint = 40;
double erro0 = 0;
double kc = 1;
double p = 0;
void setup(){
Serial.begin(9600); //INICIALIZA A SERIAL
delay(500); //INTERVALO DE 500 MILISSEGUNDOS
// Inicializa a lâmpada dimerizada
lamp.begin();
}
void loop(){
Serial.print("Temperatura: "); //IMPRIME O TEXTO NO MONITOR SERIAL
Serial.print(ktc.readCelsius()); //IMPRIME NO MONITOR SERIAL A TEMPERATURA MEDIDA
Serial.println("*C"); //IMPRIME O TEXTO NO MONITOR SERIAL
delay(2000); //INTERVALO DE 1000 MILISSEGUNDOS
// IMPLEMENTAÇÃO P
erro0 = setPoint - (ktc.readCelsius());
p = abs (erro0)*kc;
//SAÍDA DO CONTROLE '
digitalWrite (3,p);
Serial.print("ERRO = ");
Serial.println(erro0, DEC);
}
Tags:
Boa tarde Srta. BOR, (se não gosta que te chame pelas iniciais, avise),
gostaria muito de te ajudar, mas para isto recomendo as seguintes ações:
1. Remova seu sketch da área de texto do seu tópico;
Remova todos!!!!!!
2. Clique em : " Arquivos " e depois anexe o arquivo com o seu sketch completo;
3. Leia http://labdegaragem.com/forum/topics/sugest-o-de-como-postar
4. Comente as linhas do seu sketch. Fica mais fácil entender o que vc quer fazer
com cada linha e facilita a ajuda.
Mas fique 'a vontade caso não queira seguir minhas recomendações.
RV
Olá.
Deve ter outras questões, mas lendo por alto, a linha:
digitalWrite (3,p);
Não pode ser assim. Melhor vc imprimir esse valor de p para entender melhor o que está vindo.
O digitalWrite aceita HIGH ou LOW como parametros. Isso é da biblioteca e deve ser respeitado.
O segundo parametro certamente não é um double..
Vem logo na cabeça de que LOW é 0 e HIGH é qq coisa diferente de zero, mas não sei... O importante é seguir a documentação para que de tudo certo, vide:
https://www.arduino.cc/reference/pt/language/functions/digital-io/d...
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por