Olá boa tarte amigos estou com o seguinte pau nesse controlador ele não aciona o rele no momento determinado.

Ele deve disparar, o rele quando, a temp for maior que 27°, para acionar, o refrigerador. Como faço isso funcionar?

Meu Arduíno e um mega 2560 

antes de passar o código gostaria de dizer que.

ele nao da os 5v nos pinos de saida

#include <LiquidCrystal.h>
#include <Limits.h>


#include <OneWire.h>

#include <DallasTemperature.h>

int chiller = 23;
int aquecedor = 24;
LiquidCrystal lcd(8, 9, 4, 5, 6, 7); // Cria um objeto LCD e atribui os pinos

// Conectar o pino central dos sensores ao pino 10 do Arduino
#define ONE_WIRE_BUS 3

// Setup a oneWire instance to communicate with any OneWire devices
OneWire oneWire(ONE_WIRE_BUS);

// Pass our oneWire reference to Dallas Temperature.
DallasTemperature sensors(&oneWire);
DeviceAddress insideThermometer = { 0x28, 0xFF, 0xBC, 0x19, 0x63, 0x14, 0x03, 0xF9 };


void setup(void)
{
pinMode(chiller, OUTPUT);
pinMode(aquecedor, OUTPUT);
// start serial port
lcd.begin(16, 2);
// Start up the library
sensors.begin();
// set the resolution to 10 bit (good enough?)
sensors.setResolution(insideThermometer, 10);
}

void printTemperature(DeviceAddress deviceAddress)
{
float tempC = sensors.getTempC(deviceAddress);
if (tempC == -127.00)
if (tempC > 27) // Indica condição para acionamento do cooler
{
lcd.setCursor(0, 1); // Define a coluna 0 e linha 1 do LCD onde será impresso a string
lcd.write("chiller on"); // Imprime no LCD
digitalWrite(chiller, HIGH); // Quando condição verdadeira, liga o cooler
}
else
{
lcd.setCursor(0, 1);
lcd.write("aquecedor on");
digitalWrite(aquecedor, HIGH);
}


{
lcd.setCursor(0, 0);

lcd.print(tempC);

}
}

void loop(void)
{
delay(1000);

sensors.requestTemperatures();
lcd.print("Temp aqua ");
printTemperature(insideThermometer);
lcd.print(" C: ");

}

Dês de já agradeço a ajuda dos mais intelectuais.

Exibições: 1122

Responder esta

Respostas a este tópico

Oi Jean, boa tadre.

Voce pose disponibilizar a biblioteca "onewire.h"?

Eu quero testar o seu sketch com a sua biblioteca.

Rui

Oi Jean,

este sketch foi escrito por voce ou voce copiou de algum site?

Se for de um site, por favor post o link.

Rui

a biblioteca ta no primeiro site

Oi Jean, bom dia.

Fiz uma revisão no seu código e no código do site que voce indicou, e não encontrei como ele faz a leitura e conversão da temperatura.

Então pequei o exemplo que existe no onewire.h e o modifiquei para sua necessidade.

A grande vantagem deste código do exemplo, é que ao usar um único sensor, voce não precisa colocar o valor da ROM "calibrador".

Eu deixei as linhas   Serial.begin(9600); e as linhas  Serial.print, caso voce queira ver o resultado das leituras na serial.

Teste e depois nos conte o resultado.

 

Rui

Anexos

um amigo do face mandou eu add esse codigo ao meu mas nao deu 

#define pin_aquecedor 10
#define pin_resfriador 11

#define temperatura_alta 27
#define temperatura_baixa 10

unsigned long tempo = -60000; //para executar medida da primeira vez e no aguardar o primeiro clico de tempo
float tempC = 0;

void setup() {
Serial.begin(9600); //para ve dados pela porta serial

pinMode( pin_aquecedor, OUTPUT );
digitalWrite( pin_aquecedor, LOW );

pinMode( pin_resfriador, OUTPUT );
digitalWrite( pin_resfriador, LOW );

}

void loop() {
if ( millis() - tempo >= 60000 ) { //a verificaço feita a cada minuto (60 segundos)
tempo = millis();

//leia a temperatura aqui

//mostre a temperatura no display

if ( tempC >= temperatura_alta ) {
digitalWrite( pin_resfriador, HIGH ); //liga resfriador
//descreva no display que foi ligado o resfriador
} else if ( tempC <= temperatura_baixa ) {
digitalWrite( pin_aquecedor, HIGH ); //liga aquecedor
//descreva no display que foi ligado o aquecedor
} else {
//Se a temperatura no estiver nem alta nem baixa desliga tanto o aquecedor quanto o resfriador
digitalWrite( pin_aquecedor, LOW );
digitalWrite( pin_resfriador, LOW );
//pode ligar o display ou escrever que esta em reposuto
}

}
Serial.print( "Temperatura " );
Serial.println( tempC );
delay(1000); // espera um segundo, apenas para ter menos dados enviados pela porta serial
}

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço