Mesurer des capteurs analogiques sur Raspberry Pi avec une seule broche GPIO
Contrairement à de nombreux microcontrôleurs, le Raspberry Pi ne propose que des broches GPIO numériques. Elles peuvent fournir ou absorber des niveaux logiques haut (3,3 V) et bas (0 V), mais ne peuvent pas lire directement des tensions analogiques. Heureusement, une technique simple de charge RC permet d'extraire une gamme de valeurs de capteurs à résistance variable comme les LDR et thermistances en utilisant une seule broche GPIO.
Pourquoi ça fonctionne
Dans un circuit RC classique, une résistance et un condensateur sont connectés en série. Lorsqu'une tension est appliquée, la tension aux bornes du condensateur augmente exponentiellement. Le temps nécessaire pour atteindre 63 % de la tension d'alimentation est donné par la constante de temps t = RC, où t est le temps (secondes), R la résistance (ohms) et C la capacitance (farads). En mesurant le temps que met le condensateur pour charger jusqu'au seuil de niveau haut du GPIO (≈2 V sur un Pi 3,3 V), vous obtenez une valeur proportionnelle à la résistance du capteur – et donc à la grandeur physique qu'il mesure.
Par exemple, avec une résistance de 10 kΩ et un condensateur de 1 µF, la constante de temps est de 10 ms. Une LDR affichant 1 MΩ dans l'obscurité produira une constante de temps d'environ 1 s, rendant trivial la distinction entre conditions claires et sombres.
Implémentation pratique
Pour garantir une résistance définie entre l'alimentation 3,3 V et la broche GPIO, insérez une résistance de 2,2 kΩ en série avec la LDR. La séquence de mesure complète est :
- Décharger le condensateur : Configurez le GPIO en sortie et mettez-le à l'état bas.
- Démarrer la charge : Reconfigurez le GPIO en entrée. Le courant traverse le réseau de résistances vers le condensateur, faisant monter sa tension.
- Mesurer le temps de montée : Incrémentez un compteur (ou utilisez un minuteur haute résolution) jusqu'à ce que le GPIO passe à l'état haut (≈2 V). Le temps écoulé équivaut à la constante de temps RC du capteur.
- Répéter : Remettez le GPIO en sortie, mettez-le à l'état bas, et répétez autant que nécessaire pour une surveillance continue.
Pour des conseils plus détaillés, consultez la documentation officielle Raspberry Pi GPIO et l'article Wikipédia sur les circuits RC. Un calculateur de constante de temps RC en ligne peut vous aider à choisir des valeurs de composants adaptées à la plage de votre capteur.
Processus de fabrication
- Cartographie thermique intérieure économique avec capteurs低成本
- Capteur de suivi de ligne KY‑033 avec Raspberry Pi : Détecteur de porte/lignes simple
- Créer des effets audio pilotés par capteurs avec le kit Satellite CCRMA
- Mesurer des capteurs analogiques sur Raspberry Pi avec une seule broche GPIO
- Mesurer des capteurs analogiques sur Raspberry Pi sans ADC natif
- Construire l'IoT avec Java ME 8 sur Raspberry Pi : Partie 1 – Intégration capteurs GPIO
- Lecture de capteurs analogiques avec Raspberry Pi et Zabbix : Guide étape par étape
- Capteur de proximité infrarouge low-cost pour Raspberry Pi utilisant uniquement les broches numériques
- Maîtriser le GPIO Raspberry Pi : Interfacer un capteur PIR de mouvement sur B+/Modèle 2