[ davidsusi22 @ 03.04.2017. 09:47 ] @
Hallo. Probao sam da zamjenim cod od analognog lm35 sa digitalnim ds18b20 i uvijek imam neku gresku u codu.Ja sam novi u tim stvarima, mada sa samim digitalnim senzorom ocitavam temperaturu na lcd-u, tj sve radi,ali kada dodajem preostali dio coda sa hysterezom, cod je uvijek sa greskom.Dali bi neko mogao da prepravi dole navedeni cod,tako da to radi sa ds18b20. Cod ince radi, ali sa Analognim lm 35
Hvala.













#include <Wire.h>

#include <LiquidCrystal_I2C.h>

#define sensorPin 0 // spojiti sa LM35

#define DELAY1 10 // pauza za mjeriti

#define DELAY2 500 // pauza za prikaz

#define motorPin 9 // spojiti sa motorom

#define threshold 25 // zadana temp. za paliti motor

#define hysterese 1 // zadana vrijednost hysterese

const int cycles = 20; // broj mjerenja

LiquidCrystal_I2C lcd(0X27,16,2) // adresa LCD





void setup() {



pinMode(motorPin,OUTPUT);

lcd.init();



lcd.backlight();



}





void loop()

{



float resultTemp = 0.0;

for(int i = 0; i < cycles; i++){

int analogValue = analogRead(sensorPin);

float temperature = (5.0 * 100.0 * analogValue) / 1024;

resultTemp += temperature;

delay(DELAY1);

}

resultTemp /= cycles;

lcd.clear();

lcd.print("Temp:");

lcd.print(resultTemp);

#if ARDUINO < 100

lcd.print(0xD0 + 15, BYTE);

#else

lcd.write(0xD0 + 15);

#endif

lcd.print("C");

lcd.setCursor(0, 1);

lcd.print("MOTOR: ");

if(resultTemp > (threshold + hysterese))

digitalWrite(motorPin,HIGH);

if(resultTemp < (threshold + hysterese))

digitalWrite(motorPin,LOW);

lcd.print(digitalRead(motorPin) == HIGH?"UPALJEN":"UGASEN");

delay(DELAY2);



}


[ vidonk @ 14.01.2018. 03:07 ] @
Nejasno objašnjeno šta želiš da uradiš, kod si mogao da staviš u kod "tagove", koju grešku ti javlja kompajler, šta pokušavaš da uradiš i gdje je tačno zapelo ?
[ electronic_fan @ 14.01.2018. 04:14 ] @
Nije moguće "zameniti cod" za LM35 da radi sa DS18B20, mora se pisati sasvim nov kod...

LM35 je analogni (čita se voltaža pomoću ADC-a), dok je DS18B20 digitalni uredjaj baziran na 1-wire protokolu i čitaju se digitalno vrednosti iz registara senzora.

Stoga je sasvim drugačiji rad sa 1-wire uredjajima. A to baš i nije jednostavno uraditi samo preko Wire biblioteke... Ali zato postoje već gotove biblioteke za Arduino i DS18B20.

Potraži neki tutorijal za DS18B20 i Arduino, ima ih puno po internetu, kao i na Arduino forumu.

Na primer:
http://www.hobbytronics.co.uk/ds18b20-arduino

Edit: Ops! Sad primetih da je ovo 9 meseci stara tema, a reagovano na post vidonk-a. :) Verovatno se OP do sada već odavno snašao...

[Ovu poruku je menjao electronic_fan dana 14.01.2018. u 06:56 GMT+1]