40 Stk.Temperatursensoren (DS18S20) mit PIC auslesen

OP #887114
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
(Firma: studi) #887428
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ß
#887520
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.
#887529
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.
#887537
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.
Gast #887828
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...

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren