Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

MCP3008 ADC zum Auslesen analoger Sensoren mit Raspberry Pi nutzen

Das Anschließen analoger Sensoren an einen Raspberry Pi kann herausfordernd sein, da die GPIO-Pins des Pi nur digital sind. Eine kostengünstige Lösung ist der MCP3008, ein 8-Kanal 10-Bit Analog-Digital-Wandler, der direkt in den SPI-Bus des Pi gesteckt wird und keine zusätzlichen Komponenten erfordert.

In diesem Leitfaden gehen wir durch das Verdrahten eines MCP3008 an einen Raspberry Pi, das Anschließen eines lichtabhängigen Widerstands (LDR) und eines TMP36 Temperatursensors sowie das Auslesen der Daten mit einem einfachen Python-Skript.

Was Sie benötigen

SPI auf dem Pi aktivieren

Die SPI-Schnittstelle ist standardmäßig deaktiviert. Folgen Sie den Schritten in Aktivieren der SPI-Schnittstelle auf dem Raspberry Pi, um SPI zu aktivieren und die spidev Python-Bibliothek zu installieren.

Schaltungsverbindungen

Der MCP3008 benötigt vier GPIO-Pins am 40-Pin-Header des Pi. Verbinden Sie die folgenden Pins (Pinnummern beziehen sich auf die Header-P1-Nummerierung):

VDD 3.3V
VREF 3.3V
AGND GROUND
CLK GPIO11 (P1-23)
DOUT GPIO9 (P1-21)
DIN GPIO10 (P1-19)
CS GPIO8 (P1-24)
DGND GROUND

Jeder der CH0–CH7 Pins am MCP3008 wird zu einem analogen Eingang. Im Beispiel unten nutzen wir CH0 für den LDR und CH1 für den TMP36; die verbleibenden sechs Kanäle bleiben für zukünftige Sensoren frei.

Lichtabhängiger Widerstand (LDR)

Der Widerstand des LDR fällt bei hellem Licht auf etwa 10 kΩ und steigt in Dunkelheit auf mehrere Megaohm. Durch Bildung eines Spannungsteilers mit einem 10 kΩ Widerstand liest der MCP3008 eine Spannung, die bei Beleuchtung gegen 0 V und in Dunkelheit gegen 3,3 V geht.

TMP36 Temperatursensor

Der TMP36 ist ein 3-Pin analoger Temperatursensor. Versorgen Sie ihn mit 3,3 V und lesen Sie seinen VOUT Pin. Der Sensor gibt 0,750 V bei 25 °C aus, mit einer linearen Steigung von 10 mV pro °C. Somit ergibt 0 °C 0,500 V und 100 °C 1,500 V.

Daten mit Python auslesen

Der MCP3008 gibt 10-Bit-Werte von 0 bis 1023 aus, die linear auf 0 V–3,3 V abgebildet sind. Für den TMP36 entspricht dies einem Temperaturbereich von ca. –50 °C bis +280 °C.

Unten ist ein minimales Beispiel mit der spidev Bibliothek zum Auslesen der Kanäle 0 und 1:

import spidev
import time
spi = spidev.SpiDev()
spi.open(0, 0)  # Bus 0, Device 0
spi.max_speed_hz = 1350000
def read_channel(channel):
    # MCP3008 Protokoll: Startbit, Single/Diff, Channel (3 Bits), 5 Dummy Bits
    adc = spi.xfer2([1, (8 + channel) & 0x0F << 4, 0])
    data = ((adc[1] & 3) << 8) + adc[2]
    return data
while True:
    ldr_val = read_channel(0)
    temp_val = read_channel(1)
    temp_c = (temp_val * 3.3 / 1023) * 100 - 50  # In °C umrechnen
    print(f'LDR: {ldr_val}, Temp: {temp_c:.2f}°C')
    time.sleep(1)

Ersetzen Sie die Kanalnummern nach Bedarf für Ihr Sensor-Layout. Das Skript gibt kontinuierlich den rohen ADC-Wert für den LDR und die berechnete Temperatur in Grad Celsius aus.

Mit diesem Setup können Sie zusätzliche analoge Sensoren – wie Photodioden, Druckwandler oder Feuchtesonden – hinzufügen, indem Sie sie an die verbleibenden CH2–CH7 Pins anschließen und den Python-Code entsprechend erweitern.

Happy Hacking!

Herstellungsprozess

  1. Raspberry Pi Temperaturlogger mit 5 $ I2C Sensor bauen
  2. Präzises Raspberry Pi Temperaturprofiling mit Python, SQLite und LabVIEW
  3. Mehrere DS18B20 1-Wire Sensoren an Raspberry Pi anschließen für präzises Temperaturmonitoring
  4. Temperatur mit DS18B20 am Raspberry Pi 2 auslesen
  5. Professionelle Temperaturüberwachung mit Raspberry Pi und DS18B20
  6. Temperaturmessung mit Maxim 1-Wire Sensoren und DS2482 I2C-Bridge am Raspberry Pi
  7. TMP006 Infrarot-Temperatursensor mit Raspberry Pi: Python Library & Setup Guide
  8. Fern-Temperatursensor mit Raspberry Pi & Python bauen – Schritt-für-Schritt-Anleitung
  9. Präzise Temperaturüberwachung im Server-Schrank mit Raspberry Pi
  10. Remote-Wetterüberwachung mit Raspberry Pi 3 & PubNub