Selamlar arkadaşlar,
DS18B20 dijital sıcaklık sensöründen aldığım veriyi LCD ye yazdırmaya çalışıyorum ama LCD bir türlü değerleri doğru göstermiyor. Koduma ve proteus çizimime bakıp hatamı bulmamda yardımcı olur musunuz ?
#include <OneWire.h>
#include <LiquidCrystal.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS 10
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
float tempC = 0;
LiquidCrystal lcd(2,3,4,5,6,7);
void setup() {
sensors.begin();
lcd.begin(16,2);
lcd.clear();
Serial.begin(9600);
}
void loop() {
sensors.requestTemperatures();
tempC = sensors.getTempCByIndex(0);
delay(1000);
lcd.setCursor(0,0);
lcd.print("C: ");
lcd.print(tempC);
}
(https://i.ibb.co/CQbswwk/Ads-z.png) (https://ibb.co/CQbswwk)
Merhaba büyük ihtimalle ekranda bir önceki değer kalıyordur çünkü loop dögüsünde ekrana yazmadan önce lcd.clear(); ile temizlemen gerek veya her seferinde lcd boşa kalan karakter sayısı kadar boşluk ekle
ya şunu yap
lcd.clear();
lcd.setCursor(0,0);
lcd.print("C: ");
lcd.print(tempC);
ya da bunu
lcd.setCursor(0,0);
lcd.print("C: ");
lcd.print(tempC);
lcd.print(" "); //boşluk
@Gümülcine mesajınıza kod eklemek için "KOD"
butonunu kullanınız.
gerçek devre üzerinde dene!