Termômetro digital com arduino SR 3 parte 1 – Day 3

Leonardo Campbell

Compartilhe esse post

Share on whatsapp
Share on telegram
Share on facebook
Share on twitter
Share on skype
Share on email

Codigo fonte

/*
  ------------------------------------------Termômetro digital SR 3 ------------------------------------------------
  Versão do Software: 1.0 SR 3 //não apague essa linha, para futuras consultas
  Software open source, favor citar o autor: Seu Robô https://SeuRobo.com.br/
  Criado por: Leonardo Campbell - Seu Robô 
*/
#include <TM74HC595Display.h> //Biblioteca do Display LED
#include <TimerOne.h>         //Biblioteca de tempo do arduino
#include <DHT.h>;             //Biblioteca de tempo do DHT 22
/*Atenção
 * Para o sketch/programa funcionar tem que instalar as bibliotecas:
 * Adafruit_Unified_Sensor
 * DHT_sensor
 * TimerOne
 * TM74HC595-4dig-display
 * Todas se encontram para baixar gratuitamente em: https:https://seurobo.com.br/sr3
 */
//Cofogurações de pinos do displaye Do leitor de temperatura
#define  SCLK  4 //Ligar o SCLK do displayno pino 4
#define  RCLK  3 //Ligar o RCLK do displayno pino 3
#define  DIO   2 //Ligar o DIO do displayno pino 2
#define DHTPIN 5 //LIgar o pino digital do DHT22 (que é o do lado do VCC)
#define DHTTYPE DHT22 //define o modelo do sensor (dht22 / am2302)

TM74HC595Display visor(SCLK, RCLK, DIO); //Configurar as portas na função da biblioteca
unsigned char LED_0F[13]; //Separa 13 posições na memoria do arduino para guardar os caracteres
int Temperatura; //variavel para a leitura te temperatura
int Umidade; //variavel para a leitura te Umidade
int dig1Temp = 0; //variavel do primeiro numero da temperatura
int dig2Temp = 0;//variavel do segundo numero da temperatura
int dig1Humi = 0;//variavel do primeiro numero da humidade
int dig2Humi = 0; //variavel do segundo numero da humidade
DHT dht(DHTPIN, DHTTYPE); //passa os parâmetros para a função

void setup() { //Função de configuração
  Serial.begin(9600); //inicializa a serial monitor
  dht.begin(); //inicializa a função do sensor
  //Cada varivael guardar um caracter especifico na memoria do arduino
  LED_0F[0] = 0xC0; //0
  LED_0F[1] = 0xF9; //1
  LED_0F[2] = 0xA4; //2
  LED_0F[3] = 0xB0; //3
  LED_0F[4] = 0x99; //4
  LED_0F[5] = 0x92; //5
  LED_0F[6] = 0x82; //6
  LED_0F[7] = 0xF8; //7
  LED_0F[8] = 0x80; //8
  LED_0F[9] = 0x90; //9
  LED_0F[10] = 0xC6; //C
  LED_0F[11] = 0xC1; //U
  LED_0F[12] = 0xBF; //-

  Timer1.initialize(1500); // definir um temporizador de comprimento de 1500 (função da biblioca LCD)
  Timer1.attachInterrupt(timerIsr); // Anexe a rotina de serviço aqui (função da biblioca  LCD)
}

void loop() {  //Função principal do arduino
  Temperatura = dht.readTemperature(); //leitura  da temperatura
  dig1Temp = Temperatura / 10; //Pega o primeiro digito e guarda na variavel
  dig2Temp = Temperatura - (dig1Temp * 10); //Pega o segundo digito e guarda na variavel

  Umidade = dht.readHumidity(); //leitura da humidade
  dig1Humi = Umidade / 10; //Pega o primeiro digito e guarda na variavel
  dig2Humi = Umidade - (dig1Humi * 10); //Pega o segundo digito e guarda na variavel
  //Não pode der uma nova leitura do sensor em menos de 2 segundos

  Serial.print("Umidade: "); //imprime o texto na serial
  Serial.print(Temperatura); //imprime na serial o valor de umidade medido
  Serial.print("%"); 
  Serial.print(" / Temperatura: "); //imprime o texto na serial na mesma linha ainda
  Serial.print(Umidade, 0); //imprime na serial o valor de umidade medido e remove a parte decimal
  Serial.println("*C");


  //Exibir no DISPLAY a Umidade 
  visor.set(LED_0F[dig1Humi], 3); //Coloca o primeiro digito no display
  visor.set(LED_0F[dig2Humi], 2); //Coloca o segundo digito no display
  visor.set(LED_0F[12], 1);       //Coloca o terceiro digito no display
  visor.set(LED_0F[11], 0);       //Coloca o quarto digito no display
  delay(5000);                    //Aguarda 5 segundos
  visor.clear();                  //Apaga tudo do display


  //Faz uma separação por traços durante um segundo
  visor.set(LED_0F[12], 3);       //Coloca o primeiro digito no display
  visor.set(LED_0F[12], 2);       //Coloca o segundo digito no display
  visor.set(LED_0F[12], 1);       //Coloca o terceiro digito no display
  visor.set(LED_0F[12], 0);       //Coloca o quarto digito no display
  delay(1000);                    //Aguarda 1 segundos
  visor.clear();                  //Apaga tudo do display


  //Exibir no DISPLAY a temperatura 
  visor.set(LED_0F[dig1Temp], 3); //Coloca o primeiro digito no display
  visor.set(LED_0F[dig2Temp], 2); //Coloca o segundo digito no display
  visor.set(LED_0F[12], 1);       //Coloca o terceiro digito no display
  visor.set(LED_0F[10], 0);       //Coloca o quarto digito no display
  delay(5000);                    //Aguarda 5 segundos
  visor.clear();                  //Apaga tudo do display
}

//Função da biblioteca do Display
void timerIsr()
{
  visor.timerIsr();
}

Receba avisos de novos posts e novidades

Conteúdo extra e contato mas próximo com você

Compartilhe esse post

Share on whatsapp
Share on telegram
Share on facebook
Share on twitter
Share on skype
Share on email

Outros Posts que talvez você goste

Que Saber Mais Sobre Robótica?

Venha Fazer Um Curso Online E Aprender Muito Mais