Hallo Ich habe folgendes Problem... Zur Zeit nutze ich ein AVR-NET-IO von Pollin (Teilbestückt) mit einer Software, in der der HexCode der Adresse des Sonsors in die Config eingetragen werden muss. Nun wollte ich ein paar Sachen neu machen und neue Sensoren verwenden. Diese Sensoren habe ich mal an einen Raspberry angeschlossen und bekomme dort eine Adresse in dieser Form "10-0008023f2811" heraus. Nun weiss ich aber leider nicht, wie ich diesen Wert in einen HexCode dieser Form "{0x10,0x10,0x4a,0x90,0x02,0x08,0x00,0x2c}" konvertieren kann. Kennt sich damit jemand aus und kann helfen?? Vielen Dank im Voraus Sky
:
Verschoben durch User
Falsches Forum: Zitat: "Forum: Projekte & Code Hier könnt ihr eure Projekte, Schaltungen oder Codeschnipsel vorstellen und diskutieren. *Bitte hier keine Fragen posten!* " > Diese Sensoren habe ich mal an einen Raspberry > angeschlossen und bekomme dort eine Adresse in dieser Form > "10-0008023f2811" heraus. Wo kommt das raus? Es sollten 8 Bytes (=64 Bit) sein. Da passt diese Zahl nicht. Ansonsten solltest Du ein C- oder wahlweise Python-Lehrbuch in die Hand nehmen.
Der alte Sensor am RasPi würde "2c-000802904a1010" ergeben. Stichwort: Little Endian
Danke erst mal für Eure Antworten... Wenn der Post hier falsch ist, dann bitte ich um Entschuldigung und evtl. könnte das ein Mod mal verschieben. Wenn man am Raspberry das W1 Protokoll aktiviert, hat man dann unter "/sys/bus/w1/devices/..." die erkannten Sensoren mit ihrer Adresse. Ich war/bin der Meinung, das es die Adresse des Sensors ist, die man (konvertiert in HexCode) auch am AVR nutzen kann. Die 4 Sensoren, die ich noch hier rum liegen habe, fangen alle mit "10-0008023f****" an. Leider habe ich mein AVR nur mit den Bauteilen bestückt, die ich auch wirklich benötige, d.h. da fehlt z.B. auch RS232, somit könnt ich noch nicht einmal ein Code-Schnipsel nutzen, welches mir die Adressen über Terminal-Programm und RS232 ausgibt, es sei denn, es gibt etwas über IP-Adresse und Port 23, denn die Ethernet-Schnittstelle hab ich auf dem Board. -> Stichwort: Little Endian ...muss ich mir mal anschauen
> ... alle fangen mit 10- an ...
Sind das ds18S20? Dann ist hex 10 der Family-Code.
Wenn der Sensor, der am NetIO hing, an den RasPi geklemmt wird, was sagt
dieser dann?
Die Sensoren, die derzeit am AVR hängen, sind im "produktiven" Einsatz, d.h. ich will sie da jetzt ungern raus reisen... aber wenn alle Stricke reissen, werd ich sie mal an der Himbeere testen und schauen, wie die Adressen dort aussehen. Ja... die "10-***" steht für den Typ des Sensors (18S20), ein Kumpel von mir hat einen am Raspberry hängen, der mit "28-***" anfängt (18B20). -> http://owfs.sourceforge.net/family.html Vielleicht wäre auch ein kleines Python oder C-Script auf der Himbeere möglich, welches mir die Werte in der benötigten Form auf der Console ausgibt.
Frank W. schrieb: > Die Sensoren, die derzeit am AVR hängen, sind im "produktiven" Einsatz, > d.h. ich will sie da jetzt ungern raus reisen... Der übliche Weg ist, ein baugleiches System für Tests vorzuhalten. Die Investition dürfte sich in Grenzen halten und bei weiteren Tests/Softwareaktualisierung gute Dienste leisten ;-)
Helfer schrieb: > Der übliche Weg ist, ein baugleiches System für Tests vorzuhalten. Die > Investition dürfte sich in Grenzen halten und bei weiteren > Tests/Softwareaktualisierung gute Dienste leisten ;-) An einem "Test-System" scheitert es nicht... hab ja noch ein AVR hier, welches dann zum Einsatz kommen soll... es geht ja eigentlich NUR um den HexCode der Sensoren, welcher in den Programm-Code eingearbeitet werden muss. Aber gut, ich lass mir da was einfallen... ich dachte nur (daher auch meine Frage hier), es gibt da eine einfache Lösung. Trotzdem einen Dank an alle, die sich bemüht haben. Gruß, Frank
So... anbei noch mal ein paar Ausführungen meinerseits, um vlt. auch anderen mit gleichem Problem zu helfen. Ich habe heute mal die Zeit gefunden, oben erwähnte "produktive" Sensoren an den Raspberry zu hängen und bin dabei schon mal einen großen Schritt weiter gekommen. Hier die Erklärung... Im Code vom AVR ist der Sensor folgendermaßen eingepflegt: "{0x10,0x10,0x4a,0x90,0x02,0x08,0x00,0x2c}". Der Raspberry zeigt ihn so an: "10-000802904a10". Man kann also sagen... Der erste Block steht für die Familie und der bleibt in beiden Ausführungen auch an erster Stelle. Die folgenden Blöcke gehen, wie weiter oben schon erwähnt, nach dem "Little Endian" Prinzip, also im AVR-Code in umgekehrter Reihenfolge. Was mir also noch für das AVR fehlte, ist der 8. Block (CRC)... und der kann auf dieser Seite (http://www.tm3d.de/index.php/tools) wunderbar berechnet werden. Ich habe das Ganze verifiziert und die ersten 7. Blöcke eingegeben... es kommt dann als 8. Block "0x2c" heraus. Gruß, Frank
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.