Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

Conectar sensores analógicos a Raspberry Pi con MCP3008: cableado, configuración SPI y código Python

¿Listo para leer señales analógicas con tu Raspberry Pi? Esta guía recorre el cableado de un MCP3008 ADC, habilitar SPI, instalar librerías necesarias y ejecutar un script Python básico para obtener datos de sensores.

Paso 1: Cableado del MCP3008

Asegúrate de que la muesca semicircular del chip mire en la misma dirección que en el diagrama. Para un MCP3004 el layout es idéntico salvo que el chip tiene solo cuatro entradas analógicas.

Paso 2: Habilitar SPI en la Raspberry Pi

  1. Abre terminal y ejecuta:
    sudo raspi-config
  2. Navega a Advanced Options → SPI y habilítalo.
  3. Reinicia la Pi:
    sudo reboot
  4. Tras reiniciar, verifica que existan dispositivos SPI:
    ls /dev/
    Deberías ver spidev0.0 y spidev0.1.
  5. Si faltan, actualiza tu sistema:
    sudo apt-get update && sudo apt-get upgrade
    luego instala el firmware más reciente:
    sudo wget https://goo.gl/1BOfJ -O /usr/bin/rpi-update
    sudo chmod +x /usr/bin/rpi-update
    sudo rpi-update
    sudo reboot

Desbloquear I²C (si es necesario)

A veces I²C está en lista negra, impidiendo que SPI funcione. Abre el archivo de lista negra:

sudo nano /etc/modprobe.d/raspi-blacklist.conf

Elimina o comenta cualquier línea que contenga blacklist i2c-bcm2708, luego reinicia.

Paso 3: Instalar librería Python SPI

  1. Instala prerrequisitos:
    sudo apt-get install python-dev git
  2. Clona el repositorio py-spidev:
    git clone https://github.com/doceme/py-spidev
  3. Instala la librería:
    cd py-spidev
    sudo python setup.py install

Paso 4: Código Python de ejemplo

Crea mcp3008.py en tu directorio home:

nano ~/mcp3008.py

Pega el siguiente script:

# mcp3008.py
import spidev
import time
# Abre bus SPI 0, dispositivo 0
spi = spidev.SpiDev()
spi.open(0, 0)
spi.max_speed_hz = 1350000
def read_channel(channel):
    if channel < 0 or channel > 7:
        return -1
    adc = spi.xfer2([1, (8 + channel) << 4, 0])
    data = ((adc[1] & 3) << 8) + adc[2]
    return data
try:
    while True:
        value = read_channel(0)  # Leer canal 0
        print(f"Channel 0: {value}")
        time.sleep(1)
except KeyboardInterrupt:
    spi.close()
    print("Program terminated")

Ejecuta el script con:

python3 ~/mcp3008.py

Deberías ver un flujo continuo de valores ADC crudos (0–1023). Convierte estos a voltaje o unidades de sensor usando la hoja de datos del MCP3008.

Referencias

Proceso de manufactura

  1. Raspberry Pi y HDC2010: Guía completa de configuración I2C para sensor de temperatura y humedad
  2. Construya un registrador de temperatura con Raspberry Pi y sensor I2C de 5 $
  3. Perfilado preciso de temperatura en Raspberry Pi con Python, SQLite y LabVIEW
  4. Sensor infrarrojo TMP006 con Raspberry Pi: librería Python y guía de configuración
  5. Construya un sensor de temperatura remoto con Raspberry Pi y Python – Guía paso a paso
  6. Construya una estación meteorológica con Raspberry Pi que envíe datos diarios por email
  7. Monitorización meteorológica remota con Raspberry Pi 3 y PubNub
  8. Conexión del sensor ultrasónico HC‑SR04 a Raspberry Pi 3 – Guía completa
  9. Integración de TI SensorTag con Blynk vía Node‑RED en Raspberry Pi Zero
  10. Controle un LED con Sensor PIR de Movimiento en Raspberry Pi
  11. Fundamentos de C#: Entrada y salida esenciales