Forum: Mikrocontroller und Digitale Elektronik Gleiches Problem: Temperatursensor


von x86 (Gast)


Angehängte Dateien:

Lesenswert?

Ich bin es langsam leid... es will nicht funktionieren.

Ich hoffe irgendjemand kann mir endlich mal sagen was ich genau tun 
soll... man hat mir nur in Bruchstücken geholfen, was mich aber nicht 
weiter bringt.

Ich fasse nochmal alles zusammen:

Ich besitze einen Temperatursensor mit integriertem AD Wandler, so das 
der Ausgang Digitial ist. Es ist ein 11 Bit serieller Ausgang. Ich 
möchte die Temperatur gerne mit dem Parallel Port meines PC's auslesen.

Meine Pinbelegung war zu erst so:

Sensor                  LPT
---------------------------------
VCC                    PIN2 (D0)
DATA                   PIN3 (D1)
GND                    PIN25 und PIN24 Masse

danach hat mir ein gewisser Phillip empfohlen den DATA PIN des Sensors 
mit PIN13 des LPTs (Select, welcher Input Only ist) zu verbinden. Das 
habe ich dann auch getan. Was mir allerdings "Sorgen" macht ist, das ich 
mit dem DVM an VCC und GND des Sensors als der DATA PIN  mit D1 
verbunden war eine Spannung von 3,68 o.ä. gemessen habe und nachdem ich 
den DATA PIN mit PIN13 (Select) verunden habe, 4,31 messe.  Wobei 
diesmal: U_VCC = U_DATAPIN ist
was vorher nicht der Fall war.

Hier ist die Hardware:

 |---------------|VCC--------R1-1k------------------LPT PIN 2 (D0)
100nF   SENSOR---|DATA------------------------------LPT PIN 13 (Select)
 |---------------|GND-------------------------------LPT PIN 25 und 24
                                                         (Masse)

---> Datenblatt liegt im Anhang.

Da mich der erfahrene Roland darauf hingewiesen hat, das der Ausgang 
immer
nur 1 Bit liefert und ich dann den LPT am jeweiligen PIN 11 mal auslesen 
muss um auf 11 Bit zu kommen, da der Sensor ja einen 11 Bit Ausgang hat.

Also hab ich es mal mit Visual Basic so versucht:

        Dim Val As Integer
        Dim zahl As String = ""
        Dim i As Integer
        Val = Inp(&H379)


        lblTemp.Text = ""
        For i = 0 To 11
            If Val And 2 ^ 4 Then
                zahl = "1"
                lblTemp.Text = lblTemp.Text + zahl

            Else
                zahl = "0"
                lblTemp.Text = lblTemp.Text + zahl
            End If
        Next

Ohne Erfolg... ich gehe davon aus das man das mit dem LPT nicht machen 
kann. Würde es denn mit der seriellen Schnittstelle Funktionieren ? 
Hätte da jemand ein Schaltplan ?

von A.K. (Gast)


Lesenswert?

Der Schaltplan ist nicht dein Problem. Mangelndes Verständnis für die 
Arbeitsweise der Datenübertragung schon eher. Von ZMD gibt es ein 
Dokument, in dem die Datenübertragung beschrieben ist. Einfach 11mal 
hintereinander die Daten auslesen ergibt, wenn schnell genug, wahlweise 
immer den gleichen Wert, oder x-mal den einen, dann (11-x)-mal den 
anderen.

Was du mal versuchen kannst, da du wahrscheinlich keinen Oszi hast: lies 
für die Dauer von einigen zig Millisekunden immer wieder das Bit aus und 
speichere es in ein Array (nicht:Platte, nicht:Bildschirm, da keine 
Pause entstehen sollte). Dann zeige den Inhalt mal mehr oder minder 
grafisch an. Vielleicht fällt dann der Groschen.

Oder: Such mal in Internet nach dem Thema Oszilloskop per Soundkarte. 
Sowas könnte dir auch recht anschaulich weiterhelfen.

von Peter D. (peda)


Lesenswert?

Das Datenblatt ist absoluter Käse, da ist nirgends das Protokoll 
beschrieben.

Du brauchst das hier:

http://www.ist-ag.com/docs/IST%20TSic%20ZACWire%20Digital%20Output%20Spec%20V2.5.pdf


Und dann sollte klar sein, daß das Auslesen mit dem Parallelport 
ziemlich haarig ist.

Ich würde nen ATtiny25 vorschlagen, in den man das Protokoll 
programmiert und dann die Daten z.B. per UART an den PC sendet.


Peter

von x86 (Gast)


Lesenswert?

A.K. Ein Forumuser hat mir gerade dabei geholfen. Das mit deinem 
Vorschlag. Er hat einfach _ und - darstellen lassen. Und es kommen auch 
unterschiedlcihe Darstellungen von _ und - z.b: 
_____----___--------__--- etc...

Danke. Bei dir kann immer mit einer kompetenten Antwort rechnen.

Auch dir ein Dank Peter.

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.