Hello,
I need to make my program detected sensor DS18S20 or DS18B20 ... yet I have program for sensor DS18B20. Please, how make sensor DS18S20 write on displey ???
#include <OneWire.h> // Knihovny
#include <DallasTemperature.h>
#include <LiquidCrystal.h>
#define ONE_WIRE_BUS 8
#define DS18B20 8
OneWire ourWire(DS18B20);
DallasTemperature sensors(&ourWire);
OneWire ds(8); // Přiřazení PINu DS18B20
LiquidCrystal lcd(12, 11, 10, 5, 4, 3, 2); // Vytvoření objektu LCD
int backLight = 13; // PIN na osvětlení dipleje
//OneWire oneWire(ONE_WIRE_BUS);
//DallasTemperature sensors(&oneWire);
void setup(void)
{
}
void loop(void)
{
lcd.begin(16, 2); // Parametry počet sloupů a řádků
lcd.clear(); // Smazání znaků na displeji
lcd.setCursor(0,0); // Nastavení kurzoru na pozici (s, ř)
getDeviceAddress(); // Získání adresy
pinMode(backLight, OUTPUT); // Osvětlení displeje
analogWrite(backLight, 128); // Osvětlení displeje
sensors.begin();
sensors.requestTemperatures();
lcd.setCursor(0,0); // Nastavení cursoru
float tempC(sensors.getTempCByIndex(0));
if (tempC == -127.00) {
lcd.clear();
lcd.home();
lcd.print("PripojCidlo");
}
else {
lcd.print(tempC);
}
lcd.setCursor(6,0);
lcd.print("C");
delay (3000);
}
void getDeviceAddress(void) {
byte i;
byte addr[8];
// sensors.begin(); // Začátek komunikace se senzorem
while(ds.search(addr)) {
// lcd.print("DS18B20 adress:");
lcd.setCursor(0, 1);
for( i = 0; i < 8; i++) {
// lcd.setCursor(0, 1);
// lcd.print("0x");
if (addr[i] < 16) {
lcd.print('0');
}
// lcd.setCursor(0, 1);
lcd.print(addr[i], HEX);
if (i < 7) {
// lcd.print(",");
lcd.leftToRight();
}
}
if ( OneWire::crc8( addr, 7) != addr[7]) {
lcd.setCursor(0, 1);
lcd.print("Neni hodnota");
return;
}
}
ds.reset_search();
return;
}
/*
{
lcd.setCursor(0,1); // nastavení cursoru mimo počet zobrazení
lcd.autoscroll(); // aut. posun
lcd.print(" "); // prázdný znak
delay(800); // zpoždění
}
/*
/*
lcd.print(sensors.getTempFByIndex(0));
lcd.print((char)223);
lcd.print("F ");
lcd.print(sensors.getTempCByIndex(0));
lcd.print((char)223);
lcd.print("C");
delay(500);
}
*/