Schaltungen
  • Registrieren

Beitragsseiten

Werte auslesen

Zum Auslesen der Werte müssen wir nun unser Pythonscript starten. Um es auf den Raspberry Pi zu bekommen könnten wir es abtippen und speichern. Einfacher ist jedoch der download des fertigen Scriptes aus der Scriptsammlung von Erik Bartmann. Die Sammlung findet Ihr in der Downloadsektion unter Experimente zu finden. Den Speicherort sollten wir uns merken. Jetzt suchen wir den Ordner in dem die Datei gespeichert ist mit dem Dateimanager. Mit einem Rechtsklick auf den Ordner kommen wir mit dem Menüpunkt "Im Terminal öffnen" direkt in ein neu geöffnetes Terminal und sind sofort bereit, das Script dort auszuführen. Dies tun wir mit:

python mcp3008_lesen.py

Das Script sollte nun laufen. Es könnte den ein oder anderen Hinweis geben, dass bestimmte GPIOs bereits genutzt werden. Das liegt daran, dass wir unter Umständen schon andere Experimente durchgeführt haben und die Pins nicht freigegeben sind. Das Script übersteuert dies jedoch und wir sollten eine Folge von Werten sehen, die sich beim drehen des Potis ändert. Idealtypisch können wir den Wert nun mit dem Poti von 0 bis 1023 regeln. So könnte es aussehen:

0
0
0
50
57103
268
551
1023
712
305
71
0
0
...

Ich habe das Poti also mehr oder weniger schnell hin und her gedreht. Tolle Sache, aber der Raspberry Pi läuft und läuft und läuft und ...

Mit Strg + C benden wir den Zauber. Das ist ein typischer Befehl im Terminal zum Abbruch eines Programms. Strg + Q ist ebenso gebräuchlich.

Das ganze könnten wir nun auf 8 Kanäle ausdehnen und anstelle der Anzeige alles Mögliche steuern und regeln. Also ein sehr sinnvoller Chip, dieser MCP3008!

 

 

Kommentare   

+1 #35 Jörg Neumann 2018-08-14 19:41
Du kannst an den Eingang einen Spannungsteiler legen, um dort höhere Spannungen messen zu können. Der MCP wird dann mit Vcc 3V3 betrieben.
Zitieren
0 #34 Cora 2018-08-14 16:08
Hallo,

danke für diese Anleitung! Ich möchte einen CO2-Sensor (www.dfrobot.com/.../) an den MCP3008 anschließen. Dieser wird allerdings mit 5 V betrieben und gibt diese auch weiter. Der MCP3008 verträgt das, die GPIOs des Raspberry Pi allerdings nicht. Was muss man da dazwischen schalten?
Vielen Dank im Voraus!
Zitieren
0 #33 JoergZ 2017-11-18 18:49
Nochmals besten Dank. Könntest du bitte auch noch ein paar Werte und/oder Typbezeichnunge n ergänzen?
Zitieren
0 #32 Jörg Neumann 2017-11-17 20:35
Ich habe mal eine grundsätzliche Schaltung in unserem Downloadordner abgelegt:
Zitieren
-1 #31 JoergZ 2017-11-17 15:33
@Jörg Neumann
Danke! Habe so etwas befürchtet. Habe nicht wirklich Ahnung von Elektr(on)ik. Hast du vielleicht einen Tipp, wo ich eine solche Schaltung finden kann, die ich als größter anzunehmender Amateur nachbasteln kann.
Zitieren
-1 #30 Jörg Neumann 2017-11-17 12:12
@JörgZ: Die obige Schaltung ist für einen Spannungsteiler (in unserem Fall ein Potentiometer) ausgelegt. Der sorgt dafür, dass je nach Stellung das Verhältnis der beiden Teilwiderstände je nach Stellung eine Spannung von 0 - 3V3 am Eingang anliegt. Das ist eine absolute Minimalbeschalt ung. Das bekommt man auch nicht mit einem einzelnen Widerstand hin. Da musst du wohl oder übel eine Schaltung (im einfachsten Fall einen Transistor mit einem Widerstand und deinem Sensor als Spannungsteiler an der Basis) davorsetzten.
Zitieren
0 #29 JoergZ 2017-11-16 18:31
@Jörg Neumann
Das Skript befindet sich auf dieser Seite weiter oben. Und die Schaltung ist die, die in diesem Blogeintragung unter dem Menü Schaltung zu finden ist. Der Spanungsabfall ist sehr gering. Er macht sich erst an der 3. bzw. 4. Stelle hinter dem Komma bemerkbar, jedenfalls nach Berechnungen nach dem Ohmschen Gesetz. Ausgehend von den 3,3 V müssten Spannungen von 3,2953 V für 707 Ohm und 3,2980 für 1690 Ohm anfallen. Leider kann ich mangels ausreichend auflösendem Messgerät das nicht nachprüfen. Bezogen auf die Schaltung gehen die 3,3 V an den Widerstand und der "Ausgang" des Widerstands geht auf den PIN für den Channel 0 des MCP3008. Das ist doch analog zum Poti aus der Schaltung, oder?
Zitieren
0 #28 Jörg Neumann 2017-11-16 10:12
zitiere JoergZ:
Ich möchte einen simplen Temperaturfühler anschließen (2-Draht), der Ohmwerte zwischen 707 bei -14,4 Grad und 1690 bei 100 Grad Celsius liefert. Die Charakteristik ist linear (mit weiteren Werten ermittelt). Wenn ich diesen Widerstand mit dem Python-Skript auslese, bekomme ich nur Werte zwischen 1023 und 1021. Und es ändert sich nicht, wenn ich den Sensor aufheize oder abkühle. Es pendelt immer um diese Werte. Sind die Widerstandsunterschiede zu gering, um "verwertbare" Digitalwerte zu liefern? Kann ich da was tun?


Am analogen Eingang werden Spannungen gemessen und mit der Referenzspannun g am MCP verglichen. du musst deine Schaltung also so aufbauen, dass du einen Spannungsabfall am Eingang in diesem Bereich hast. Es liegt also eher an der Schaltung als am Phytonscript. Evtl kannst Du das benutzte Script und Deine Schaltung in unserem Forum zeigen, um dort weitere Informationen zu erhalten.
Zitieren
0 #27 JoergZ 2017-11-16 08:43
Ich möchte einen simplen Temperaturfühle r anschließen (2-Draht), der Ohmwerte zwischen 707 bei -14,4 Grad und 1690 bei 100 Grad Celsius liefert. Die Charakteristik ist linear (mit weiteren Werten ermittelt). Wenn ich diesen Widerstand mit dem Python-Skript auslese, bekomme ich nur Werte zwischen 1023 und 1021. Und es ändert sich nicht, wenn ich den Sensor aufheize oder abkühle. Es pendelt immer um diese Werte. Sind die Widerstandsunte rschiede zu gering, um "verwertbare" Digitalwerte zu liefern? Kann ich da was tun?
Zitieren
0 #26 Technik4You 2017-03-05 16:27
Hier auch was interessantes
www.youtube.com/.../
Zitieren

Warenkorb

0 Produkte - 0,00 EUR
Zum Warenkorb

Neue Produkte

miniUSB Verbindungskabel 15cm (Artikelnummer: MINIUSB15CM)
0,65 EUR
Raspberry Pi 3 Modell B+ (Artikelnummer: RASPI3BPLUS)
36,50 EUR
Acrylgehäuse NanoPi NEO AIR (Artikelnummer: GEHNANOPINEOAIR)
5,50 EUR
3D Druck Gehäuse NanoPi NEO (Artikelnummer: GEHNANOPINEO)
4,50 EUR
NanoHat Proto (Artikelnummer: NANOHATPROTO)
7,45 EUR