Hallo zusammen,
mein MCP3008 bringt keine sinnvollen Werte, lediglich >> gibt man an CH0 circa > 3 Volt geht die anzeige auf 0.00322 (also den geringsten Wert, sprich 1)
Misst man alle acht Kanaele, so springen (wenn ich an CH0 > 3Volt anlege) CH2 & CH4 & CH6 auf 0.00322 Volt.
Was ich tat:
1.) in der Raspberr< Konfiguration >> SPI enabled und Neustart
2.) git clone https://github.com/Gadgetoid/py-spidev
cd py-spidev
sudo python3 setup.py install
sudo shutdown -r now
(alles dies OHNE FEHLERMELDUNGEN)
3.)
a.)Ich baute ZWEIMAL (jeweils vor dem Anschliessen die Schaltung kontrolliert!) die MCP3008-Schaltung (wie in Kofler, Kuenast & Scherbeck angegeben)
auf:
Pin1=CH0; Pin 9=GROUND verbunden mit Pin 6 des Pi, dem Messeingang und Pin 14; Pin 10(CS/SHDN) an Pin26 des Pi;
Pin11 (DIn) an Pin 19(MOSI) des Pi; Pin12(DOut) an Pin21(MISO) des Pi; Pin13(CLK) an Pin23(SCLK) des Pi; Pin 14 an Pin9 des MCP3008;
Pin15 & 16 an Pin1(3,3V) des Pi
b.) ich tauschte (da ich vier besaß) die MCP3008 mehrfach aus (DImple == Pin1)
c.) Ich schloss einen 10k-Poti an MCP3008>Pin9&Pin1&Pin 16 >> KEINE sinnvolle Einlesung, d.h. Nur bei einer Stellung > 3V auf CH0 (des Potis)
springen CH0&CH2&CH4&CH6 auf 0.00322 Volt und bei weniger Volt wieder auf 0.0 V
4.) Dies versuchte ich an meinem alten Pi3B+ und des gleichen an meinem neuen Pi 4
5.) im /boot/config.txt steht
dtparam=spi=on
Ich schliesse Schaltungsfehler eigentlich aus (vier verschiedene ICs & zweimal Schaltungsaufbau & mehrfache Schaltungskontrolle)
Vielleicht hab' ich mir die falsche Software geladen oder der Code(hier fuer die Einkanal-Anzeige):
#!/usr/bin/python3
import spidev
import time
spi = spidev.SpiDev()
spi.open(0,1)
while True:
antwort = spi.xfer([1,128,0])
if 0 <=antwort[1] <=3:
wert = ((antwort[1] *256) +antwort[2]) * 0.00322
print(wert, " V")
time.sleep(0.2)
ist falsch !?!?
Kann mir bitte jemand helfen, ich hab' keine Idee was das sein koennte und ich brauche AD-Wandlung fuer mein Robo-Projekt.
Vorab Danke
Stierhof