Forum: Mikrocontroller und Digitale Elektronik 40 Stk.Temperatursensoren (DS18S20) mit PIC auslesen


von Armin A. (armin0101)


Lesenswert?

Hallo,

Es geht um folgendes Problem:

Ich muss 40 Temperatursensoren (DS18S20) mit einem PIC auslesen und über 
die serielle Schnittstelle zum PC senden...

Ich hab mir gedacht ich verwende als Bus ONE-WIRE da auch die Sensoren 
ein One-Wire Interface haben.
Zwischen jedem Sensor ist ein Abstand von 50cm.

Jetzt mein Fragen:

--Kann ich überhaupt 40 Sensoren auf diesen Bus hängen (laut Internet 
sogar           - noch viel mehr)
  bzw
--auf was muss ich achten wenn es so funktioniert (z.B.: 
Pullup-Widerstand,   - externe oder parasitäre Versorgung)???

--Wie muss ich am PIC anschliessen?

--Das Programm soll in MPLAB in der Sprache C geschrieben werden:
  Leider bin ich da eine NIETE...
  Ich müsste aber nur wissen wie das Programm aufgebaut ist (Konzept)

Gibt es noch eine andere Möglichkeit dieses Problem zu lösen (I^2C, 
CANBus, ...)

BITTE BITTE helft der kompletten NIETE...

Danke

von Enrock J. (Firma: studi) (enrock)


Lesenswert?

Servus,

also an sich kannst du 40 Temp. Sensoren an den PIC anschließen.

So... Jetzt kommt das Aber.
Ich kenne den DS18S20 nicht und mit 1 Wire kenne ich mich auch nicht so 
gut aus. Du musst für die Kommunikation 40 Adressen vergeben, dann 
kannst du die Sensoren alle an einen Bus anschließen.

Ein PIC bringt aber mehr als nur einen PIN mit, so kannst du die 
Sensoren aufteilen und dir mehrere 1 Wire Bussysteme via Software 
erstellen. Bei 40 x 50 cm hättest du eine Buslänge von 20 Metern. Da 
solltest du auf jeden Fall für Hilfsenergie sorgen. Und die Laufzeit ist 
auch nicht zu vernachlässigen. Die CRC-Sum solltest du verwenden um 
Fehler detektieren zu können. Im Datenblatt sind ganz nette Beispiele 
für die Spannungsversorgung.

I2C schließe ich aus, da die DS18S20 kein 2 Wire Interface bieten.

Was willst du denn eigentlich mit einem 20 Meter langen Thermometer 
messen?

Gruß

von andi (Gast)


Lesenswert?

Hi,

in einer der letzten Elektor-Ausgabe gabs einen Artikel, der genaue das 
beschreibt, was du brauchst.

von Andreas K. (a-k)


Lesenswert?

Daniel Nachname wrote:

> gut aus. Du musst für die Kommunikation 40 Adressen vergeben, dann
> kannst du die Sensoren alle an einen Bus anschließen.

Adressen verwalten ja, Adressen vergeben nein.

> nd die Laufzeit ist auch nicht zu vernachlässigen.

Grob geschätzt etwa 5ms pro Sensor.

Alternativ würde sich hier der DS2482-800 anbieten, der mit I2C 
angefahren bis zu 8 1-Wire Busse implementiert. Falls der Controller 
sonst zu sehr vom 1-Wire-Protokoll belegt ist.

von Andreas K. (a-k)


Lesenswert?

Mehrere Busse sind ggf. sinnvoll um sich elektrische Probleme vom Hals 
zu halten. Je länger der Bus wird und je mehr Devices dran hängen, desto 
interessanter wird die technische Realisierung des Busses und die 
Charakteristik des Bustreibers. Ein Microcontroller-Port ist dafür ohne 
zusätzliche Massnahmen verwendbar aber nicht ideal.

Weniger Aufwand wird es dadurch aber nicht.

von Andreas K. (a-k)


Lesenswert?

Inwieweit "Hilfsenergie" nötig ist, d.h. separate Stromversorgung statt 
parsitärer Versorgung, hängt eher vom Messzyklus als von der Anzahl 
Devices ab. Ein Sensor blockiert während einer parsitär versorgten 
Messung den Bus für 750ms und die Messungen lassen sich dann nicht 
parallelisieren. Mit separater Versorgung können alle parallel die 
Messung durchführen.

von andi (Gast)


Lesenswert?

das Projekt bei Elektro heißt Thermo-Snake

http://www.elektor.de/jahrgang/2008/juni/thermo-snake.497315.lynkx

von Oszi40 (Gast)


Lesenswert?

Hallo Armin,
der große Vorteil eines Bus-Systems ist, daß man weniger Drähte braucht.

Der "kleine" Nachteil könnte aber auch sein, daß ein Fehler den ganzen 
Bus tot legt. Dabei haben wir das dazugehörige Thema Stromversorgung und 
EMV noch nicht näher beleuchtet...

von armin0101 (Gast)


Lesenswert?

Danke für eure Hilfe...
Bin jetzt schon ein ganzes Stück weiter...

gruß Armin

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
Noch kein Account? Hier anmelden.