/*
PROJETO TERMOMETRO DIGITAL
NOME: Ryan Lima
*/
//============== NOMEAR PINOS ===============
#define SENSOR A0
//=========== INCLUIR BIBLIOTECAS ===========
//===================================================
//===================================================
//===================================================
// Atualizada em NOVEMBRO 2022
/* //////////////////// FUNÇÕES \\\\\\\\\\\\\\\\\\\\\\
inicia(); // Inicializa MÓDULO DISPLAY
brilho( valor ); // Determina o Brilho dos LEDs no Display [ valor: 0~15 ]
separaDigito( numero ); // numero = 0 Desativa ":" do Relógio
// numero = 1 Ativa ":" do Relógio
Bufferizando...
bufferDigito( posição , valor 0 ~9 , separdor do Relógio ); //Envia para buffer: ( posição 0~3, valor 0~9 , acende/apaga 1/0 ":" do Relógio)
bufferByte( posição , valor 0~255 ); //Envia Byte para buffer ( posição 0~3 , seg a =1 ,seg b = 2, seg c = 4, seg d = 8, seg e = 16 , seg f = 32 , seg g = 64 , DP = 128 )
printbuffer(); // Manda para o Display o conteúdo do Buffer
Números ou Variáveis...
printVar( número OU variável ); //Coloca direto no Display o número ou valor da variável
//////////////////// FUNÇÕES \\\\\\\\\\\\\\\\\\\\\\ */
// ======================================
// ========== TM1637 [INI] ==============
// ======================================
//PALAVRAS UTILIZADAS NESSE CÓDIGO
// maTrix
// inicia
// brilho
// pos_icao
// val_or
// pon_to
// printVar
// printBuffer
// printSegs
// bufferDigito
// separaDigito
#include <TM1637Display.h>
#define CLK A5
#define DIO A4
#define maTrix display
TM1637Display maTrix(CLK, DIO);
byte dATa[]={0,0,0,0};
//===================================
void inicia(){
maTrix.setBrightness(0x0f);
}//fecha inicia
//===================================
//==========================================================
void printVar(int val_or){
maTrix.showNumberDecEx(val_or); // numero
}//fecha printVar
//==========================================================
//==========================================================
void printSegs(byte posi_cao,byte val_or){
dATa[posi_cao]=val_or;
maTrix.setSegments(dATa);
}//fecha printSegs()
//==========================================================
//==========================================================
void brilho(byte val_or){
maTrix.setBrightness(val_or);
}//fecha brilho()
//==========================================================
//==========================================================
void bufferByte(byte posi_cao, byte val_or){
dATa[posi_cao]=val_or;
maTrix.setSegments(dATa);
}//fecha printByte()
//==========================================================
//===========================================
void separaDigito(byte on_off){
if(on_off==1){dATa[1]=dATa[1]+128;}
}//fecha separaDigito()
//===========================================
//===========================================
void printbuffer(){
printSegs(0,dATa[0]);
printSegs(1,dATa[1]);
printSegs(2,dATa[2]);
printSegs(3,dATa[3]);
}//fecha printbuffer()
//===========================================
//===========================================
void bufferDigito(byte posi_cao, byte val_or, byte pon_to){
byte num=val_or;
if(num==0){val_or=63;}
if(num==1){val_or=6;}
if(num==2){val_or=91;}
if(num==3){val_or=79;}
if(num==4){val_or=102;}
if(num==5){val_or=109;}
if(num==6){val_or=125;}
if(num==7){val_or=7;}
if(num==8){val_or=127;}
if(num==9){val_or=111;}
if(pon_to==1 && val_or<128){val_or=val_or+128;}
if(pon_to==0 && val_or>128){val_or=val_or-128;}
dATa[posi_cao]=val_or;
}//fecha bufferDigito()
//===========================================
// ======================================
// ========== TM1637 [END] ==============
// ======================================
/*
//===============================================
//============== ADAFRUIT [INI] ================
//===============================================
// PALAVRAS UTILIZADAS NESSE CÓDIGO
// maTrix
// inicia
// pos_icao
// val_or
// pon_to
// printVar
// printBuffer
// bufferDigito
// separaDigito
#include "Adafruit_LEDBackpack.h"
Adafruit_7segment maTrix = Adafruit_7segment();
//=================================================
void inicia(){
maTrix.begin(0X70); //Troque o endereço 0x70 se for diferente
}//fecha inicia
//=================================================
//===========================================================
void bufferDigito(byte posi_cao , byte val_or, byte pon_to){
if(posi_cao>1){posi_cao++;}
maTrix.writeDigitNum(posi_cao,val_or,pon_to);
}//fecha printDigito()
//===========================================================
//=============================
void separaDigito(byte onoff){
maTrix.drawColon(onoff);
}//fecha separaDigito
//=============================
//=====================================
void printbuffer(){
maTrix.writeDisplay();//Imprime Buffer
}//fecha printbuffer()
//======================================
//======================================
void brilho(byte val_or){
maTrix.setBrightness(val_or);
}//fecha brilho()
//======================================
//======================================
void bufferByte( byte pos , byte valor){
maTrix.writeDigitRaw(pos,valor);
}//fecha printByte()
//======================================
//==========================================================
void printVar(int val_or){
maTrix.print(val_or); // valor da variável
printbuffer();
}//fecha printVar
//==========================================================
//===============================================
//============== ADAFRUIT [END] ================
//===============================================
*/
//===================================================
//===================================================
//===================================================
//=========== VARIÁVEIS E TABELAS ===========
int leitura, TEMPERATURA;
//================ SUB-ROTINAS ==============
//================== SETUP ==================
void setup() {
inicia();
brilho(15);
//---------- CONDIÇÕES INICIAIS ----------
bufferByte(0,0);
bufferByte(1,63);
bufferByte(2,56);
bufferByte(3,119);
printbuffer();
delay(1000)
}//fecha void setup()
//============== LOOP INFINITO ===============
void loop() {
leitura=analogRead(SENSOR);
TEMPERATURA= map(leitura,0,1023,-40,125);
printVar (TEMPERATURA);
// TAXA DE ATUALIZAÇÃO
delay(100);
}//fecha void loop()