Une entrée analogique isolée pour Arduino
Composants et fournitures
| | × | 2 | |
| | × | 1 | |
| | × | 1 | |
| | × | 1 | |
| | × | 1 | |
| | × | 1 | |
| | × | 1 | |
| | × | 1 | |
| | × | 1 | |
| | × | 1 | |
| | × | 1 | |
| | × | 1 | |
| potentiomètre de précision multi-tours 5k ohm | | × | 1 | |
| | × | 1 | |
| | × | 1 | |
| | × | 1 | |
| | × | 1 | |
| | × | 1 | |
| | × | 1 | |
| | × | 4 | |
| | × | 1 | |
Applications et services en ligne
À propos de ce projet
Les signaux des capteurs de champ peuvent être affectés par le bruit généré par les surtensions, les coups de foudre ou d'autres sources EMI (interférences électromagnétiques) ainsi que par les différences de potentiel de terre. Une méthode pour éviter la plupart de ces problèmes est d'utiliser un isolement complet du terrain.
L'isolation d'un capteur d'entrée nécessitera une alimentation séparée pour alimenter l'appareil de terrain et le circuit qui réalise l'isolation elle-même.
Vous trouverez plus de détails dans l'article publié sur mon blog :http://ardupiclab.blogspot.it/.
Code
- Interface et programme Arduino
Interface et programme ArduinoArduino
Arduino peut mesurer la fréquence de deux manières :
• mesure de période, à l'aide de la fonction pulsein();
• mesure de fréquence, avec CPU Timer/Counters, en utilisant des bibliothèques spéciales.
La première méthode utilise deux fois la fonction pulsein() afin de mesurer le temps HAUT et le temps BAS du signal, avec une résolution de la microseconde. La somme des deux mesures est la période du signal. Pour un signal de 5 kHz, la période est de 200 µs =temps HAUT + temps BAS =125+75 µs. La résolution temporelle est relativement faible et la précision de la mesure est également affectée par le temps des instructions du programme.
L'aspect positif de cette méthode est la vitesse de mesure qui est légèrement supérieure à la période mesurée. A un inconvénient, en plus de la moindre précision, il est plus sensible au bruit du réseau électrique (50 ou 60 Hz).
Pour ces raisons, je préfère une mesure de fréquence par rapport à la période. Le temps de mesure est plus élevé mais vous obtenez une plus grande précision et des temps d'échantillonnage précis. De plus, en choisissant une période de mesure multiple de celle du réseau électrique, il présente une excellente immunité au bruit.
J'utilise la librairie FreqCounter de Martin Nawrath KHM LAB3 :
http://interface.khm.de/wp-content/uploads/2009/01/FreqCounter_1_12.zip
Cette bibliothèque utilise Timer/Counter1 pour compter les impulsions sur le front montant de T1/PD5/digitalPin5 et Timer/Counter2 pour la génération du temps de porte avec des interruptions de 1 ms.
J'ai choisi un temps de porte égal à 1000 ms pour médiatiser le décompte sur une période de 50 ou 60 cycles secteur. Dans ce cas, vous obtenez une résolution cinq fois supérieure à celle d'Arduino Uno.#include void setup() { Serial.begin(9600); // se connecte au port série Serial.println("Entrée analogique opto-isolée");}long int frq;void loop() { FreqCounter::f_comp=0; // Définir la compensation sur 0 FreqCounter::start(1000); // Commencer le comptage avec un temps de porte de 1000 ms while (FreqCounter::f_ready ==0) // attendre que le compteur soit prêt frq=FreqCounter::f_freq; // lit le résultat Serial.println(frq); // imprime le résultat delay(100);}
Schémas
Le circuit accepte une tension d'entrée d'environ 20mV à 5V ou un courant de 4 à 20 mA (avec le cavalier W1 inséré). Les deux résistances en parallèle R2 et R3 donnent une valeur d'environ 250 ohms, afin d'avoir 1V à 5V pour une entrée de courant de 4mA à 20mA.
Seulement trois fils et une résistance sont nécessaires pour connecter le circuit à l'Arduino Uno. La sortie de l'opto-coupleur doit être connectée à l'entrée numérique D5 avec une résistance pull-up de 2,2 k connectée au + 5 V d'Arduino.
Si une plage d'entrée de 10V est requise, une alimentation 15V est nécessaire, il faut donc changer le régulateur 7808 par un 7815. Le transformateur T1 doit également alimenter le capteur, il doit donc avoir une tension et une puissance adéquates. Le trimmer P1 doit être réglé pour obtenir un facteur de conversion d'environ 1kHz/V.