Ola boa noite!!!
pessoal gostaria que me ajudasse a solucionar o seguinte problema:
//INCLUSÃO DAS BIBLIOTECAS
#include "DHT.h"
#include "Stepper_28BYJ_48.h"
//DEFINIÇÃO DE PINOS
#define BOTAO 5 // botão que liga e desliga o cooler manual;
#define pinSensor 7 // pino do sensor de temperatura DHT;
#define RELE_COOLER 6 // pino do relé que aciona o cooler;
#define DHTTYPE DHT22 // DHT 22 (AM2303)
//------------ Codigo para acionar o cooler por meio do botao-------------------------------
// boolean estadoRELE = 0;
// -----------------------------------------------------------------------------------------
//-----------------controle de temperatura--------------------------------------------------
int maxHum = 60; // Variavel que recebe valor da Humidade
int maxTemp = 30; // Variavel que recebe valor da Temperatura
DHT dht (pinSensor,DHTTYPE);
//------------------------------------------------------------------------------------------
void setup()
{
// INICIANDO MONITOR SERIAL
Serial.begin(9600);
dht.begin();
//declaração dos botões e ativação de seus resistores pullup internos
pinMode(BOTAO, INPUT_PULLUP); //Define pinos que liga o cooler do rele como entrada
pinMode(RELE_COOLER, OUTPUT); //Define pinos para o rele como saida
void loop()
{
// Check if any reads failed and exit early (to try again).
float h = dht.readHumidity();
// Read temperature as Celsius
float t = dht.readTemperature();
// Check if any reads failed and exit early (to try again).
if (isnan(h) || isnan(t)) {
Serial.println("Failed to read from DHT sensor!");
return;
}
if( t >= maxTemp ) {
digitalWrite(RELE_COOLER, LOW);
}
else {
digitalWrite(RELE_COOLER, HIGH);
}
//-----------------------------------------------------------------------------
if(digitalRead(BOTAO)== LOW)// Define o pino do botao como entrada "INPUT"
{
estadoRELE = !estadoRELE; //troca o estado do rele
digitalWrite(RELE_COOLER, estadoRELE);
while(digitalRead(BOTAO)== LOW);
}
//-----------------------------------------------------------------------------
// A temperatura está dentro do desejado
//Mas mesmo assim quero ligar o cooler manualmente
//Por isso, se o botão mudar o estado ou seja mudar de 0 para 1 liga o cooler
Serial.print(" \t");
Serial.print("Umidade: ");
Serial.print(h);
Serial.print(" %\t");
Serial.print("Temperatura: ");
Serial.print(t);
Serial.println(" ºC ");
delay(1000);
}
Tags:
A condição do botão pressionado deve sobrepor a condição de acionamento automático, quando pressionar o botão ele não deve mais tratar o sensor de temperatura para ligar o rele.
Coloque dessa forma:
if(digitalRead(BOTAO)== LOW) {
"código para acionar o fan com o botão manualmente"
} else{
"código para acionar o o fan automaticamente"
}
Boa tarde FJS, (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;
2. Clique em : " Deseja carregar arquivos? " e depois em " Escolher arquivo"
e anexe o arquivo com o seu sketch;
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.
RV
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por