Sunteți pe pagina 1din 10

Măsurați orice curent alternativ cu ACS7121

VĂ RUGĂM SĂ AVEȚI GRIJĂ DACĂ UTILIZAȚI LINIA ELECTRICĂ

Bună ziua, și bun venit la un alt tutorial, acesta este despre măsurarea curent alternativ (AC),
folosind ACS712 Sunt folosind versiunea 30Amps, care este ACS712 30A, și nostru minunat
Arduino Uno bord, am încercat să adăugați un ecran OLED, dar, din păcate, a ajuns de rupere
în timp ce fotografiați tutorial, așa că am trecut la LCD, dar mai jos veți găsi cabluri și coduri
pentru ambele versiuni.

Și de "Orice AC..." Vreau să spun că vom vedea un cod / bibliotecă care funcționează pentru
toate tipurile de semnal, nu numai sinuswaves unul, și Ammeter nostru va fi capabil de a
calcula TRUE ROOT MEAN SQUARE. Și rețineți că senzorul utilizează efectul Hall
(producerea unei diferențe de tensiune într-un conductor electric, transversală la un curent
electric în conductor și la un câmp magnetic aplicat perpendicular pe curent)

Puteți combina acest proiect cu acesta: Măsură ușoară a tensiunii de curent alternativ
folosind Arduino și ZMPT101B

Testele se vor face pe un bec cu incandescență, controlat de un dimmer de lumină în serie cu


un multimetru de referință și modulul senzorului de curent ACS712.

Iată planul:

1
https://create.arduino.cc/projecthub/SurtrTech/measure-any-ac-current-with-acs712-
70aa85?ref=similar&ref_id=300801&offset=0
1. Mai întâi trebuie să interconectăm modulul nostru cu placa Arduino și să verificăm
forma semnalului atunci când dimmerul este PORNIT - Ciclu complet - Jumătate de
ciclu.

1. Apoi vom verifica un cod simplu care nu necesită nicio bibliotecă, dar funcționează
numai cu semnal Sinewaves (va fi testat).

1. După aceea vom vedea codul care va măsura TRMS-ul acului și vom folosi ECRANUL
LCD.
Vă rugăm să fiți atenți atunci când alegeți ACS712, nu încercați să-l joace în condiții de
siguranță ca am facut-o (prin achiziționarea unei versiuni 30Amps), acest lucru va da doar
fluctuație mare atunci când încercați să-l utilizați pentru o utilizare internă sau aplicații amperi
mici, asa ca aici pentru mine o versiune 5A sau 10A ar fi fost bine. De asemenea, rețineți că
30A sau 20A ... va afecta calibrările prea, dar este explicat să calibreze în video și în
comentarii coduri.

Acestea sunt piesele pe care le-am folosit, puteți înlocui UNO cu orice placă compatibilă sau
acel LCD i²c cu un OLED sau orice afișaj preferați.

Încercarea 1

Cablare și cod

Cablurile pentru încercarea 1 pot fi găsite mai jos (Cablaj 1), alături de cod (Cod 1).

Rezultatele

Încărcați codul și lansați plotterul serial, ar trebui să puteți vedea o undă sinusoidală ca un
semnal, linia roșie arată când am refuzat dimmerul și curentul a început să aibă acea formă pe
care o găsiți de obicei într-un triac.

Test 2

Now if you want to measure the current using the code above only, you’ll get values around
512 – 511, they don’t reflect the RMS value at all. So to measure the signal RMS value we
gonna keep the same wiring as above but now we need another code that can calculate the
RMS.

Wiring and code

The wiring is the same as (Wiring 1), but with a different code can be found below (Code 2).
Results

După puteți vedea valorile din stânga (RMS) sunt aceleași cu valoarea măsurată de
multimetru, pe dreapta acestea sunt valorile Peak to Peak, și rețineți că dimmer este la ciclu
complet ca eu sunt folosind bec 75W și 230VAC/50Hz.

!!!!!!!!!!!!!!!! dar!!!!!!!!!!!!!!!!!!!!!

Aici m-am întors tot drumul în jos dimmer meu de lumină, ceea ce înseamnă că sunt
aproximativ în jur de 1 / 4 dintr-un ciclu, multimetru este oferindu-mi 0.21A, dar codul meu
îmi dă 0.36A, codul încă măsuri de la Vârf la Vârf, dar după puteți vedea mai sus semnalul
meu nu este liniară atunci când am rândul său, dimmer tot drumul în jos.
Și aceasta este diferența dintre o măsurare TRMS și o măsurare care funcționează numai cu
semnal sinusoidal.

Încercarea 3

Acum vedeți problema codului de mai sus, dar, din fericire, există o bibliotecă pentru salvare,
apreciez cu adevărat că biblioteca pentru toată munca pe care o face, deoarece, după știți, dacă
doriți să calculați o valoare RMS, trebuie să utilizați Calculul integral și acesta este un mod
dificil de realizat pe o placă de dezvoltare electronică, puteți verifica fișierul CPP al bibliotecii
pentru a vedea ce metode sunt utilizate, ar fi Average Sigma... Lucruri legate de statistici /
probabilități ....

Cablare, cod și bibliotecă

Cablajul este același cu cablurile utilizate mai sus (Cablare 1), iar mai jos puteți găsi codul
(Cod 3).

Și aici puteți descărca biblioteca Filtre: Descărcați biblioteca aici

Rezultatele

Rezultatele corecte sunt la mijloc, cele din stânga sunt fără calibrare, iar cele din dreapta sunt
folosite pentru a demonstra se calibrează (verificați videoclipul).
După ați văzut diferența uriașă dintre cele două coduri de răspuns la un semnal neliniar, dar al
doilea acționează ca un multimetru TRMS.

Test cu LCD/OLED

Aici păstrăm aceleași lucruri pe care le facem doar în loc să folosim monitorul serial pe care îl
putem folosi LCD sau OLED

Cablare, coduri și biblioteci

Cablurile pot fi găsite mai jos (Wiring_LCD) și (Wiring_OLED), coduri de mai jos
(Code_ACS712_LCD) și (Code_ACS712_OLED).

Aici sunt bibliotecile OLED

https://github.com/adafruit/Adafruit_SSD1306https://github.com/adafruit/Adafruit-GFX-
Library

Și iată LCD_i2c_library

https://drive.google.com/file/d/1Oc56q2GPs5SOA-PdbVHHSxKCnI9KY5xd/view

rezultat
Acesta este singurul test am putut face pentru că am rupt ecranul meu OLED în timp ce
încearcă să tragă tutorial video. În general, acest lucru funcționează la fel am văzut înainte, îl
afișează doar pe un ecran LCD i²c. (Da, valorile TRMS nu metoda de vârf la vârf).

Asta e tot oameni buni, sper că vă place acest tutorial nu uitați să vă placă tutorial video și
aboneaza-te la canalul SurtrTech, dacă doriți să arate sprijin, vă mulțumesc foarte mult.

Orice întrebare lăsați-o în comentarii.

Code
/*This code works with ACS712 Current sensor, it permits to read the raw
data
It's better to use it with Serial Plotter
More details on www.surtrtech.com
*/

#define Current_sensor A0 //The sensor analog input pin

float i;

void setup() {

Serial.begin(9600);
pinMode(Current_sensor, INPUT);

void loop() {
i = analogRead(Current_sensor);
Serial.println(i);
delay(100); //Modifying or removing the delay will
change the way the signal is shown
//set it until you get the correct
sinewave shap

Schematics
Wiring 1
Wiring used of tests 1,2 and 3

Wiring_LCD
Use LCD i²c
Wiring_OLED
Use OLED 128x32

S-ar putea să vă placă și