ACS712 Capteur de Courant – 30A La carte Courant du Capteur ACS712 30A est une carte pour l'effet Hall intégré linéaire basé sur capteur de courant ACS712. Le capteur ACS712 donne une mesure précise du courant pour les deux signaux AC et DC. Conducteur en cuivre épais et des traces de signal permet à la survie de l'appareil jusqu'à 5 fois les conditions de surintensité. L'ACS712 émet un signal de sortie analogique de tension qui varie linéairement avec courant détecté. Le dispositif exige 5V DC et un couple de condensateurs de filtrage. Caractéristiques: x05B (5 Amp) version Faible niveau de bruit analogique chemin du signal Bande passante appareil est réglé via la broche FILTRE 5US temps de montée de sortie en réponse à l'entrée courant Bande passante de 80 kHz 1, 5% d'erreur de sortie à 25 degrés C 1. 2mOhm résistance du conducteur interne 2. 1 Tension kVrms isolement minimum de broches 1-4 sur les broches 5-8 5, 0 VDC, l'opération d'approvisionnement 66 à 185 mV / A Sensibilité de sortie de La tension de sortie proportionnelle aux courants AC ou DC Factory-parés pour la précision Extrêmement stable tension de décalage de sortie Près de zéro hystérésis magnétique Sortie ratiométrique de tension d'alimentation Documents: ACS712 Current Sensor Datasheet (en anglais) source
Probleme avec capteur de courant ACS712 - Français - Arduino Forum
Mesurer le courant crête à crête et mettre à l'échelle le résultat vous donnera une réponse qui augmentera et diminuera au moins avec l'amplitude de votre courant alternatif moyen, donc oui, ce n'est PAS incorrect. Comme vous l'avez suggéré, il sera sensible au bruit du capteur - en fait, lorsque vous prenez les lectures les plus élevées et les plus basses, le bruit entraînera toujours une mesure plus élevée que la valeur réelle. Cependant, je pense que tu peux mieux faire. Étant donné que le code doit déjà prélever de nombreux échantillons (en gros aussi vite que possible) pendant 100 mS (ce qui échantillonnera 5 cycles de la forme d'onde s'il est à 50 Hz et 6 s'il est à 60 Hz, selon l'endroit où vous vous trouvez dans le monde), vous pouvez alors faire le calcul pour mesurer la valeur RMS et en vous basant sur l'ensemble du signal, l'effet du bruit sera réduit. Vous devez connaître la lecture ADC lorsqu'il n'y a pas de courant rZero (qui devrait être d'environ 511 mais pourrait être un peu décalé en raison d'erreurs de décalage) - vous pouvez mesurer cela sans rien connecter pour calibrer le capteur, ou prendre une moyenne à long terme même avec le signal AC présent.
Notre outil « Projets DHM » vous permet de sauvegarder différents projets ou listes d'articles sur notre site Web et de les trier quand cela vous convient. Vous pouvez facilement les ajouter à votre panier en cliquant sur le bouton "Ajouter un projet au panier", ou vous pouvez les modifier rapidement en supprimant et en ajoutant des produits de n'importe quel appareil en vous connectant à votre compte. Vous pouvez également partager des projets de différentes manières. Vous pouvez soumettre une copie en lecture seule et la personne avec qui vous avez partagé le projet peut commander directement sur notre site Web. Pour plus de détails, accédez à vos projets et cliquez sur le lien « Partager le projet ». Alternativement, vous pouvez exporter le projet au format PDF ou CSV afin de pouvoir toujours consulter, même hors ligne, la liste détaillée des produits de votre projet. Il est également possible de rendre votre projet public sur la page dédiée de notre site, afin que chacun puisse s'en inspirer pour des applications d'automatisation, d'impression 3D, d'IoT...
Comme le souligne le didacticiel henrysbench, il est important que l'Arduino échantillonne le signal à une fréquence suffisamment élevée (disons 1000 Hz - donc 100 échantillons pour votre durée d'échantillonnage de 100 mS) - le nombre de fois que la boucle while s'exécute sampleCount confirmera si cela toujours le cas même avec le temps de calcul supplémentaire de ce code. De plus, si vous augmentez le temps d'échantillonnage, faites attention à ce qu'il unsigned long rSquaredSum ne puisse pas déborder, mais j'éviterais d'utiliser des doubles dans la boucle while car ils le ralentiront certainement BEAUCOUP. void ac_read() { int rVal = 0; int sampleDuration = 100; // 100ms int sampleCount = 0; unsigned long rSquaredSum = 0; int rZero = 511; // For illustrative purposes only - should be measured to calibrate sensor. uint32_t startTime = millis(); // take samples for 100ms while((millis()-startTime) < sampleDuration) { rVal = analogRead(A0) - rZero; rSquaredSum += rVal * rVal; sampleCount++;} double voltRMS = 5.
Et si tu veux faire une mesure plus précise, il va falloir faire plusieurs mesures et un peu de math pour en déduire le courant efficace. - Edité par lorrio 19 mai 2019 à 22:58:48