Search Code

Isticmaalka Allegro ACS712 Sensor-ka Hadaya DC/AC ee Arduino Code-ka

Isticmaalka Allegro ACS712 Sensor-ka Hadaya DC/AC ee Arduino Code-ka

Cashigarkani, waxaan ku baran doonnaa sida loo isticmaalo sensor-ka hadda ee Allegro ACS712 si loo cabbiro hadda AC iyo DC labadaba Arduino. Sensor-ka ACS712 wuxuu soo saaraa danab u dhigma hadda ku socda, taasoo noo ogolaanaysa in si fudud u akhrino oo muujinno qiimaha hadda ee kormeerka taxanaha ah ee Arduino. Mashruucani wuxuu ku habboon yahay kuwa raba inay la socdaan hadda codsiyada kala duwan, sida koronto ama nidaamyada batteriga.

Waxaan dhisi doonnaa wareeg fudud oo ku xira sensor-ka ACS712 Arduino-ga, ka dibna waxaan qori doonnaa barnaamij si loo akhriyo wax soo saarka sensor-ka. Natiijada la filayo waa in la helo akhrin hadda ah oo waqti-riil ah oo lagu muujiyo kormeerka taxanaha ah. Si aad u caddeyso hirgelinta, hubi inaad fiiriso fiidiyowga (fiidiyowga 02:00).

Qalabka La Sharxay

Sensor-ka hadda ee Allegro ACS712 waa module isku dhafan oo cabbiri kara hadda ilaa 30A, iyadoo ku xiran nooca aad doorato. Wuxuu leeyahay saddex biin: VCC oo loogu talagalay koronto, GND oo loogu talagalay dhulka, iyo biin wax soo saar ah oo bixiya danab u dhigma hadda la cabbiray. Sensor-ku wuxuu isticmaalaa mabda'a saamaynta Hall, halkaas oo hadda ku socda conductor uu dhaliyo goob magnetic ah. Goobtan waa la ogaadaa oo waxaa loo beddelaa danab, ka dibna waxaa loo diraa Arduino-ga.

Module-ku wuxuu ku yimaadaa qiimeynno hadda oo kala duwan (5A, 20A, iyo 30A) wuxuuna soo saaraa heerarka danab ee 185 mV/A, 100 mV/A, iyo 66 mV/A siday u kala horreeyaan. Tani waxay ka dhigan tahay in ampere kasta oo hadda ah oo ku socda sensor-ka, aad heleysid wax soo saar danab oo u dhigma oo aad akhrin karto oo aad habayn karto. Astaamahani waxay ka dhigaysaa mid ku habboon codsiyada kala duwan.

Faahfaahinta Xogta

Soo saarahaAllegro Microsystems
Nambarka qaybtaACS712ELCTR-30A-T
Danabka Logic/IO4.5–5.5 V
Danabka sahayda5 V
Hadda soo saarista (kanal kasta)30 A ugu badnaan
Hagaha soo noqnoqoshada PWMN/A
Heerarka caqabadaha gelintaN/A
Hoos u dhaca danabka / RDS(on) / saturation1.2 mΩ
Xadka kulaylka150 °C ugu badnaan
BaakadTO-220
Qoraalo / noocyoWaxaa laga heli karaa 5A, 20A, iyo 30A

  • Hubi in si habboon loo xiro si looga fogaado wareegyada gaaban.
  • Isticmaal fiilo cabbir ku habboon qiimeynaha hadda (12 AWG ee 30A).
  • La soco heerkulka module-ka inta lagu jiro hawlgalka.
  • Tixgeli ku darista kulayl-qaboojiyaha codsiyada hadda sare.
  • Hagaaji wax soo saarka sensor-ka iyadoo ku xiran codsigaaga gaarka ah.

Tilmaamaha Xirista

Arduino wiring for Allegro ACS712 current sensor

Si aad u xirto sensor-ka Allegro ACS712 Arduino-gaaga, ka bilow adoo ku xira biinka VCC ee ACS712 biinka 5V ee Arduino-ga. Marka xigta, ku xir biinka GND ee sensor-ka mid ka mid ah biinanka GND ee Arduino-ga. Biinka wax soo saarka ee ACS712 waa in lagu xiraa biinka gelinta analogga ah ee A0 ee Arduino-ga.

Marka la cabbirayo hadda, ku xir culeyska si taxane ah sensor-ka. Tani waxay ka dhigan tahay in fiilada togan ee ilaha korontadaadu ay gasho mid ka mid ah terminaalada gelinta ee sensor-ka hadda, halka terminaalka kale uu ku xirma culeyska. Dhinaca kale ee culeyska waa inuu ku soo noqdaa ilaha korontada, isagoo dhammaystiraya wareegga. Hubi inaad isticmaasho fiilo cabbir ku habboon hadda aad cabbiraysid si aad uga fogaato kulaylka xad dhaafka ah.

Tusaalooyinka Koodka & Sharaxaad

Qaybta koodka ee soo socota waxay bilaabaysaa biinka analogga ah waxayna dejineysaa kormeerka taxanaha ah:

#define VIN A0 // define the Arduino pin A0 as voltage input (V in)
const float VCC = 5.0; // supply voltage is from 4.5 to 5.5V. Normally 5V.

Halkan, waxaan ku qeexaynaa VIN inuu yahay biinka gelinta analogga ah halkaas oo wax soo saarka sensor-ka lagu xiro. Sidoo kale waxaan dejineynaa danabka sahayda VCC inuu yahay 5V.

Faalashada loop-ka, waxaan akhrinaynaa danabka sensor-ka ACS712 waxaanan xisaabinaynaa hadda:

float voltage_raw = (5.0 / 1023.0) * analogRead(VIN); // Read the voltage from sensor
float current = voltage / sensitivity[model]; // Calculate current based on sensitivity

Halkan, waxaan akhrinaynaa danabka ceyriinka ah ee sensor-ka waxaanan u beddelaynaa hadda dhabta ah iyadoo la isticmaalayo array-ga sensitivity iyadoo ku xiran nooca sensor-ka la isticmaalayo.

Ugu dambeyntii, waxaan daabacaynaa akhrinta hadda ee kormeerka taxanaha ah:

if (abs(current) > cutOffLimit) {
    Serial.print("V: ");
    Serial.print(voltage, 3); // print voltage with 3 decimal places
    Serial.print("V, I: ");
    Serial.print(current, 2); // print the current with 2 decimal places
    Serial.println("A");
} else {
    Serial.println("No Current");
}

Qaybtani waxay hubinaysaa in hadda uu ka sarreeyo xadka goynta ee la qeexay, waxayna daabacaysaa akhrinta danabka iyo hadda ee kormeerka taxanaha ah. Haddii hadda uu ka hooseeyo heerka, waxay soo saartaa "No Current".

Koodka buuxa, fadlan tixraac koodka hoos ku shuban ee maqaalka.

Muuujin / Waxa Laga Filanayo

Markaad wado koodka oo aad koronto siiso wareegga, waa inaad aragtaa akhrinta hadda ee lagu muujiyo kormeerka taxanaha ah. Markaad hagaajiso culeyska, akhrintu waa inay si waafaqsan is beddesho, haddii hadda uu ka sarreeyo xadka goynta. Ka digtoonow heerkulka sensor-ka, gaar ahaan markaad ku shaqeyneysid meel u dhow qiimeyntiisa ugu sarreeya.

Sawirro

Arduino wiring for Allegro ACS712 current sensor
Arduino wiring for Allegro ACS712 current sensor
ACS712_in_series_with_load
ACS712_in_series_with_load
allegro_ACS712_module-1
allegro_ACS712_module-1
allegro_ACS712_module-2
allegro_ACS712_module-2
allegro_ACS712_module-4
allegro_ACS712_module-4
allegro_ACS712_module-0
allegro_ACS712_module-0
130-Allegro ACS712 DC/AC current sensor with Arduino code
Luqadda: C++
/*
 * 
 * Arduino Sketch for Allegro ACS712 Current Sensor 
 * This sensor can measure current at a range of up to 30A.
 * It operates with 5V.
 * Please watch the video instruction and explanation for this code.
 * 
 * Written by Ahmad Shamshiri on Sunday, June 17, 2018 at 22:06 in Ajax, Ontario, Canada
 * for Robojax.com
 * View the video instruction at https://youtu.be/DVp9k3xu9IQ
 * This code has been downloaded from Robojax.com
 */
#define VIN A0 // define the Arduino pin A0 as voltage input (V in)
const float VCC   = 5.0;// supply voltage is from 4.5 to 5.5V. Normally 5V.
const int model = 2;   // enter the model number (see below)

float cutOffLimit = 1.01;// set the current which, below that value, doesn't matter. Or set 0.5

/*
          "ACS712ELCTR-05B-T",// for model use 0
          "ACS712ELCTR-20A-T",// for model use 1
          "ACS712ELCTR-30A-T"// for model use 2  
The sensitivity array is holding the sensitivity of the ACS712
current sensors. Do not change. All values are from page 5 of the data sheet          
*/
float sensitivity[] ={
          0.185,// for ACS712ELCTR-05B-T
          0.100,// for ACS712ELCTR-20A-T
          0.066// for ACS712ELCTR-30A-T
     
         }; 


const float QOV =   0.5 * VCC;// set quiescent Output voltage of 0.5V
float voltage;// internal variable for voltage

void setup() {
    //Robojax.com ACS712 Current Sensor 
    Serial.begin(9600);// initialize serial monitor
    Serial.println("Robojax Tutorial");
    Serial.println("ACS712 Current Sensor");
}

void loop() {
  

  //Robojax.com ACS712 Current Sensor 
  float voltage_raw =   (5.0 / 1023.0)* analogRead(VIN);// Read the voltage from sensor
  voltage =  voltage_raw - QOV + 0.012 ;// 0.000 is a value to make voltage zero when there is no current
  float current = voltage / sensitivity[model];
 
  if(abs(current) > cutOffLimit ){
    Serial.print("V: ");
    Serial.print(voltage,3);// print voltage with 3 decimal places
    Serial.print("V, I: ");
    Serial.print(current,2); // print the current with 2 decimal places
    Serial.println("A");
  }else{
    Serial.println("No Current");
  }
  delay(500);
}

Kheyraadka & Tixraacyada

Wali wax kaydsan ah oo weli ma jiro.

Faylasha📁

Waraaqa xogta (pdf)

Faylka Fritzing