mikrocontroller.net

Forum: Projekte & Code ds1820 - Eeprom id-Verwaltung mittels IR


Autor: grundschüler (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Martin K. (maart)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok.

Autor: grundschüler (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
neue Version:

bug bei mehr als drei Sensoren behoben
Anzeige der eeprom-Werte verbessert
Anzeige von Ir-FB-Werten erleichtert das Anpassen der Fernbedienung

Autor: grundschüler (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Rufus Τ. F. (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Beitrag #5070399 wurde von einem Moderator gelöscht.
Autor: grundschüler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Rothhp (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Falk B. (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ 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"

Autor: Max G. (l0wside) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Karl K. (leluno)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Falk B. (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@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."

Autor: grundschüler (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.