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

Oi JEE, boa noite.

Reproduzinho nossa conversa do chat:

  O sensor de temperatura (LM35) ficará à 1 m do arduino,

         então deverá ser usado um cabo blindado com 2 fios.

  Alimentação das resistências 220 V;

  Potencia das resistências; 100 W;

  Rele de 12V.

   Conform sugestão do Carlos kwiek, veja este code:

   http://www.seriallink.com.br/forum/viewtopic.php?f=68&t=2092#.V...

   Rui

Oi JEE,

já escrevi o code para o sensor DHT11,

está no pastebin;  ....    http://pastebin.com/Q8wtCCJa

Rui

Boa noite,

O código que você escreveu para o DHT11, também serve para o DHT22? O sensor DS18B20 é melhor do que o DHT22? Estou tentando reproduzir um projeto idêntico ao que você solucionou, porém com a adição da funcionalidade de viragem dos ovos a cada 2 horas, para o aumento da taxa de eclosão dos ovos.

Desde já agradeço por sua atenção.

Bom dia NFB,  (se não gosta que te chame pelas iniciais, avise),

o DHT22 serve sim no lugar do DHT11. Veja no exemplo deste link com definir.

https://github.com/adafruit/DHT-sensor-library/blob/master/examples...

O DS18B20 é muito mais preciso que os DHTs, mas ele só mede temperatura enquanto

os  DHTs medem temperatura e umidade.

Se precisar medir temperatura e umidade, eu recomendo no lugar de DHTs, os SHTs.

RV

Oi JEE,

em baixo, os desenhos das duas opções:

Rui

Opção DS18b20

Opcão DHT11

bom dia meu amigo:  vou fazer o teste inicial do hardware mais pelo que eu vi inicilmente no esquema acho que vou prescisar  do ajuste de umidade ; coloca mais um botao tipo menu 1 toque ajusta temperaura nos botoes  +ou- ;2 toques ajusta umidade nos botoes  +ou- a saida do controle da umidade  ligo um cooler invertido para sugar a umidade de dentro da chocadeira : na primerira linha do display mostra a temperatura real na caixa e na segunda mostra a umidade real 

para mostrar a temperatura e a umidade ajustada no display um toque no botao menu

funçao do botao menu   primeiro toque mostra temperatura e umidade ajustada na tela do display . segundo toque ajusta a temperatura . terceiro toque ajusta a umidade e quarto toque salva e sai fora mostrando no display  ...............

as placas e gravaçao do arduino so o que sei faser  nao sei ainda mudar uma letra no programa kkkkkkkkkkkk

sou daqueles que sabe o que quer mais nao sabe faser kkkkkkk depois  te convido para comer uns meio frangos assado

  • Arduino: 1.6.5 (Windows XP), Placa:"Arduino Uno" chocadeira1:10: error: 'OneWire' does not name a type chocadeira1.ino: In function 'void setup()': chocadeira1:27: error: 'PressUp' was not declared in this scope chocadeira1.ino: At global scope: chocadeira1:38: error: expected unqualified-id before '{' token chocadeira1.ino: In function 'void loop()': chocadeira1:67: error: 'ds' was not declared in this scope chocadeira1.ino: At global scope: chocadeira1:73: error: expected unqualified-id before 'if' chocadeira1:77: error: expected unqualified-id before 'switch' chocadeira1:81: error: expected unqualified-id before 'break' chocadeira1:82: error: expected unqualified-id before 'case' chocadeira1:84: error: expected unqualified-id before 'break' chocadeira1:85: error: expected unqualified-id before 'default' chocadeira1:87: error: expected declaration before '}' token 'OneWire' does not name a type Este relatório deveria ter mais informações "Mostrar saída verbosa durante a compila

  • este e o erro e nao copila para eu tester esta parte

Oi JEE,

esta é a biblioteca que uso

Rui

Oi JEE,

esta é a biblioteca que uso

Rui

Anexos

ola boa tarde a todos ! eu e dr Rui Viana detectamos um defeito que nao era defeito .... eu estotou montando uma chocadeira e pedi pro dr Rui me escrever um programa mais o programa nao tinha cristo que fizesse funcionar

eu tinha baixado dht.h da net 

no meu arduino  versao 1.6.4 fiz a troca de versao e ainda nao funcionou entao o dr Rui me mandou a versao antiga do arduino e nada ..mandou a biblioteca do dht.h e nao funcionou entao voltei a instalar a minha versao do arduino

1.6.4 com a versao do dht do dr rui e tudo funcionou resumindo tive um conflito incompatibilidade de versao do dht.h . agradeço a paciencia do dr Rui em me ajudar  o software se enconta junto com o esquema eletrico neste post obrigado ...eu estou disponivel para ajudar na medida do possivel quem tiver tal dificuldade jose

Parabéns amigo!

Agora então faça um favor  todos, edite, e coloque antes do titulo atual do seu tópico a palavra RESOLVIDO, desta forma ele passara a ser uma fonte de consulta de problemas solucionados para outros garagistas.

PD O Rui merece pelo menos uma dúzia de ovos não acha? rsrsrsrs

Abraços!

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço