Anfänger - Hilfe bei DS1820 Temperatur auf LCD bringen.

wenn ich den widerstand wegnehme, zeigt er -127.00
oder wie meinst du es mit direkt anschließen?
danke für die schnelle antwort.

ich hab das Ganze hier mit dem UNO und Standardschaltung 4,7k zwischen Daten und Vcc. Funktioniert...

Da musste an Deiner Hardware suchen.

Gruss Kalli

ich sehe grade, dass pin3 im parasitären mode bei dir nicht an GND ist. evtl. liegt da der fehler

bei mir geht hier garnichts :frowning: wenn ich hier den pin3 mit gnd verbinde, gibt es keinen unterschied. er zeigt nur 85.00

meinst du den pin 3 wie hier in grün -> http://cu-gang.de/pin3.pdf
so habe ich es verstanden und gemacht, aber er zeigt trotzdem 85 an.

bitte mal das ds1820 datenblatt lesen :wink:

natürlich pin3 vom ds1820 mit GND

im datenblatt steht das alles genau erkärt.

ah okay. also habe ich jetzt den pin3 (also der, der in der schaltung frei ist,) mit gnd verbunden.
das sieht nun bei mir so aus: http://cu-gang.de/pin4.pdf
jetzt habe ich aber pin 1 und 3 auf gnd? und es bleibt auf 85.

Hallo Riin,
ich hab das gerade mal kurz nachgebaut.
Dein "simple" Sketch läuft problemlos und zeigt auch die richtige Temperatur an.
Hab nur den PIN10 benutzt sonst alles gelassen.
Du musst den mittleren Pin des 18S20 über den Widerstand an +5V und die beiden anderen einfach
zusammen auf Minus, dann sollte es eigentlich gehen.

genau so wie in meiner letzten pdf. da sind pin 1 und 3 auf gnd. der mittlere über einen 4,7kohm an 5V und in der mitte noch an pin2.
bei mir zeigt er 85.00
auf dem DS1820 steht: DALLAS - DS1820 - 1034C4 - +850AL
liegt es evtl. an diesem Bauteil ?

und jetzt mal den ds 1820 mit ext. spannungsversorgung anschließen, da es ein DS18S20 zu sein scheint.

also pin 1 des ds1820 an GND, pin 2 an pin2 am arduino mit 4k7 resistor und Vdd an +5V Vcc.

also... http://cu-gang.de/ds1820.pdf das sieht doch eigentlich ganz gut aus...

benutzt du auch die neuste version der Dallas libaries ? vlt ist die alte ja bisl buggie

habe hier nur ein netzteil welches man auf 4,5V oder 6V einstellen kann. da kann ich es wohl nicht anschließen oder?
die neueste dallas library habe ich geladen. ich bin ganz schön verzweifelt. anscheinend funktioniert es bei jeden außer bei mir.
ps: vielleicht habe ich die dallas datei nicht richtig auf das arduini geladen, kann das sein? oder muss nur die pde datei auf's arduino?

Bei der Dallas Libary sind es meine ich 2 Ordner ..

einmal die "dallas temp..." und die "OneWire" ... beide einfach in das verzeichnis arduino-002/libaries reinschmeißen...

Musste aber eigentlich richtig installiert haben.. sonst hätte die Arduino Ide den code nicht kompilieren können...

Versuchs mal unabhängig von der dallas libarie

http://tutorialpedia.org/tutorials/Working+with+Dallas+DS18S20+and+DS18B20+temperature+sensors+from+Arduino.html

das erste programm liest dir die adresse des sensors aus ... diese adresse musste dann im 2ten sketch nur noch einfügen...

guten morgen.

also die adresse konnte ich ohne probleme auslesen. das ergebnis lautet:
--Search started--
Device is a DS18S20 : 10-B1-8B-16-02-08-00-78
--Search ended--

beim kompletten übernehmen des zweiten programms, erhalte ich:

Temp = 29.75 F or -1.25 C

Das ist aber ein bisschen wenig als zimmertemperatur. habe ich schon wieder etwas falsch gemacht? in zeile 6 steht, ich soll die adresse vom ersten programm in die zeile einfügen, wenn ich dieses mache, bekomme ich wieder eine fehlermeldung.

Hallo an alle,

pogg, danke für den link. der code funktioniert bei mir. die zimmertemperatur wird nun korrekt angezeigt. nun möchte ich den wert auf mein hd44780 display ausgeben. gibt es dafür einen einfachen code?

Hallo,
ich kann das letzte Proramm leider nicht nachvollziehen. Übersetzung stolpert über den Begriff
"scratchpad". Nun scheint mir irgendeine Datei zu fehlen.
Aber eigentlich müssten die Exemples nun auch funktionieren. Was hast Du denn für einen Fehler in der
Beschaltung gefunden ? Würde ja auch Anderen helfen.

Gruss Kalli

Na klar gibts für den LCD auch einen einfachen code (;
Schau mal unter Arduino Tutorial - connecting a parallel LCD

im header
#include <LiquidCrystal.h>

ins setup kommt dann nur noch LiquidCrystal lcd(7, 8, 9, 10, 11, 12); je nachdem wie des angeschlossen hast.

lcd.begin(16, 2); kommt auch hier wieder auf dein lcd an

und später iwann im code lcd.print(tmp2); falls das noch die variable ist in der du die temperatur speicherst...

hoffe ich konnte dir wieder n stückchen helfen (;

hi kalli, wie schon gesagt, ich habe einfach den link gefolgt: http://tutorialpedia.org/tutorials/Working+with+Dallas+DS18S20+and+DS18B20+temperature+sensors+from+Arduino.html

Wenn ich den ersten Code eingebe, sagt mir der Serial Monitor:
--Search started--
Device is a DS18S20 : 10-B1-8B-16-02-08-00-78
--Search ended--

den Code übernehme ich in Zeile 7. also sieht er bei mir so aus:
byte sensor[8] = {0x10, 0xB1, 0x8B, 0x16, 0x02, 0x08, 0x00, 0x78};

beim klicken auf upload kommt direkt die fehlermeldung "scratchpad", also genau so wie du es geschrieben hast. der satz darüber ist unvollständig. er heisst: //CONVERT T function call (44h) which puts the temperature into the scratchpad
das einfachste ist natürlich scratchpad einfach zu löschen und darüber als letztes wort einzufügen.
jetzt klickst du wieder auf upload und es erscheint wieder eine fehlermeldung. es fehlt lediglich ein "/" am anfang. also ergänzen. dann sieht die zeile 63 so aus: // (COUNT PER Celsius Degree)
jetzt nochmal auf upload klicken und fertig :slight_smile:
nun steht bei mir im serial monitor: Temp = 76.10 F or 24.50 C

Pogg: danke für den link. diesen habe ich auch schon gefunden. ich habe mir dieses set gekauft: http://www.watterott.com/de/Electronic-brick-Starter-kit
jetzt muss ich erstmal rausfinden wo welche anschlüsse sind, damit ich das lcd vernünftig verbinden kann. ich hätte mir mal lieber ´n "normales" lcd kaufen sollen. das ist für mich blutigen anfänger noch ziemlich schwierig da durch zu sehen...
viele grüße rene :slight_smile:

Hallo riiin,
so wie du hab ich auch mal angefangen, es geht aber auch einfacher die Sensoren einzulesen, z.B.

sensors.begin(); sensoranzahl=sensors.getDeviceCount(), DEC;

liest die Anzhal der angeschlossenen Sensoren und die Prozedur

void SensorLesen(){
sensors.requestTemperatures();
Temperatur[0] = sensors.getTempC(Sensor0); Temperatur[1] = sensors.getTempC(Sensor1);
Temperatur[2] = sensors.getTempC(Sensor2); Temperatur[3] = sensors.getTempC(Sensor3);
Temperatur[4] = sensors.getTempC(Sensor4); Temperatur[5] = sensors.getTempC(Sensor5);
}

liest z.B sechs Sensoren ein und speichert die Temperaturen im array Temperatur.
insgesamt 5 Zeilen Code und alles ist erledigt.
Gruß
Bernward