Hallo Zusammen,
kurz vorab, bin ein Neuling was RPi und Python betrifft.
Hab das gleiche Problem. Beschäftige mich schon 3 Tagen damit und komme nicht weiter. Es werden bei mir nur die Nullen angezeigt. Hab schon versucht die Zeile "spi.max_speed_hz = 5000" hinzuzufügen, kommt aber die Fehlermeldung "OSError: [Errno 9] Bad file descriptor".
Hatte mal den MCP3208 aus Versehen auf 5V laufen gelassen. Kann es vielleicht sein, dass die SPI-Pins dadurch beschädigt sind? Hab auch die Pins MISO und MOSI kurzgeschlossen und mit spidev-test (
https://github.com/rm-hull/spidev-test) getestet.
Code: Alles auswählen
spi mode: 0x0
bits per word: 8
max speed: 500000 Hz (500 KHz)
TX | FF FF FF FF FF FF 40 00 00 00 00 95 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF F0 0D | ......@....▒..................▒.
RX | FF FF FF FF FF FF 40 00 00 00 00 95 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF F0 0D | ......@....▒..................▒.
Würde mal sagen das Senden und empfangen funktioniert. Was mich stutzig gemacht hat, sind die komischen Zeichen nach dem @.
Code: Alles auswählen
#!usr/bin/python3
import time
import spidev
spi=spidev.SpiDev()
#spi.max_speed_hz = 5000
spi.open(0,1)
poti_channel=0
fotopoti_channel=1
def ReadChannel(channel):
adc = spi.xfer2([ 6 | (channel&4) >> 2, (channel&3) << 6, 0])
data = ((adc[1]&15) << 8) + adc[2]
return data
while True:
poti_data=ReadChannel(poti_channel)
fotopoti_data=ReadChannel(fotopoti_channel)
time.sleep(0.01)
print("--------------------------------------------")
print("Wert für Strom 0-4096 ist: {}".format(poti_data))
print("Wert für Fotowid.Strom 0-4096 ist: {}".format(fotopoti_data))
time.sleep(1)
Hab RPi 2, an Channel 0 habe ich Poti und an Channel 1 habe ich ein Fototransistor. Verkabelung mehrmals kontrolliert, falls notwendig kann ich ein Foto davon machen.
Würd mich freuen wenn jemand mir helfen könnte. Danke im Voraus. Schöne Grüße