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

Mida Sensores Analógicos en Raspberry Pi sin ADC Nativo

La Raspberry Pi carece de entradas analógicas integradas, pero eso no impide leer sensores analógicos. Combinando unos pocos resistores y un capacitor, puede emplear una técnica simple de respuesta escalón para determinar la resistencia –ideal para potenciómetros, fotorresistencias, termistores y más.

Fundamento

Este enfoque, popularizado por los tutoriales de Adafruit y adaptado en el Raspberry Pi Cookbook, mide el tiempo que tarda un capacitor en cargarse más allá de un umbral. Los pines GPIO de la Raspberry Pi pueden detectar el momento en que el voltaje supera ~1.65 V, permitiéndole inferir la resistencia de un resistor variable conectado.

Lo que Necesitará

Código Python

import RPi.GPIO as GPIO
import time

GPIO.setmode(GPIO.BCM)
# Asignación de pines
A_PIN = 18  # Control de descarga/carga del capacitor
B_PIN = 23  # Detección de umbral de voltaje

def discharge():
    GPIO.setup(A_PIN, GPIO.IN)
    GPIO.setup(B_PIN, GPIO.OUT)
    GPIO.output(B_PIN, False)
    time.sleep(0.005)

def charge_time():
    GPIO.setup(B_PIN, GPIO.IN)
    GPIO.setup(A_PIN, GPIO.OUT)
    count = 0
    GPIO.output(A_PIN, True)
    while not GPIO.input(B_PIN):
        count += 1
    return count

def analog_read():
    discharge()
    return charge_time()

try:
    while True:
        print(analog_read())
        time.sleep(1)
except KeyboardInterrupt:
    GPIO.cleanup()

Ejecutar el script produce una salida similar a:

$ sudo python pot_step.py
101
210
101
623
435
367
728
610
512
314
317
0

Las lecturas fluctúan aproximadamente entre 10 y 170 al girar la perilla del potenciómetro, reflejando la resistencia variable.

Cómo Funciona

La técnica se basa en la curva de carga RC. Cuando el capacitor se conecta al resistor variable, su voltaje sube exponencialmente. El pin GPIO registra un nivel lógico alto una vez que el voltaje del capacitor supera el umbral de entrada (~1.65 V). El tiempo transcurrido –contado en iteraciones del bucle– se correlaciona directamente con la resistencia: menor resistencia implica carga más rápida, produciendo un conteo menor.

Al no tener la Pi un convertidor analógico-digital, este método de temporización evita esa limitación, ofreciendo una forma rentable y fiable de leer una amplia gama de sensores analógicos.

Proceso de manufactura

  1. Monitorización profesional de temperatura con Raspberry Pi y DS18B20
  2. Breakout compacto DHT de temperatura y humedad para Raspberry Pi – ATtiny85 y DHT22/DHT11
  3. Cómo conectar un sensor de temperatura DS1820 One‑Wire a Raspberry Pi usando GPIO
  4. Integración de datos de sensores en Raspberry Pi: Guía práctica
  5. Conexión del sensor ultrasónico HC‑SR04 a Raspberry Pi 3 – Guía completa
  6. Medición de Sensores Analógicos en Raspberry Pi con un Solo Pin GPIO
  7. Sistema de Registro y Alertas con Fotocélula en Raspberry Pi – Sensor de Luz de Bajo Consumo con Python
  8. Construyendo IoT con Java ME 8 en Raspberry Pi: Parte 1 – Integración de Sensores GPIO
  9. Lectura de Sensor Hall Lineal con Raspberry Pi: Guía Java y Análisis del ADC0832
  10. Lectura de Pulsaciones de Botón vía GPIO en Raspberry Pi: Guía Paso a Paso
  11. Lectura de Sensores Analógicos con Raspberry Pi y Zabbix: Guía Paso a Paso