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

}

Exibições: 715

Anexos

Responder esta

Respostas a este tópico

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

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço