ich habe eine Frage zu meinem aktuellen Projekt. Ich habe ein fertiges Python Programm, welches mir eine GUI erzeugt. Mithilfe dieser kann ich das analoge Signal eines Messgerätes in ein digitales Umwandeln und in einer Textdatei speichern (AD-Wandler MCP3008). Hierzu verwende ich folgenden Code:
Code: Alles auswählen
def getKraftwert(self, AdCh, CLKpin, DINpin, DOUTpin, CSpin):
GPIO.output(CSpin, HIGH)
GPIO.output(CSpin, LOW)
GPIO.output(CLKpin, LOW)
cmd = AdCh
cmd |= 0b00011000
for i in range(5):
if (cmd & 0x10):
GPIO.output(DINpin, HIGH)
else:
GPIO.output(DINpin, LOW)
GPIO.output(CLKpin, HIGH)
GPIO.output(CLKpin, LOW)
cmd <<= 1
AdChValue = 0
for i in range(11):
GPIO.output(CLKpin, HIGH)
GPIO.output(CLKpin, LOW)
AdChValue <<= 1
if(GPIO.input(DOUTpin)):
AdChValue |= 0x01
return AdChValue
Ich muss gestehen, dass ich diesen Code nicht zu 100% verstehe, da ich diesen einfach im Internet gefunden habe. Ich habe dazu folgende Probleme. Dieser ist für einen 8-Bit Wandler wie meinen ausgelegt. Meine Werte die ich digital auswerte, haben Schwankungen wenn eine Konstante Spannung anliegt. Der digitale Wert schwankt dann um ca +-3. Ich denke das ist aber relative normal, oder ?
Aber nun zum Hauptproblem. Wenn das Messgerät auf 0 steht und nichts misst, dann ist der Wert vom AD-Wanlder bei ca 511. Aber zwischendurch habe ich Werte vom 200 oder 700 in meiner Textdatei aufgenommen. Ich verwende Abtastungen von 0,01-0,05 Sekunden. Ist dieses zu schnell? Meine GUI zeigt auch ein LIVE-Wert an. Dieser Tastet mit 0,2 Sekunden ab. Dort habe ich dieses augenscheinlich nicht.
Eine weitere Frage habe ich noch. Ich habe einen 16-Bit AD-Wandler bestellt um noch genauer aufzulösen. Muss ich den Code deswegen verändern? Ich habe dann ja statt 1023 auch ca. 65000 mögliche Digitalwerte?
Vielen Dank im voraus

LG Donald