AVR 1-wire Slave mit DS18B20 Temperatursensor

In diesem Projekt fungiert ein ATTINY45 als 1-Wire Slave und verhält sich auf dem Bus wie ein DS18B20. Die Daten des lokal an den ATTINY45 angeschlossenen Temperatursensors werden auf einem ebenfalls lokalen 7-Segment Display angezeigt.

Foto des Prototyps

Der zentrale Punkt der Schaltung ist ein ATTINY45 Controller. Er arbeitet sowohl als 1-Wire Master wie auch als Slave. An den Master Bus ist ein DS18B20 digitales Thermometer angeschlossen. Ein DS18S20 kann ebenfalls genutzt werden. Auf dem Slave Bus agiert der Controller exakt wie der angeschlossene DS18B20. Es sind zwei Schieberegister mit dem Controller verbunden, um eine 3- oder 4-stellige 7-Segment Anzeige anzusteuern. Die aktuelle Firmware steuert 3 Stellen an, kann aber einfach für 4 Stellen angepasst werden.
Der ATTINY45 liest die Temperatur aus dem angeschlossenen DS18B20 in einer Schleife und stellt den aktuellen Wert auf dem 7-Segment Display dar. Für den Sensor wird „parasite power“ genutzt, weshalb eine Messung eine knappe Sekunde dauert. Auf der Slave-Seite steht der letzte Wert aber immer sofort zur Verfügung. Hier ist kein Warten auf das Auslesen notwendig, womit bestehende Systeme eventuell beschleunigt werden können.
Als zusätzliche Funktion kann auf den internen 2048 Bit EEPROM des ATTINY45 mit den Standard-Kommandos für iButtons zugegriffen werden.

Der Quellcode für den ATTINY45 kann hier heruntergeladen werden.

Projektbesonderheiten

  • Anzeige der Temperatur direkt am Sensor
  • kann DS18B20 in bestehenden System ersetzen ohne Änderung der Software
  • verhält sich wie ein Standard-Temperatursensor
  • schnelleres Auslesen, kein Warten auf Messung notwendig
  • interner ATTINY45 EEPROM nutzbar über iButton Protokoll

Das Schaltbild ist zum Download hier verfügbar.

1wire-slave-temperatur-schematics

 

Bekomme Updates per Email

Loading

 

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert