Codesys und Raspberry PI: Problem mit Onewire Beispielprogramm und ds18b20

Jimbo200

Level-1
Beiträge
7
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
wenn ich das Programm starte, erscheint beim DS18B20 ein rotes Dreieck und beim Status steht "1-wire bus : Kein trieber gefunden".
Bei der Visualisierung steht in der Tabelle 28-0215535ab4ff, die Lampe ist aus und die Temperatur beträgt 0°C.
Ich hab es davor ohne Probleme zum laufen bekommen, aber als ich es ein paar studen später erneut probiert habe kam dieser Fehler.
Könnte der ds18b20 defekt sein?
 
Hallo,

ist der onewire master noch grün im Gerätebaum?
du kannst mal mit ssh (putty) dich auf dem Pi einloggen und dann in folgendes Verzeichnis schauen
'/sys/devices/w1_bus_master1/'
hier musst du dann irgendwo auch ein Verzeichnis bzw eine Datei finden die wie deine Slave ID heißt: 'XX-AABBCCDDEEFF' und darin dann z.B
Beispiel:
sys/bus/w1/devices/28-041500634aff $ cat w1_slave

6a 01 55 00 7f ff 0c 10 85 : crc=85 YES
6a 01 55 00 7f ff 0c 10 85 t=22625
Einfach googeln wie man die Sensoren über die Linux console ausließt um zu prüfen ob die generell gehen.
Vielleicht noch im CODESYS Projekt schauen on GPIO4 nicht durch was anderes belegt ist falls du GPIO'S in CODESYS verwendest.

Wenn die hier nicht gehen dann Verkabelung und den Wiederstand checken, wobei wenn es schon mal funktioniert hat und du an der Verkabelung nichts geändert hast
ist das schon komisch.

Grüße
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo danke für die Antwort. Die Ausgabe lautet:
pi@raspberrypi ls /sys/devices/w1_bus_master1/
00-aabbccddeeff w1_master_add w1_master_remove
28-0004442100ff w1_master_attempts w1_master_search
28-0215535ab4ff w1_master_max_slave_count w1_master_slave_count
driver w1_master_name w1_master_slaves
subsystem w1_master_pointer w1_master_timeout
uevent w1_master_pullup

pi@raspberrypi /sys/devices/w1_bus_master1/00-aabbccddeeff $ cat w1_slave
cat: w1_slave: No such file or directory

pi@raspberrypi /sys/devices/w1_bus_master1/28-0004442100ff $ cat w1_slave
ff ff ff ff ff ff ff ff ff : crc=c9 NO
58 01 80 80 1f ff 80 80 f8 t=-62

pi@raspberrypi /sys/devices/w1_bus_master1/28-0215535ab4ff $ cat w1_slave
50 01 80 80 1f ff 80 80 d2 : crc=d2 YES
50 01 80 80 1f ff 80 80 d2 t=21000

Grüße
 
Ich habe es jetzt mal mit einem neuen Sensor probiert. Jetzt ist alles grün im Gerätebaum, nur leider wird mir konstant eine Temperatur von 0°C angezeigt.
 
Habe es doch wieder zum Laufen bekommen :D Habe die Lösung ja fast schon in meiner ersten Antwort gepostet. Anscheinend hat sich die ID von dem Sensor wie auch immer von 28-0004442100ff auf 28-0215535ab4ff geändert. Habe dass dann auch so in Codesys vorgenommen und die Temperatur wurde direkt wieder angezeigt Somit scheint der alte Sensor in Ordnung zu sein. Der neue scheint nicht erkannt wurden zu sein da er ja nicht mal in der Linux Konsole angezeigt wurde. Aber wie entsteht der Eintrag von 28-0004442100ff wenn nur ein Sensor angeschlossen ist?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi,
sehr komisch... du könntest falls die Sensoren sich "dynamisch" ändern mit folgendem snippet (das passt zu dem Beispiel welches mit ausgeliefert wird)f
anpassen.. d.h es muss funktionieren wenn du einen anderen Sensor verdrahtest das der erkannt wird und eben auch ohne neuen neuen download die Sensordaten
von diesem Sensor mit neuer ID ließt. (wie gesagt ergänze die Zeile in dem Beispiel welches mit dem Package kommt)

DS18B20.ID :=Onewire_master.pasScannedDevices^[0];



 
Hallo,
es funktioniert jetzt alles ohne Probleme. Die Sensor ID's haben sich doch nicht geändert, ich habe mich nur geirrt :D
Nochmals danke für die Hilfe
 
Hallo!
Ich habe auch ein sehr merkwürdiges Problem mit meinen Ds18B20. Wenn ich den raspberry mit angeschlossenem Pullup starte werden zwei Sensoren gefunden (obwohl nur einer angeschlossen ist) und es lässt sich keiner auslesen.
Wenn ich den raspberry ohne Pullup starte wird der Sensor richtig gefunden, liefert jedoch falsche Messwerte.
Die einzige Möglichkeit dass ich an die Temperatur komme ist, dass ich ohne Pullup starte und während des Betriebs den Pullup wieder einfügen. Ich hoffe ihr könnt mir helfen, habe bereits alles versucht...
 
Hallo,
was steht in /boot/config.txt ?
dtparam=i2c_arm=on
dtparam=spi=on
dtoverlay=w1-gpio-pullup,pullup=1

des muss eben zu pullup oder eben nicht passen denke ich.
Grüße
 
Danke für die schnelle Antwort!
Ich denke ich habe bereits alle möglichen Kombinationen, die ich im Internet gefunden habe getestet (auch deaktivieren dieses dtoverlays), aber ich versuche es noch einmal kurz versuchen, um sicher zu gehen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
OK, habe es noch einmal so eingestellt:



pi@raspiSPS:~ $ /sys/bus/w1/devices
-bash: /sys/bus/w1/devices: Is a directory
pi@raspiSPS:~ $ cd /sys/bus/w1/devices
pi@raspiSPS:/sys/bus/w1/devices $ ls
28-000005482cd2 28-0004442100ff w1_bus_master1
pi@raspiSPS:/sys/bus/w1/devices $ cd 28-000005482cd2
pi@raspiSPS:/sys/bus/w1/devices/28-000005482cd2 $ cat w1_slave
7b 01 4b 46 7f ff 05 10 1d : crc=1d YES
7b 01 4b 46 7f ff 05 10 1d t=23687
pi@raspiSPS:/sys/bus/w1/devices/28-000005482cd2 $ cd /sys/bus/w1/devices/28-0004442100ff
pi@raspiSPS:/sys/bus/w1/devices/28-0004442100ff $ cat w1_slave
ff ff ff ff ff ff ff ff ff : crc=c9 NO
00 00 00 00 00 00 00 00 00 t=-62
pi@raspiSPS:/sys/bus/w1/devices/28-0004442100ff $

Habe vorher immer gedacht, dass 28-0004442100ff der richtige Sensor ist und immer nur versucht diesen auszulesen.
Merkwürdig ist nur noch warum zwei angezeigt werden.
 
Zurück
Oben