Hallo Jungs, so nun habe ich mein altes Projekt mit dem MCP3008 wieder ausgegraben!
Nun habe ich das Skript wieder vom Herrn Bartmann rausgegraben und folgenden Source hier.
http://erik-bartmann.de/component/atta…ownload/21.html
Code
import time
import RPI.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
HIGH = True # HIGH - Pegel
LOW = False # LOW - Pegel
# Funktionsdefinition
def readAnalogData(adcChannel, SCLKPin, MOSIPin, MISOPin, CSPin):
# Pegel vorbereiten
GPIO.output(CSPin, HIGH)
GPIO.output(CSPin, LOW)
GPIO.output(SCLKPin, LOW)
sendcmd = adcChannel
sendcmd != 0b00011000 #Entspricht 0x18 (1:Startbit, 1:Single/ended)
# Senden der Bitkombination (Es finden nur 5 Bits Beruecksichtigung)
for i in range(5):
if (sendcmd & 0x10): # (Bit an Position 4 pruefen. Zaehlung beginnt bei 0)
GPIO.output(MOSTPin, HIGH)
else:
GPIO.output(MOSIPin, LOW)
# Negative Flanke des Clocksignals generieren
GPIO.output(SCLKPin, HIGH)
GPIO.output(SCLKPin, LOW)
sendcmd <<= 1 #Bitfolge eine Position nach links schieben
# Empfangen der Daten des ADC
adcvalue = 0 # Ruecksetzen des gelesenen Wertes
for i in range(11):
GPIO.output(SCLKPin, HIGH)
GPIO.output(SCLKPin, LOW)
adcvalue <<= 1 # 1 Position nach links schieben
if(GPIO.input(MISOPin)):
adcvalue != 0x01
time.sleep(0.5)
return adcvalue
#Variablendefinition
ADC_Channel = 0 # Analog/Digital-Channel
SCLK = 10 # Serial-Clock
MOSI = 24 # Master-Out-Slave-In
MISO = 23 # Master-In-Slave-Out
CS = 25 # Chip-Select
# Pin-Programmierung
GPIO.setup(SCLK, GPIO.OUT)
GPIO.setup(MOSI, GPIO.OUT)
GPIO.setup(MISO, GPIO.IN)
GPIO.setup(CS, GPIO.OUT)
while True
print readAnalogData(ADC_Channel, SCLK, MOSI, MISO, CS)
Alles anzeigen
Das Skript bringt mir aber ein Fehler in adcvalue. Aber warum? Fehlermeldung: IndentationError: unindent does not match any outer indentation Level (line 31)
Ich verstehe auch nicht warum von adcChannel das ganze umschwenkt auf adcvalue.
Kann mir jemand helfen? Wäre um jeden Schnipsel Erklärung sehr Dankbar.