galera ja tentei de tudo
criei um codigo o menor possivel para um sensor de temperatura digital dallas
ele ira exibir a temperatura em um display de sete segmentos
o problema e o seguinte...
se coloco o codigo que requisita a temperatura no loop o display fica piscando
se coloco fora tipo no setup o display exibe a temperatura normalmente, mas não atualiza
ja entendi o motivo
quando coloco a requisiçao da temperatura no loop ela fica atualizando e o display em cada atualização desliga e liga
alguem tem uma sujestão??
estou procurando uma variavel que leia a temperatura a cada tempo determinado, mas ta barra viu..
segue o codigo
***********************************************************************************************
#include <OneWire.h> //biblioteca onewire para sens d temp digital
#include <DallasTemperature.h> // biblioteca do sens de temp digital
#include "Seven_Seg_LED_Display.h" // biblioteca do display de 7 segmentos para facilitar
LEDDisplay disp; // variavel para adicionar numeros ao display
#define ONE_WIRE_BUS 9 //pino que vai ligado o pino digital do sensor de temp
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
int temperatura=sensors.getTempCByIndex(0); // requisita temperatura e direciona para o display
void setup(void)
{
sensors.begin(); //inicia o sensor
sensors.requestTemperatures(); // requisita a temperatura
}
void loop()
{
disp.DisplayNumber(temperatura); //mostra a temperatura no display
}
Tags:
fui o mais minimalista possivel e fiz esse codigo para teste
#include "Seven_Seg_LED_Display.h" // variavel do display
LEDDisplay disp; // variavel para add numero ao display
int contador = 1000; // contagem regressiva inicia do numero 1000
void setup() {
}
void loop() {
disp.DisplayNumber(contador--); // exibe a subtração eterna da variavel contador
delay (1000); // marca o tempo que cada subtração sera feita na variavel contador.
}
bom galera o que acontece...
como ja sabem, se no disp.DisplayNumber eu colocar um valor como 1234, 5678 etc ele exibe normalmente no display
mas mesmo dessa forma quando começa a contagem regressiva, 999 apaga por 1000ms 998 apaga por 1000ms e assim vai como se as coisas estivessem ao contrario
por incrivel que paraça quando chega no 9 funciona normal ate o 0
sendo assim o problema esta na biblioteca do display
fiz o teste com o codigo da temperatura que mostrei primeiramente
resfriando o sensor quando chega ao numero 9 ate o 0 funciona normalmente, se passar de 10 começa a piscar.
grande abraço
kra, vc nao deu atenção a minha resposta... eh como eu te falei, eh um problema de MULTIPLEXAÇÃO, em um display de 4 digitos (no caso o seu), nao tem como acender os pontos alternadas de kda um dos digitos, a solução eh acender um digito de kda vez a uma velocidade muito rapida, para dar a impressão de q estao todos acesos.
tenta dar uma olhada neste link http://www.seucurso.com.br/index.php?option=com_content&view=ar..., e v se te da uma luz....
flavio eu vi sua resposta sim, e o meu display funciona dessa forma, a diferença e que adaptei a biblioteca, se for para exibir numeros que não são vindos de sensores funciona normalmente, da uma olhada na biblioteca que enviei e você irá ver que ela e exatamente assim, como disse meu display no lugar do anodo e catodo, acho que esse pode ser o problema, todo o codigo tem que ser invertido
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por