Die ds1820-IDs werden als 16bit-Wert im Eeprom gespeichert. Die
Weiterverarbeitung der Messwerte erfolgt über die Eeprom-Speicherstelle,
so dass die Id für die Verarbeitung nicht mehr benötigt wird.
Die Verwaltung der IDs im Eeprom geschieht über ein IR-Menu. Nach Aufruf
des Eeprom Menus (Bild) können die Sensoren durch up/down und die
Eeprom-Speicherstellen durch left/right angesprungen werden.
Mit FB-Green werden dann IDs gespeichert - mit FB-Red gelöscht.
Damit muss die ID im Programmcode nicht mehr eingegeben werden.
neue Version:
bug bei mehr als drei Sensoren behoben
Anzeige der eeprom-Werte verbessert
Anzeige von Ir-FB-Werten erleichtert das Anpassen der Fernbedienung
Auch wenn die Resonanz äußerst bescheiden ist, stell ich noch mal eine
neue Version ein. Ich habe mich überzeugen lassen, dass ein Auslesen
mittels match_rom vorzugswürdig ist -
Beitrag "ds1820 Fragen". Also von search_rom
auf match_rom umgestellt. Es müssen jetzt je sensor 2x64bit im rom und
1x64bit im eeprom für die IDs gespeichert werden. Beim m328 aber sicher
kein Problem.
grundschüler schrieb:> Auch wenn die Resonanz äußerst bescheiden ist
Das ist sie möglicherweise deswegen, weil kaum zu verstehen ist, welches
Problem Du hier gelöst hast.
Wozu sollte man IDs von Temperaturfühlern mit einer IR-Fernbedienung
"verwalten"?
Und warum können nicht neben dem Display (dem man sich zum angucken eh'
nähern muss) einfach ein paar Taster angebracht sein, die das gleiche
machen, wie die Tasten Deiner IR-Fernbedienung? Jetzt muss man, so wie
ich Deine knappe Beschreibung verstehe, eigens eine Fernbedienung
verwenden, wenn man sich vor das Display stellt ...
Ich will Dein Projekt nicht madig machen, versteh' mich nicht miss, aber
mir ist schon beim ersten Durchlesen Deiner Beschreibung im Mai nicht
klargeworden, wobei das helfen soll.
Wenn Du beschreiben würdest, wozu das ganze dient (etwas höhere Ebene
als das "Verwalten von IDs"), könnte vielleicht der eine oder andere
feststellen, daß Du genau sein Problem gelöst hast, oder aber ein
interessantes Detail in Deinem Ansatz finden.
Rufus Τ. F. schrieb:> Wozu sollte man IDs von Temperaturfühlern mit einer IR-Fernbedienung> "verwalten"?
Danke für den Beitrag. Wenn du es nicht verstanden hast, liegt es an
meiner Erklärung oder daran, dass ich ein Problem gelöst habe, dass gar
keines ist.
Problemstellung:
Ich habe ein Programm für die MCU, welches z.B. 10Stück ds1820 nach
bestimmten Zuordnungen auswerten soll. Ein Sensor mit eindeutiger ID
misst zum Beispiel die Außentemperatur, ein anderer die
Fußbodentemperatur im Wohnzimmer. Je nach Messergebnis wird irgendwas
vom Programm geschaltet.
An irgendeiner Stelle muss dem Programm mitgeteilt werden, welche ID der
Sensor für die Außentemperatur hat. Ich habe mir bisher immer die ID
anzeigen lassen und den angezeigten Wert ins Programm geschrieben. Das
ist schlecht, denn wenn z.B. ein Sensor getauscht werden muss, muss das
Programm geändert werden. Die IDs müssen also irgendwo abgespeichert
werden. Der Zugriff auf die IDs muss als Zeiger über diese
Speicherstelle erfolgen.
Das bedingt aber dann die Möglichkeit für den Anwender, die Zuordnung
der Speicherstellen über das Programm zu ändern. Man braucht dazu ein
Menu, über das die Sensoren-Hardware dem Speicher zugeordnet werden
kann. Ob das Menu über Taster neben dem Display oder über eine
IR-Tastatur bedient wird ist egal. Wenn ich ein entsprechendes Menu mit
Tastern gefunden hätte, hätte ich mir die Arbeit mit der Fernbedienung
nicht gemacht. Fernbedienung hat den Vorteil, dass ganz viele Tasten zur
Verfügung stehen, mit denen man alles Mögliche machen kann und dass der
Hardware-Aufwand in etwa dem Aufwand für den Einbau nur eines Tasters
entspricht.
Wenn es ein vergleichbares Menu-System schon gibt - ich habe es nicht
gefunden, aber auch nicht besonders danach gesucht - dann wäre
Aufgabenstellung und Lösung sicher überflüssig.
Guten Tag,
nach der Suche nach einem Testgerät für DS18B20 Fühlern bin ich auf
diesen Beitrag gestoßen. Bei Meiner Heizungssteuerung JBR-1 von
Thematronic werden die Fühler ebenfalls nicht an der 64Bit Adresse
unterschieden, sondern an einem für mich noch nicht nachvollziehbaren
System.
Ich würde dieses Projekt gerne nachbauen um die Fühler auszulesen.
Gibt es dazu Schaltpläne und eine Stückliste? Welcher Compiler wurde
verwendet? Ist der m328 ein Arduino m328 Uno?
Herzliche Grüße
Hp. Roth
@ Rothhp (Gast)
>Ich würde dieses Projekt gerne nachbauen um die Fühler auszulesen.
Naja, ich kann ein anderes Projekt anbieten, welches diese Sensoren
ausliest und alle internen Daten anzeigen kann. Es arbeitet mit einem
Arduino deiner Wahl.
Beitrag "Re: Onewire + DS18x20 Library"
Rothhp schrieb:> Bei Meiner Heizungssteuerung JBR-1 von> Thematronic werden die Fühler ebenfalls nicht an der 64Bit Adresse> unterschieden, sondern an einem für mich noch nicht nachvollziehbaren> System.
Der DS18B20 kann auch noch ein paar Nutzerdaten ins EEPROM schreiben,
wenn auch nur zwei Bytes (Byte 2 und Byte 3, Datenblatt S. 7). Die kann
man auch zur Identifizierung nehmen, wenn man das will.
Falk B. schrieb:> Naja, ich kann ein anderes Projekt anbieten, welches diese Sensoren> ausliest und alle internen Daten anzeigen kann.
Der Vorteil bei meinem Projekt ist halt, dass man mittels ir beliebig
Positionen löschen oder umsortieren kann, ohne neu programmieren zu
müssen. Wenn dein Projekt das auch kann, ist meines überflüssig. Ich hab
mir deins natürlich auch angeschaut. Sowas habe ich nicht gefunden.
Rothhp schrieb:> Gibt es dazu Schaltpläne und eine Stückliste? Welcher Compiler wurde> verwendet? Ist der m328 ein Arduino m328 Uno?
Schaltpläne/Stückliste wäre hier oversized. Es braucht einen Uno, einen
ca. 4k-Widerstand als pullup für die ds, einen ir-Empfängerbaustein, ein
i2c-lcd.
Ich habe zwei unos, die miteinander kommunizieren. Der eine sitzt an der
Heizung, steuert diese, misst temperaturen, Stromverbrauch,
Wärmeerzeugung und und überträgt diese Daten an den Uno im Flur der das
ganze graphisch aufbereitet und Schaltbefehle sammelt und weitergibt.
Ich stell den weiterverbesserten code am WE noch einmal in einem
gestrafften Projektordner zusammen und stell ihn hier ein.
Compiler ist winAVR mit aktueller toolchain. Alles andere ist mir zu
langsam. Du kannst den Code aber auch mit jedem anderen Compiler
verwenden, da ich mich inzwischen um Einhaltung der c-Konventionen
bemühe.
@Karl K. (leluno)
>Der Vorteil bei meinem Projekt ist halt, dass man mittels ir beliebig>Positionen löschen oder umsortieren kann, ohne neu programmieren zu>müssen.
Das war gar nicht die Aufgabe.
"Ich würde dieses Projekt gerne nachbauen um die Fühler auszulesen."
hier noch mal eine erheblich geänderte neue Version. IR läuft jetzt über
Interrupt.
Bei Verwendung von D7 für den ds1820 und D2 für den ir-Empfänger müsste
das Projekt auf Anhieb laufen. Angepasst werden müssen natürlich die
Werte für die Tastenbelegung der FB in irint.h.
Benötigt werden
- fb_ok für Aufruf/Schließen des Menus
- fb_up/down zum Selektieren der Sensorposition im eep
- fb_left/right zum Selektieren des Sensors
- fb_raute zum löschen des selektierten eep-werts
- fb_stern zum speicher des selektierten Sensors an der selektierten
eep-Stelle