Forum: Mikrocontroller und Digitale Elektronik MCP3208,Raspberry PI3, Prinzip


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Ben B. (sbmiles21)


Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

ich habe eine prinzipielle Frage bezüglich MCP3208.

Ich habe einen Thermosensor (K-Type), einen Verstärker AD595 und einen 
AD-Wandler MCP3208 zusammen verschaltet. Mein Ziel ist es natürlich die 
Temp. später in einem Python Script einzulesen.

Dies habe ich mit einem "Fertig-Skript" aus dem Netz auch schon gemacht, 
jedoch wird bei Raumtemperatur immer der Wert ~60 ausgegeben(Bei 
Körpertemp. ~100). Frage:Warum 60 und 100?

Ich habe vom AD595 die Ausgangsspannung gemessen und mit dem Datenblatt 
verglichen, alles ok soweit.

Ich vermute ich muss dem MCP3208 noch sagen, welche Analog Spannung, 
welche Temp. ist. Kann das sein? Falls ja sicher im Python Script?Aber 
wo finde ich dann die "Umrechnungsformel"?


Gruss

: Bearbeitet durch User
von Solocan Z. (solocan)


Bewertung
0 lesenswert
nicht lesenswert
Ich@pszczola.eu B. schrieb:
> Ich vermute ich muss dem MCP3208 noch sagen, welche Analog Spannung,
> welche Temp. ist.

Erst mal überprüfen, ob MCP3208 richtig konvertiert und du richtige 
Daten bekommst. Teste das mit einem Multimeter / Netzteil etc.

Wenn alles i.o. ist, teste ob deine Schaltung, von der du uns nicht 
verraten hast, überhaupt richtige Spannungen an MCP3208 anlegt, d.h. 
deine analoge Schaltung richtig funktioniert. z.B. mit einem Multimeter.

Wenn da auch alles i.o, ist wirst du natürlich dem uC sagen müssen, 
welche Spannung welche Temp. ist.

Ich@pszczola.eu B. schrieb:
> Aber
> wo finde ich dann die "Umrechnungsformel"?

Das impliziert, dass du das Datenblatt deines Tempsensors nicht gelesen 
hast. Da stellt sich die Frage, wonach du überhaupt deine Schaltung 
gebastelt hast und wie das dann funktionieren soll. Da steht nämlich 
üblicherweise eine Tabelle von Temperatur zu Widerstand. Danach ist 
eigentlich alles straight forward

von Ben B. (sbmiles21)


Bewertung
0 lesenswert
nicht lesenswert
Solocan Z. schrieb:
> Das impliziert, dass du das Datenblatt deines Tempsensors nicht gelesen
> hast. Da stellt sich die Frage, wonach du überhaupt deine Schaltung
> gebastelt hast und wie das dann funktionieren soll. Da steht nämlich
> üblicherweise eine Tabelle von Temperatur zu Widerstand. Danach ist
> eigentlich alles straight forward

Hallo Solocan,

danke für dein Feedback. Der TempSensor ist ein K-Type. Heisst dazu 
brauche ich einen Verstärker (AD595). Beim AD 595 steht im Datenblatt 
welche Spannung bei Welche Temp. ausgegeben wird. Diese kenne ich und 
diese ist auch nach Datenblatt korrekt (mit Multimeter nachgemessen)

Deine Check Items werde ich durchführen. Mir ging es jedoch prinzipiell 
um die Frage: Von wo weiss der A/D Wandler, welche Spannung am  Analog 
Input, welchen Wert am Digitalausgang ausgeben soll.

Oder habe ich einen Denkfehler? :D

Gruss

: Bearbeitet durch User
von Stefan ⛄ F. (stefanus)


Bewertung
0 lesenswert
nicht lesenswert
Ben B. schrieb:
> Von wo weiss der A/D Wandler, welche Spannung am  Analog
> Input, welchen Wert am Digitalausgang ausgeben soll.

Das ist im Chip hart verdrahtet. Er vergleicht den analogen Eingang mit 
einer Referenz (am Pin Vref) und liefert dementsprechend Zahlenwerte von 
0 bis 1023.

0 entspricht 0 Volt
512 entspricht der Hälfte der Referenz-Spannung
1023 entspricht der Referenz-Spannung

von bingo (Gast)


Bewertung
0 lesenswert
nicht lesenswert
wie hoch ist Vref am MCP3208 ???

von Ben B. (sbmiles21)


Bewertung
0 lesenswert
nicht lesenswert
Danke für die Meldungen.

-Vref, ist auf den 3V Versorgungsausgang vom PI angeschlossen.
-Wenn es hart kodiert ist, dann muss ich es mir selber 
herleiten/empirisch,wie viel Grad es sind?Gibt es dazu keine Formel 
o.ä.?

von Solocan Z. (solocan)


Bewertung
0 lesenswert
nicht lesenswert
Ben B. schrieb:
> Von wo weiss der A/D Wandler, welche Spannung am  Analog
> Input, welchen Wert am Digitalausgang ausgeben soll.

Ein AD-Wandler ist ein "Vergleicher". Du legst eine Spannung an 
Referenzinput (sagen wir 5V) und legst z.B. an den Messkanal 2,5V an. 
Dann vergleicht das AD-Wandler und sagt ok, das ist die Hälfte der 
Referenzspannung und kodiert das in Bits. Dein MCP3208 ist 12bit 
Wandler. Das heißt in Dezimalwerten

0V ist 0
2,5V ist 2048
5V ist 4095

usw.

Das kommuniziert er dann an seinem Digitalausgang als Bits (in deinem 
Fall SPI Protokoll, dazu kannst du in Wiki darüber lesen.)

Wenn am analogen Messkanal die richtige Spannung anliegt und du an 
deinem Mikrocontroller unvernünftige Werte liest, liegt es 
höchstwahrscheinlich an deiner Datenverarbeitung. Du musst ggf. den 
Sensor per SPI richtig konfigurieren und dein Programm dementsprechend 
schreiben. Was und wie du es konfigurieren musst, steht im Datenblatt 
von MCP3208. Dazu musst du ggf. grundlegendes zum SPI Protokoll 
verstehen. Aber trau dich. So schwer ist es nicht, wie es im ersten 
Blick scheint ;)

: Bearbeitet durch User
von Solocan Z. (solocan)


Bewertung
0 lesenswert
nicht lesenswert
Ben B. schrieb:
> dann muss ich es mir selber
> herleiten/empirisch,wie viel Grad es sind?Gibt es dazu keine Formel
> o.ä.?


Ben B. schrieb:
> Beim AD 595 steht im Datenblatt
> welche Spannung bei Welche Temp. ausgegeben wird. Diese kenne ich und
> diese ist auch nach Datenblatt korrekt (mit Multimeter nachgemessen)

Also die Konversion von Temperatur zu Spannung hast du angeblich 
verstanden. Die Konversion von Spannung zu digitalen Werten hast du 
jetzt auch erklärt bekommen. Was für eine Formel brauchst du noch?

von Stefan ⛄ F. (stefanus)


Bewertung
0 lesenswert
nicht lesenswert
Huch, 12 bit. Dann sind die von mir genannten Zahlen (512 für die 
Hälfte, 1023 für die volle Spannung) falsch.

von Ben B. (sbmiles21)


Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

vielen Dank für die Erklärungen. Ich denke ich habe es verstanden. Werde 
nochmal meine Schaltung und mein Verständnis dabei überprüfen :)

Danke

Gruss
ben

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]
  • [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.