Bom dia a todos.

Seguinte, montei o sketch abaixo com o sensor 18b20 e um LCD 16x2, o sensor esta atuando normalmente via SerialMonitor, mas no LCD fica uma sujeira absurda e não me mostra nada, como pode ver no Sketch abaixo, eu ja mandei o comando para limpar o LCD e o mesmo não funciona, alguém ai poderia me ajudar neste tópico?

#include <OneWire.h>
#include <DallasTemperature.h>
#include <LiquidCrystal.h>

// Inicializa o LCD
LiquidCrystal lcd(12, 11, 7, 6, 5, 4);

// Porta do pino de sinal do DS18B20
#define ONE_WIRE_BUS 9

// Define uma instancia do oneWire para comunicacao com o sensor
OneWire oneWire(ONE_WIRE_BUS);

DallasTemperature sensors(&oneWire);
DeviceAddress sensor1;


void setup() {

lcd.begin(16, 2); // Diz para o Arduino que o display é 16x2.

Serial.begin(9600);
sensors.begin();
// Localiza e mostra enderecos dos sensores
Serial.println("Localizando sensores DS18B20...");
Serial.print("Foram encontrados ");
Serial.print(sensors.getDeviceCount(), DEC);
Serial.println(" sensores.");
if (!sensors.getAddress(sensor1, 0))
Serial.println("Sensores nao encontrados !");
// Mostra o endereco do sensor encontrado no barramento
Serial.print("Endereco sensor: ");
mostra_endereco_sensor(sensor1);
Serial.println();
Serial.println();

}

void mostra_endereco_sensor(DeviceAddress deviceAddress)
{
for (uint8_t i = 0; i < 8; i++)
{
// Adiciona zeros se necessário
if (deviceAddress[i] < 16) Serial.print("0");
Serial.print(deviceAddress[i], HEX);
}
}


void loop()
{
sensors.requestTemperatures(); // Le a informacao do sensor
float tempC = sensors.getTempC(sensor1); // Variavel tempC recebe valor do sensor


/////////////////// Mostra dados no serial monitor/////////////////////////////////////
Serial.print("Temp C: ");
Serial.println(tempC);

///////////////////Mostra dados no LCD////////////////////////////////////////////////

lcd.setCursor(0,0);
lcd.print(" ");
lcd.setCursor(0,0);
lcd.print(tempC);

delay(1000);

}

Exibições: 916

Responder esta

Respostas a este tópico

Deve estar ligando os pinos errados no LCD, que marca e modelo é seu display?

Oi AFM, bom dia,

testei seu code aqui no meu UNO e mostrou normal no display.

Mas mostrou o valor errando da temperatura. (-125C)

Deve ter falha na parte de leitura do 1Wire.

 

Rui

Simulei aqui e funciona, o Rui também, esta dando  -125 no teste dele mas é normal, porque esta sem o sensor.

Veja o video:

 https://www.youtube.com/watch?v=lzBR-rPL4Lo&feature=youtu.be

Revise sua conexão.

Boa sorte.

Abs.

Bom moçada... Se ai funcionou... ai ficou estranho... vou chegar em casa e vou testar novamente...

Obrigado a todos pela força...

Oi CK, boa tarde.

Não estava se o DS18B30 não, era mau contato no pino de DS.

kkkkkk

Agora tá funcionando normal.. Temperatura aqui  28,50 C.

Rui

Oi Lord Rui Viana II das Fortalezas. rsrsr.

Entendi, um abraço!

CK

Bom dia Moçada...

Entao, nao funcionou aqui, o mais engraçado é que eu subo um exemplo de "Hello Word" e funcionada, quando subo este código nao funciona, CK o modelo que estou usando é o 1602B.

Ola AFM,

Não, o modelo que estou usando é o DS18B20, desconheço este modelo que você menciona, se você esta usando com essa nomenclatura talvez seja este o problema, pode não ser OneWire.

Anexo a folha de dados do DS18B20.

Abs.

Anexos

DS do seu sensor, ele tem pinagem diferente.

Abs.

Anexos

Olha ai Rui.

Segue Rui.

Anexos

Segue Rui.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço