Schaltungen
  • Registrieren

Beitragsseiten

Der MCP3008 ist ein 8 Kanal Analog / Digital Wandler mit einer Auflösung von 10 Bit, welcher mit einer SPI-Schnittstelle ausgestattet ist. Was liegt also näher, die SPI-Schnittstelle unseres Raspberry Pi zu nutzen und damit seine Möglichkeiten um die Wahrnehmung analoger Daten zu erweitern. Das das überhaupt nicht schwierig ist, werden wir in folgender Anleitung erkennen. Der Auto des Buches "Durchstarten mit dem Raspberry Pi", Erik Bartmann, hat uns freundlicherweise seine Pythonscripte und Anleitungen zur Verfügung gestellt, die ab sofort in der Downloadsektion zindensind. Die Scripte funktionieren sowohl mit dem hier vorgestelltem Schaltungsaufbau als auch mit dem von Erik Bartmann.

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