Forum: Mikrocontroller und Digitale Elektronik DS18B20 an Arduino


von Hans (Gast)


Lesenswert?

Ich weiß, dass es hierzu unzählige Beiträge gibt. Leider habe ich alles 
versucht und nichts hat funktioniert.

Gekauft habe ich diese : http://www.ebay.de/itm/122233116124

Jetzt habe ich schon mehrere Stunden versucht aber es läuft immer darauf 
hinaus, dass kein Device gefunden wird oder keine Adresse abrufbar ist 
etc.

Ich habe verschiedenste Programme getestet (auch die Beispiel codes der 
jeweiligen Bibliotheken) unterschiedliche Widerstände, andere Pins und 
auch mehrere Nanos. Schön langsam glaube ich, dass die Sensoren defekt 
sind.... aber gleich 5 stück ?

Bin mit meinem Latein grad ein wenig am Ende.... kann mir da jemand ein 
paar Tipps geben?

Das war eine der Anleitungen die ich getestet hatte :
https://www.hacktronics.com/Tutorials/arduino-1-wire-tutorial.html


Grüße

von pullup (Gast)


Lesenswert?

Nimm mal ein kleineren Pullup, 1wire ist da manchmal empfindlich.

von Hans (Gast)


Lesenswert?

Hab shon alles zwischen 1k und 10k versucht.

von Hans (Gast)


Lesenswert?

habe es gerade so wei in deisem Video versucht:
https://www.youtube.com/watch?v=1GD29sXLOJ0

Leider bekomme ich nur -127 zurück.


1
#include <DallasTemperature.h>
2
3
#include <OneWire.h>
4
5
6
7
OneWire oneWire(2);
8
9
DallasTemperature sensors (&oneWire);
10
11
12
void setup() {
13
14
sensors.begin();
15
Serial.begin(9600);
16
}
17
18
void loop() {
19
20
sensors.requestTemperatures();
21
float currentTemp;
22
currentTemp = sensors.getTempCByIndex(0);
23
24
Serial.println(currentTemp);
25
delay(2000);
26
27
}

von Wilhelm M. (wimalopaan)


Lesenswert?

Ich habe zwar keine Ahnung von den Arduino-Bibliotheken, aber:

zwischem den Convert-Befehl an den Seonsor (requestTemperatues 
vermutlich) und dem Lesen des Scratchpads des Sensors muss einen 
bestimmte Zeitspanne liegen (bis zu 750ms bei hoher Genauigkeit). 
Deswegen muss da vermutlich ein delay dazwischen.

Das Lesen von 1-en (Wert 127) deutet auf einen busy-status des Sensors 
hin.

Aber wie gesagt: Vermutung, da ich die Arduino- Bibs nicht kennen.

von W.A. (Gast)


Lesenswert?

Hans schrieb:
> Leider habe ich alles versucht und nichts hat funktioniert.

Dann ist vielleicht bei deinem Aufbau etwas falsch oder dein Sensor ist 
defekt. Es gibt definitiv genug DS18B20, die mit Arduinos laufen.

von Wilhelm M. (wimalopaan)


Lesenswert?

Wilhelm M. schrieb:
> Ich habe zwar keine Ahnung von den Arduino-Bibliotheken, aber:
>
> zwischem den Convert-Befehl an den Seonsor (requestTemperatues
> vermutlich) und dem Lesen des Scratchpads des Sensors muss einen
> bestimmte Zeitspanne liegen (bis zu 750ms bei hoher Genauigkeit).
> Deswegen muss da vermutlich ein delay dazwischen.
>
> Das Lesen von 1-en (Wert 127) deutet auf einen busy-status des Sensors
> hin.
>
> Aber wie gesagt: Vermutung, da ich die Arduino- Bibs nicht kennen.

Jetzt war ich zu langsam zum Bearbeiten:

wollte noch hinzufügen: bekommt man bei Arduino keine Fehlercodes o.ä.?

von Kai A. (kaiand1) Benutzerseite


Lesenswert?

Aus deinen Link
1
Navigate to the "arduino_ds18b20_temperature_sensor" folder and select the "arduino_ds18b20_temperature_sensor.pde” file.
2
 
3
Now you need to identify your individual DS18B20 sensors by their serial numbers.  Luckily we have provided a tutorial for you here.
4
 
5
After you include the addresses of your sensors in the sketch, transfer the program to your Arduino by clicking the “Upload to I/O board” button. After uploading, open the Arduino serial monitor by clicking Tools->Serial Monitor.
Hast du das gemacht mit der ID zuweisung?
Im Beispiel werden 3 Sensoren verwendet und hast du auch 3 oder die 
Anzahl der Sensoren Angepasst?
In deiner Vorgabe gibts du dazu nichts an.

von Planlos (Gast)


Lesenswert?

Hast du einen Transistor-Tester o.Ä.?

Beitrag "China Schrott - NPN Transistor als DS18B20 verkauft"

von Klaus (Gast)


Angehängte Dateien:

Lesenswert?

@Hans

Hab hier was gefunden,das wunderbar
funktioniert auch mit mehreren Sensoren.

Lade dir die Library von folgender Seite.
https://github.com/PaulStoffregen/OneWire

Du musst diese Lib als Zip herunterladen und
unter dem Reiter "Sketch" die Bibliothek einbinden.

Benutze dann das Programm im Anhang.

von pullup (Gast)


Lesenswert?

Das mit dem 750ms warten zwischen request und auslesen stimmt, die muss 
man ihm lassen. Bei der Bibliothek die ich benutzt hab konnte man wählen 
ob das die Bib machen sollte (und das Programm solange stehen bleibt) 
oder sie nicht aufs Timing achtet und einfach weiterläuft (und man das 
Timing selber machen muss).

von Falk B. (falk)


Lesenswert?


Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.