presciso de um programa para uma chocadeira que funciona no arduino com lcd e com sida rele e dois botoes para aumentar a temperatura e diminuir a leiytura e feita no lm35

..........................este ta funcionando 

/*
Nome do Projeto: Chocadeira
Nome do Aquivo: Choca_DHT11_V01.ino
Dependencias: DHT.h Biblioteca de DHT11 
LiquidCrystal.h Biblioteca de LCD
MCU: ATmega
Board: Arduino Uno/Mega/Mini
Compilador N/A
IDE: Arduino IDE 1.6.4
Hardware: Arduino UNO
Escrito por: Rui Viana   Testado :Jose Erivaldo

Data: 28/06/2015
Uso: Didático
Desenhos Chocadeira_DHT11.jpg
Copyright @ N/A

Este programa é software livre;
e é distribuído na esperança que possa ser útil, mas SEM QUALQUER GARANTIA;
mesmo sem a garantia implícita de COMERCIALIZAÇÃO ou ADEQUAÇÃO A UM DETERMINADO FIM.

REVISIONS: (latest entry first)
2015-06-28 - Choca_DHT11_V01.ino - First release
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Descricão:

Este código utilza a biblioteca DHT.h para ler sensores de humidade e de temperatura.
E a biblioteca LiquidCrystal.h para mostrar a temperatura e a humidade no diplay LCD.
Compara o valor da leitura com o valor programado, e define se liga ou desliga o rele
que alimenta as resistencias de aquecimento.
Tem dois botoes, um para aumentar e outro para diminuir a programação da temperatura
*/
//************ Variaveis e constantes ************

#include <LiquidCrystal.h> // Inclui a biblioteca do LCD
#include "DHT.h" // Inclui a biblioteca do DHT11
#define DHTPIN A1 // pino que estamos conectado
#define DHTTYPE DHT11 // DHT 11
DHT dht(DHTPIN, DHTTYPE);
LiquidCrystal lcd( 7, 8, 9, 10, 11, 12); // Pinos do LCD
const int Rele = 13; // Pino de Saída
const int Up = 2; // Pino do switch de Up
const int Dn = 3; // Pino do switch de Dn
float TempProg = 27; // Variavel com temperatura programada
long debouncing_time = 15; // Debouncing Time in Milliseconds
volatile unsigned long last_micros; // Variavel para deboucing
float celsius; // Varialvel para guardar valor de temperatura
byte humidade; // Varialvel para guardar valor de humidade
//*********************** Setup *******************
void setup()
{
lcd.begin(16, 2); // Inicia o LCD com dimensões 16x2(Colunas x Linhas)
pinMode(Rele, OUTPUT); // Port como saída
digitalWrite(Rele, LOW); // Desliga Rele
pinMode(Up, INPUT_PULLUP); // Port do switch Up como entrada e Pull-Up
pinMode(Dn, INPUT_PULLUP); // Port do switch Dn como entrada e Pull-Up
dht.begin(); // inicializa o Sensor
delay(1000); // Aguarda 1 seg antes de acessar as informações do sensor
attachInterrupt(1, PressUp, RISING); // Interrupt de botão ao ficar HIGH o pino 3
attachInterrupt(0, PressDn, RISING); // Interrupt de botão ao ficar HIGH o pino 2

lcd.clear(); // Limpa do buffer do LCD
lcd.setCursor(0, 0); // Seleciona posição 0 da linha 0
lcd.print("Chocadeira"); // Imprime texto
lcd.setCursor(11, 1); // Seleciona posição 0 da linha 0
lcd.print(TempProg); // Imprime variavel
}
//*************** Rotina PressUp *****************
void PressUp() // Rotina chamada pela interrupcao do botão de aumento
{
if((long)(micros() - last_micros) >= debouncing_time * 1000) // Tempo de debouncing
{
TempProg = TempProg + 0.1; // Incrementa temperatura em 0,01 oC
lcd.setCursor(11, 1); // Seleciona posição 0 da linha 0
lcd.print(TempProg); // Imprime variavel
last_micros = micros(); // Tempo de debouncing
}
}
//*************** Rotina PressDn *****************
void PressDn() // Rotina chamada pela interrupcao do botão de reducao
{
if((long)(micros() - last_micros) >= debouncing_time * 1000) // Tempo de debouncing
{
TempProg = TempProg - 0.1; // Decrementa temperatura em 0,01 oC
lcd.setCursor(11, 1); // Seleciona posição 0 da linha 0
lcd.print(TempProg); // Imprime variavel
last_micros = micros(); // Tempo de debouncing
}
}
//*********************** Loop ********************
void loop()
{
celsius = dht.readTemperature(); // Le temperatura no DHT11
humidade = dht.readHumidity(); // Le humidade no DHT11

lcd.setCursor(11, 0); // Seleciona posição 0 da linha 0
lcd.print("H "); // Imprime texto
lcd.print(humidade); // Imprime humidade
if (celsius >= TempProg) // Faça se a temperatura for menor que a programada
digitalWrite(Rele, LOW); // Desliga Rele como entrada e Pull-Up
else // Ou se não for
digitalWrite(Rele, HIGH); // Liga Rele como entrada e Pull-Up
lcd.setCursor(0, 1); // Seleciona posição 0 da linha 0
lcd.print(celsius); // Imprime a gemperatura
lcd.setCursor(6, 1); // Seleciona posição 6 da linha 0
if (digitalRead(Rele) == 1) // Faça se o rele tiver operado
lcd.print("Lig "); // Imprime texto
else // Ou se não tiver
lcd.print("Desl"); // Imprime texto
delay(200);
}

Exibições: 9698

Responder esta

Respostas a este tópico

caro amigo Carlos eu tava pensando em mandar dois ja chocos pro dr Rui kkkkkkkkkkkkkkkkkkkkkk

mais valeu a pena o esforço sou muito grato ao Rui ............abraços 

Srs. JEE e CK, 

por favor  sem gracinha, nada de Pinto Tá?

kkkkkkkkkkkkkkkkkkkk

Rui

kkkkkkkkkkkkkkkkkkkkk

pinto ainda nao tem so ovo choco kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk

Bom dia Rui,

estava fazendo teste da sua chocadeira que achei incrível e esta dando erro nesta linha aqui o que pode ser

 #define DHTTYPE DHT11                         // DHT 11

e coloquei a biblioteca DHT.h

ola bom dia a biblioteca do site nao funciona somente funciona com a biblioteca do rui estou te enviando a copia 

este arquivo funciona porque eu testei e esta funcionado aqui na bancada

Anexos

kkkkkkkkkkkkkkkkkkkk

Valeu José, um pouco de humor sempre faz bem a todos.

Abs.

Consegue colocar uma parte para o programa acionar um motor que movimentará os ovos de x em x tempo por 18 dias após inicio da choca?

                           Republicando para remover o sketch do corpo do tópico.

RV

Oi JEE, bom dia.

conforme havia prometido, segue a cópia de um code para o controle da sua chocadeira.

Eu não escrevi para lm35, pois acho que neste caso ele poderá falsear as leituras.

Escrevi sim para o DS18b20 ou 1DS18s20.

Vou também colocar uma cópia no PASTEBIN, pois postando aqui, alé de perder a formatação, pode faltar

algum simbolo, e lá a cópia é mais confiável.

Pensei também em escrever um código usando o sensor DTH11, pois ele mede temperatura e umidade relativa do ar.

Achei que neste caso (chocadeira) pode ser necessário.
Se realmente for necessário, post aqui seu comentário para que eu escreva um código com este recurso.

Rui

// No pastebin .......... http://pastebin.com/y2gUEgRk

Chocadeira.ino

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço