Consti9_9
Posts: 27
Joined: Tue Oct 02, 2018 11:47 am

Raspberry Pi MCP3208

Mon Nov 12, 2018 6:14 pm

Hallo zusammen,

mein Problem ist, dass ich eine Strommessung mit einem Stromsensor & dem MCP3208 durchführen will.
Ich hab schon ein Programm geschrieben. Davor habe ich die SPI Schnittstelle installiert und mit

Code: Select all

pip install mcp3208
den MCP3208 installiert.
Jetzt erscheint der Fehler bei dem Startvorgang : No module named MCP3208
Was ist der Fehler?

Code: Select all

from MCP3208 import MCP3208
from spidev import SpiDev
import time
 
class MCP3208:
    def __init__(self, bus = 0, device = 0):    # Hier wird der SPI Bus aktiviert
        self.bus, self.device = bus, device
        self.spi = SpiDev()
        self.open()
 
    def open(self):
        self.spi.open(self.bus, self.device)
    
    def read(self, channel = 0):		# Hier werden die Channels abgefragt
        adc = self.spi.xfer2([1, (8 + channel) << 4, 0])
        data = ((adc[1] & 3) << 8) + adc[2]
        return data
            
    def close(self):
        self.spi.close()

adc = MCP3208()

value0 = adc.read( channel = 0 ) # Channel 0

value1 = adc.read( channel = 1 ) # Channel 1

value2 = adc.read( channel = 2 ) # Channel 2

value3 = adc.read( channel = 3 ) # Channel 3

value4 = adc.read( channel = 4 ) # Channel 4



print("Anliegende Spannung: %.2f" % (value0 / 4096.0 * 3.3) )   # Ausgabe der Spannung

print("Anliegende Spannung: %.2f" % (value1 / 4096.0 * 3.3) )	# Ausgabe der Spannung

print("Anliegende Spannung: %.2f" % (value2 / 4096.0 * 3.3) )	# Ausgabe der Spannung

print("Anliegende Spannung: %.2f" % (value3 / 4096.0 * 3.3) )	# Ausgabe der Spannung

print("Anliegende Spannung: %.2f" % (value4 / 4096.0 * 3.3) )	# Ausgabe der Spannung

smartifahrer
Posts: 828
Joined: Sat Feb 13, 2016 8:10 am

Re: Raspberry Pi MCP3208

Tue Nov 13, 2018 5:00 am

Code: Select all

from mcp3208 import MCP3208

Code: Select all

https://github.com/MomsFriendlyRobotCompany/mcp3208
Beim programieren must du auf die Schreibweise achten! Es gibt Sprachen die das ignorieren und andere die bei der kleinsten Abweichung maulen.
In Python ist die Unterscheidung in Großschreibung und Kleinschreibung wichtig sowie das einrücken!
Eine Suche bei Google hilft ungemein :D So habe ich auch die Lösung für dich gefunden. Obwohl ich mit Python auch noch nicht viel gemacht habe.
PHP-Entwickler, Elektroniker, Technik-Bastler. 5 Raspis mit Rasbian, Retropi und Libreelec.

Consti9_9
Posts: 27
Joined: Tue Oct 02, 2018 11:47 am

Re: Raspberry Pi MCP3208

Tue Nov 13, 2018 8:28 am

Habe es auch mit klein mcp3208 versucht also das ist nicht die Lösung zu dem Problem :?

User avatar
mline
Posts: 1283
Joined: Sun Jan 27, 2013 1:47 pm
Location: Austria, Vienna

Re: Raspberry Pi MCP3208

Tue Nov 13, 2018 8:39 am

Führe mal den Befehl

Code: Select all

echo $PYTHONPATH
aus und schau nach ob die mcp3208 die du mittels pip installiert hast auch in einem der Pfade da liegt. Falls nicht, füge den Pfad hinzu

Code: Select all

export PYTHONPATH="$PYTHONPATH:/pfad/zum/ordner/in/dem/der/ordner/mcp3208/liegt"
<~~>

Consti9_9
Posts: 27
Joined: Tue Oct 02, 2018 11:47 am

Re: Raspberry Pi MCP3208

Tue Nov 13, 2018 8:46 am

Es steht nicht dort wohin es installiert wird kann ich es auch anders installieren?

smartifahrer
Posts: 828
Joined: Sat Feb 13, 2016 8:10 am

Re: Raspberry Pi MCP3208

Tue Nov 13, 2018 9:09 am

Ich habe da noch eine Idee.
Probier mal

Code: Select all

pip3 install mcp3208
Auf dem Raspberry ist Python 2.x und 3.x installiert. pip installiert für Python 2 und du wirst wohl Python 3 verwenden.
https://www.raspberrypi.org/documentati ... /python.md
PHP-Entwickler, Elektroniker, Technik-Bastler. 5 Raspis mit Rasbian, Retropi und Libreelec.

User avatar
mline
Posts: 1283
Joined: Sun Jan 27, 2013 1:47 pm
Location: Austria, Vienna

Re: Raspberry Pi MCP3208

Tue Nov 13, 2018 9:10 am

Ich hab deinen Quelltext mal probiert...

Code: Select all

pi@raspberrypi:~ $ pip install mcp3208
...
pi@raspberrypi:~/Downloads $ python test.py
Traceback (most recent call last):
  File "test.py", line 1, in <module>
    from MCP3208 import MCP3208
ImportError: No module named MCP3208
pi@raspberrypi:~/Downloads $ nano test.py
...
pi@raspberrypi:~/Downloads $ python test.py
Anliegende Spannung: 0.00
Anliegende Spannung: 0.00
Anliegende Spannung: 0.00
Anliegende Spannung: 0.00
Anliegende Spannung: 0.00
pi@raspberrypi:~/Downloads $
Es scheint also, als würde es grundsätzlich klappen wenn man mcp klein schreibt.
<~~>

Consti9_9
Posts: 27
Joined: Tue Oct 02, 2018 11:47 am

Re: Raspberry Pi MCP3208

Tue Nov 13, 2018 9:20 am

Habe versucht pip3 install mcp3208 einzugeben er hat auch wieder etwas installiert.
Jedoch geht es immer noch nicht.

Mline wie hat es bei dir funktioniert erkenne nicht ganz welche Schritte zu gemacht hast

User avatar
mline
Posts: 1283
Joined: Sun Jan 27, 2013 1:47 pm
Location: Austria, Vienna

Re: Raspberry Pi MCP3208

Tue Nov 13, 2018 9:39 am

Die Schritte die ich ausgeführt habe siehst du in dem Codeblock... aber für dich nochmal:

Ich habe die Library mit

Code: Select all

pip install mcp3208
installiert, danach eine neue Datei erstellt

Code: Select all

nano test.py
und den Quelltext den du gepostet hast eingefügt.
Mit

Code: Select all

python test.py
gestartet und folgende Fehlermeldung kam: ImportError: No module named MCP3208.
Also die Datei nochmal geöffnet und aus MCP3208 ein mcp3208 gemacht.
Danach wieder

Code: Select all

python test.py
und es hat geklappt.

Also eigentlich hab ich nix gemacht. Bei dir wurde mcp3208 entweder nicht installiert oder irgendwo wo der User den du nutzt nicht rankommt.
<~~>

Consti9_9
Posts: 27
Joined: Tue Oct 02, 2018 11:47 am

Re: Raspberry Pi MCP3208

Tue Nov 13, 2018 9:41 am

Okay danke somit liegt das an dem Installationsvorgang und nicht an dem Programm.

Consti9_9
Posts: 27
Joined: Tue Oct 02, 2018 11:47 am

Re: Raspberry Pi MCP3208

Tue Nov 13, 2018 12:29 pm

Da ist jetzt die einzelnen Channel auslesen will benötigte ich einen Code der die Werte einzeln ausgeben kann und ich sie einzeln abfragen kann. Ich arbeite im Moment mit dem Beispielcode:

Code: Select all

from mcp3208 import MCP3208
import time

adc = MCP3208()

while True:
        for i in range(8):
                print('ADC[{}]: {:.2f}'.format(i, adc.read(i)))
        time.sleep(0.5)
Gibt es einen Code mit dem ich das besser Programmieren könnte?
Mit dem Code den ich oben gepostet habe funktioniert es nicht -> keine Werte..

Code: Select all

f
rom MCP3208 import MCP3208
from spidev import SpiDev
import time
 
class MCP3208:
    def __init__(self, bus = 0, device = 0):    # Hier wird der SPI Bus aktiviert
        self.bus, self.device = bus, device
        self.spi = SpiDev()
        self.open()
 
    def open(self):
        self.spi.open(self.bus, self.device)
    
    def read(self, channel = 0):		# Hier werden die Channels abgefragt
        adc = self.spi.xfer2([1, (8 + channel) << 4, 0])
        data = ((adc[1] & 3) << 8) + adc[2]
        return data
            
    def close(self):
        self.spi.close()

adc = MCP3208()

value0 = adc.read( channel = 0 ) # Channel 0

value1 = adc.read( channel = 1 ) # Channel 1

value2 = adc.read( channel = 2 ) # Channel 2

value3 = adc.read( channel = 3 ) # Channel 3

value4 = adc.read( channel = 4 ) # Channel 4



print("Anliegende Spannung: %.2f" % (value0 / 4096.0 * 3.3) )   # Ausgabe der Spannung

print("Anliegende Spannung: %.2f" % (value1 / 4096.0 * 3.3) )	# Ausgabe der Spannung

print("Anliegende Spannung: %.2f" % (value2 / 4096.0 * 3.3) )	# Ausgabe der Spannung

print("Anliegende Spannung: %.2f" % (value3 / 4096.0 * 3.3) )	# Ausgabe der Spannung

print("Anliegende Spannung: %.2f" % (value4 / 4096.0 * 3.3) )	# Ausgabe der Spannung

Consti9_9
Posts: 27
Joined: Tue Oct 02, 2018 11:47 am

Re: Raspberry Pi MCP3208

Thu Nov 15, 2018 6:30 pm

Hat jemand eine Antwort für die obige Frage?

Miraculix
Posts: 1
Joined: Fri Nov 16, 2018 8:56 am

Re: Raspberry Pi MCP3208

Fri Nov 16, 2018 8:59 am

hier hat jemand ein ähnliches Projekt:

https://raspi.tv/2013/controlled-shutdo ... -cell-lipo

Return to “Deutsch”