[[materiels:accueilmateriels|{{ :iconemaison.jpg?nolink&30|Sommaire Matériels}}]] ===== Capteurs - Intensité du courant ===== [Mise à jour le 25/6/2024] \\ ==== 1. Généralités ==== {{ :materiels:capteurs:amperemetre.jpg?nolink&100|}} Un courant électrique est un mouvement d'ensemble de porteurs de charges électriques, généralement des électrons, au sein d'un matériau conducteur. Ces déplacements sont imposés par l'action de la force électromagnétique, dont l'interaction avec la matière est le fondement de l'électricité. Wikipédia ---- ==== 2. Capteurs analogiques ==== {{ :materiels:capteurs:acs714.png?nolink&150|ACS714}} === 2.1 ±5A - (ACS714) === == 2.1.1 Présentation == Le module MR362 est un capteur d'intensité basé sur un composant ACS714. Il mesure un courant compris entre -5A et +5A. La sortie analogique est proportionnelle au courant mesuré (2,5V pour 0A). * //**Distributeur**// : Gotronic * //**Caractéristiques**// * Alimentation: 5 Vcc * Consommation: 10 mA * Plage de mesure: -5 A à +5 A en AC ou DC * Sensibilité: **185 mV/A**(à 25°C) (centrée sur 2,5V) * précision: **+/-1,5%** * Shunt: 1,2 mΩ * Connecteur: JST au pas de 2 mm * T° de service: -40 à +85 °C * Dimensions: 28 x 21 x 13 mm * //**Schéma-blocs**// {{ :materiels:capteurs:intensite:sblocsacs714.png?nolink&800 |}} {{ :materiels:capteurs:acrobate.gif?nolink&40|}} * //**Documentation**// * Fichier Acrobat Reader à télécharger ici * //**Modèle**// * Sensibilité: 185 mV/A (centrée sur 2,5V) * // **Aide** pour la simulation de la chaîne de mesure // * Les équations de la chaîne de mesure sont téléchargeables ici {{ :materiels:capteurs:excel.png?nolink&30|}} * Le modèle à simuler est téléchargeable ici \\ {{ :materiels:capteurs:environnement:code.png?nolink|}} == 2.1.2 Exemples de code == * [[#tab-acs714duino_1|Arduino UNO]] * [[#tab-acs714pico_1|Rpi Pico (µPython)]] * [[#tab-acs714netduino_1|Netduino (C#)]] * //**Ressources**//{{ :materiels:capteurs:intensite:doc.gif?nolink|}} * //**Fiche guide**// pour l'étude d'une chaîne d'information comprenant un **ACS714** [Télécharger] * //Connexion à un shield// Tinkerkit v2 monté sur une Arduino Uno{{ :materiels:capteurs:acs714_2.jpg?nolink&600 |}} \\ * // Exemple pour tester le capteur (étude dans la fiche guide) // {{ :materiels:capteurs:distance:arduinoico.png?nolink&40|}} /* ACS714 sur Arduino Uno */ #define RefVal 5.0 #define Pin A0 // Take the average of 500 times const int averageValue = 500; long int sensorValue = 0; float sensitivity = 1000.0 / 185.0; //1000mA per 185mV // Output voltage with no current: 2500mV float Vref = 2500; void setup() { Serial.begin(9600); } void loop() { // Read the value 500 times: for (int i = 0; i < averageValue; i++) { sensorValue += analogRead(Pin); // wait 2 milliseconds before the next loop delay(2); } sensorValue = sensorValue / averageValue; // The on-board ADC is 10-bits // Different power supply will lead to different reference sources // example: 2^10 = 1024 -> 5V / 1024 ~= 4.88mV // unitValue= 5.0 / 1024.0*1000 ; float unitValue = RefVal / 1024.0 * 1000; float voltage = unitValue * sensorValue; // When no load,Vref=initialValue Serial.print("initialValue: "); Serial.print(voltage); Serial.println("mV"); // Calculate the corresponding current float current = (voltage - Vref) * sensitivity; // Print display current (mA) Serial.print(current); Serial.println("mA"); Serial.print("\n"); // Reset the sensorValue for the next reading sensorValue = 0; // Read it once per second delay(1000); } * //Exemple à compléter (étude dans la fiche guide)// /*############################################################################## Connexions de l'ACS714 à une carte Arduino Uno * Vcc -> 5V # Alimentation du module * GND -> GND * OUT -> PIN A0 # Signal de sortie du cateur (tension) ##############################################################################*/ // Constantes et variables const int Ucapteur = A0; // Sortie du capteur : tension (image de l'intensité mesurée) int N = 0; // Valeur délivrée par le CA/N float Intensite = 0; // Valeur de l'intensité mesurée par l'ACS714 void setup() { Serial.begin(9600); } void loop() { N = analogRead(Ucapteur); Intensite = ((float)(N - a) * b) / c; // Calculer a,b et c pour un ACS714 à partir de l'étude de la chaîne d'information Serial.print("Intensité = " ); // Affichage dans la console Serial.print(Intensite); Serial.println("A"); delay(2000); } A venir {{ :materiels:capteurs:csharp.png?nolink&40|}} Le projet contenant l'exemple pour la carte **Netduino**, à programmer avec l'IDE **Visual Studio Community 2015**, est téléchargeable ici \\ === 2.2 ±5A - (ACS70331) === {{ :materiels:capteurs:intensite:acs70331.jpg?nolink&200|}} == 2.2.1 Présentation == * //**Source**// : wiki Seeed studio Ce module Grove, basé sur un capteur ACS70331, permet la mesure de l'intensité d'un **courant AC et DC** jusqu'à 5 A. Ce capteur s'insère en série dans un montage électrique et délivre une tension analogique exploitable par une carte Arduino ou compatible. * //**Distributeur**// : Gotronic * //**Caractéristiques**//: * Alimentation: 3,3 ou 5 Vcc * Interface: compatible Grove * Sortie: analogique * Sensibilité: 200 mV/A * Tension d'entrée: 100 Vcc maxi * Plage de mesure: 0 - 5 A alternatif ou continu * Dimensions: 20 x 40 mm * Température de travail: -40 °C à +85 °C * //**Schéma-blocs**// {{ :materiels:capteurs:intensite:principle2.jpg?nolink&600 |}} {{ :materiels:capteurs:acrobate.gif?nolink&40|}} * //**Documentation**// * Datasheet à télécharger ici * //**Modèle**// * Sensibilité: **200 mV/A** * // **Aide** pour la simulation de la chaîne de mesure // * Des données de mesure sont téléchargeables ici *//**Schéma**// * A télécharger ici \\ == 2.2.2 Bibliothèques == * [[#tab-acs70331duino_1|Arduino UNO]] * [[#tab-acs70331pico_1|Rpi Pico (µPython)]] * Téléchargez la bibliothèque de capteurs de courant Grove depuis Github et l'installer dans le dossier ./Documents/Arduino/libraries. A venir \\ {{ :materiels:capteurs:environnement:code.png?nolink|}} == 2.2.3 Exemples de code == * [[#tab-acs70331duino_2|Arduino UNO]] * [[#tab-acs70331pico_2|Rpi Pico (µPython)]] * //**Ressource à consulter**// :wiki Seeed studio. * //**Exemple** de l'IDE Arduino pour tester le capteur// et corriger le décalage à zéro \\ Dans l'IDE Arduino, sélectionner : Fichiers -> Exemples -> Grove current sensor -> **Grove_5A_DC_Current_Sensor** * //**Résultat** dans la console// {{ :materiels:capteurs:intensite:test_acs70331.png?nolink |}} A venir \\ {{ :materiels:capteurs:mr392.png?nolink&150|MR392}} === 2.3 ±12,5A - (ACS711) === == 2.3.1 Présentation == Le module MR392 est un capteur d'intensité basé sur un composant ACS711. Il mesure un courant compris entre -12,5A et +12,5A. La sortie analogique est proportionnelle au courant mesuré (1,65 V pour 0 A sous 3,3 V). * //**Distributeur**// : Gotronic * //**Caractéristiques**// * Alimentation: 3,3 à 5 Vcc * Consommation: 5,5 mA maxi * Plage de mesure: -12,5A à +12,5A en AC ou DC * Sensibilité: 110 mV/A * Shunt: 1,2 mΩ * T° de service: -40 à +85 °C * Dimensions: 28 x 21 x 13 mm {{ :materiels:capteurs:acrobate.gif?nolink&40|}} * //**Documentation**// * Datasheet à télécharger ici * //**Modèle**// * Sensibilité: 110 mV/A \\ {{ :materiels:capteurs:environnement:code.png?nolink|}} == 2.3.2 Exemples de code (A compléter) == * [[#tab-acs711duino_1|Arduino UNO]] * [[#tab-acs711pico_1|Rpi Pico (µPython)]] * //Connexion à un shield// Tinkerkit v2 monté sur une Arduino Uno.{{ :materiels:capteurs:acs714_2.jpg?nolink&600 |}} \\ * // Exemple pour tester le capteur // {{ :materiels:capteurs:distance:arduinoico.png?nolink&40|}} /*############################################################################## Author: * Mirko Prosseda (06-2013) * email: mirko.prosseda@gmail.com Description: * 5A Linear Current Sensor test sketch v1.0 * Read current value from the sensor and print its value on the Serial Monitor Connections: * BOARD -> ARDUINO * Vcc -> 5V * GND -> GND * OUT -> PIN A0 ##############################################################################*/ // Define constants and variables const int analogInPin = A0; // Analog input pin that the current sensor is attached to int sensorValue = 0; // value read from the sensor float outputValue = 0; // converted value of the sensor reading // Initialization void setup() { Serial.begin(9600); // Serial Port initialization } // main loop void loop() { sensorValue = analogRead(analogInPin); // reads the sensor value and convert it outputValue = ((float)(sensorValue - 338) * 5 / 0.11) / 1024; // A vérifier Serial.print("Current Sensor value= " ); // print results Serial.print(outputValue); Serial.println("A"); delay(200); } A venir \\ {{ :materiels:capteurs:intensite:phidgets_1122.jpg?nolink&150|}} === 2.4 ±30A - (ACS712) === == 2.4.1 Présentation == * //**Source**// : wiki Phidgets Ce module Phidgets doit être inséré en série dans le circuit à mesurer. Il est équipé de 2 sorties qui permettent de mesurer séparément le courant continu et alternatif pour les ondes de forme complexe.. * //**Distributeur**// : Gotronic * //**Caractéristiques**// * Alimentation: 4,5 à 5,5 Vcc * Consommation maxi: 10 mA * Impédance de sortie: 1 K * Plage de mesure: - 0 à 30 A en alternatif (10 kHz maxi) - -30 à +30 A en continu * Précision typique: ±1,5 % à 25°C * Dimensions: 46 x 36 x 25 mm. * //**Documentation**// * Site Phidgets : Guide De L'utilisateur 1122 \\ ==== 3. Capteurs numériques ==== === 3.1 INA219 Current Sensor === {{ :materiels:capteurs:ina219.png?nolink&150|INA219}} == 3.1.1 Présentation == * //**Source**// : wiki Adafruit. Capteur de courant basé sur le circuit INA219B permettant de mesurer un courant continu jusqu'à 3,2 A avec une résolution de 0,8 mA (jusqu'à 26 Vcc). Il communique avec un microcontrôleur Arduino ou compatible via le bus I2C et est équipé d'un shunt de 0,1 Ω (chute de tension de 320 mV pour 3,2 A). * //**Distributeur**// : Gotronic * //**Caractéristiques**// * Alimentation: 5 Vcc * Plage de mesure: jusqu'à 3,2 Acc * Résolution: 0,8 mA * Précision: ±1% * Shunt: 0,1 Ω 1% 2 W * Bus série I2C : **SLA** = **0x40** (defaut) configurable * Dimensions: 26 x 22 x 13 mm {{ :materiels:capteurs:acrobate.gif?nolink&40|}} * //Documentation// * Datasheet à télécharger ici \\ == 3.1.2 Bibliothèques == * [[#tab-ina219duino_1|Arduino UNO]] * [[#tab-ina219pico_1|Rpi Pico (µPython)]] * //A partir du gestionnaire de bibliothèques de l'**IDE Arduino**, installer :// {{ :materiels:capteurs:intensite:libadafruitina219.png?nolink |}} \\ A venir {{ :materiels:capteurs:environnement:code.png?nolink|}} == 3.1.3 Exemples de code == * [[#tab-ina219duino_2|Arduino UNO]] * [[#tab-ina219pico_2|Rpi Pico (µPython)]] * //**Ressource**// : wiki Adafruit. * //**Exemple** de l'IDE Arduino pour tester le capteur// \\ Dans l'IDE Arduino, sélectionner : Fichiers -> Exemples -> Adafruit INA219 -> **getcurrent** A venir