Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Mesurer des capteurs analogiques sur Raspberry Pi sans ADC natif

Le Raspberry Pi ne dispose pas d'entrées analogiques intégrées, pourtant cela n'empêche pas la lecture de capteurs analogiques. En combinant quelques résistances et un condensateur, vous pouvez employer une simple technique de réponse en échelon pour déterminer la résistance – idéale pour potentiomètres, photorésistances, thermistances et plus.

Contexte

Cette approche, popularisée par les tutoriels d'Adafruit et adaptée dans le Raspberry Pi Cookbook, mesure le temps qu'un condensateur met à charger au-delà d'un seuil. Les broches GPIO du Raspberry Pi peuvent détecter le moment où la tension dépasse ~1,65 V, vous permettant d'inférer la résistance d'une résistance variable connectée.

Ce dont vous aurez besoin

Code Python

import RPi.GPIO as GPIO
import time

GPIO.setmode(GPIO.BCM)
# Attribution des broches
A_PIN = 18  # Contrôle charge/décharge condensateur
B_PIN = 23  # Détection seuil tension

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()

L'exécution du script produit une sortie similaire à :

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

Les lectures fluctuent entre environ 10 et 170 lorsque vous tournez le bouton du potentiomètre, reflétant la résistance variable.

Fonctionnement

La technique repose sur la courbe de charge RC. Lorsque le condensateur est connecté à la résistance variable, sa tension monte exponentiellement. La broche GPIO enregistre un état haut logique dès que la tension du condensateur dépasse le seuil d'entrée (~1,65 V). Le temps écoulé – compté en itérations de boucle – est directement corrélé à la résistance : une résistance plus faible signifie une charge plus rapide, donnant un compteur plus petit.

Comme le Pi n'a pas de convertisseur analogique-numérique, cette méthode de temporisation contourne cette limitation, offrant un moyen économique et fiable de lire une large gamme de capteurs analogiques.

Processus de fabrication

  1. Surveillance de température professionnelle sur Raspberry Pi avec DS18B20
  2. Breakout compact DHT Température & Humidité pour Raspberry Pi – ATtiny85 & DHT22/DHT11
  3. Comment connecter un capteur de température DS1820 One‑Wire à un Raspberry Pi via GPIO
  4. Intégration de données de capteurs sur Raspberry Pi : Guide pratique complet
  5. Connexion du capteur ultrasonique HC‑SR04 au Raspberry Pi 3 : Guide complet
  6. Mesurer des capteurs analogiques sur Raspberry Pi avec une seule broche GPIO
  7. Journalisation et système d'alerte photocellulaire Raspberry Pi – Construire un capteur de lumière basse consommation avec Python
  8. Construire l'IoT avec Java ME 8 sur Raspberry Pi : Partie 1 – Intégration capteurs GPIO
  9. Lecture d'un capteur Hall linéaire avec Raspberry Pi : Guide Java et insights ADC0832