Search Code

Kosalela na Allegro ACS712 DC/AC Current Sensor na Arduino Code

Kosalela na Allegro ACS712 DC/AC Current Sensor na Arduino Code

Na boyekoli oyo, tokoyekola ndenge ya kosalela sensor ya courant ya Allegro ACS712 mpo na komeka courant ya AC mpe DC na Arduino. Sensor ya ACS712 ebimisaka voltage oyo ekokani na courant oyo eleki kati na yango, oyo esalisi biso kotanga mpe kolakisa ba valeurs ya courant na moniteur ya serial ya Arduino. Projet oyo ezali malamu mpo na bato oyo balingi kosala suivi ya courant na ba applications ndenge na ndenge, lokola ba alimentations to ba systèmes ya batterie.

Tokotonga circuit ya pete oyo ekokangisa sensor ya ACS712 na Arduino, mpe na sima tokokoma programme mpo na kotanga sortie ya sensor. Ndenge oyo tokozwa yango ezali ete tokomona ba lectures ya courant na tango ya sika na moniteur ya serial. Mpo na koyeba malamu ndenge ya kosala yango, tala vidéo (na vidéo na 02:00).

Hardware Explicado

Sensor ya courant ya Allegro ACS712 ezali module ya moke oyo ekoki komeka ba courants kino na 30A, kolanda version oyo oponi. Ezali na ba pins misato: VCC mpo na puissance, GND mpo na terre, mpe pin ya sortie oyo epesaka voltage oyo ekokani na courant oyo emekami. Sensor esalelaka principe ya effet Hall, epai courant oyo eleki na conducteur ebotaka champ magnétique. Champ oyo emonanaka mpe ebongolami na voltage, oyo na sima etindami na Arduino.

Module ezali na ba ratings ndenge na ndenge ya courant (5A, 20A, mpe 30A) mpe ebimisaka ba niveaux ya voltage ya 185 mV/A, 100 mV/A, mpe 66 mV/A na ndenge yango. Ntina ezali ete mpo na chaque ampère ya courant oyo eleki na sensor, okozwa voltage oyo ekokani na yango oyo okoki kotanga mpe kosala traitement. Likambo oyo esalaka ete ezala utile mpo na ba applications ndenge na ndenge.

Détails ya Datasheet

FabricantAllegro Microsystems
Numéro ya partieACS712ELCTR-30A-T
Voltage ya logique/IO4.5–5.5 V
Voltage ya alimentation5 V
Courant ya sortie (na canal)30 A max
Guidance ya fréquence PWMN/A
Seuils ya logique ya entréeN/A
Chute ya voltage / RDS(on) / saturation1.2 mΩ
Limites thermiques150 °C max
PackageTO-220
Notes / variantesEzali na 5A, 20A, mpe 30A

  • Kokamba malamu ba connexions mpo na kokima ba courts-circuits.
  • Salela fil ya taille oyo ekokani mpo na ba ratings ya courant (12 AWG mpo na 30A).
  • Kotala température ya module na tango ya fonctionnement.
  • Kokanisa kobakisa heat sink mpo na ba applications ya courant ya likolo.
  • Calibrer sortie ya sensor kolanda application na yo ya spécifique.

Instructions ya Câblage

Arduino wiring for Allegro ACS712 current sensor

Mpo na kokangisa sensor ya Allegro ACS712 na Arduino na yo, banda na kokangisa pin ya VCC ya ACS712 na pin ya 5V na Arduino. Na sima, kanga pin ya GND ya sensor na moko ya ba pins ya GND na Arduino. Pin ya sortie ya ACS712 esengeli kokangama na pin ya entrée analogique A0 na Arduino.

Mpo na komeka courant, kanga charge na série na sensor. Ntina ezali ete fil ya positif ya source ya puissance na yo esengeli kokota na moko ya ba terminaux ya entrée ya sensor ya courant, wuta mosusu ekangama na charge. Lopango mosusu ya charge esengeli kozonga na source ya puissance, mpo na kokokisa circuit. Salá malamu ete osalela fil ya taille oyo ekokani mpo na courant oyo ozali komeka mpo na kokima échauffement.

Ba Exemples ya Code & Explication

Code oyo elandi oyo ebandisaka pin ya analogique mpe esalelaka moniteur ya serial:

#define VIN A0 // définir pin ya Arduino A0 lokola entrée ya voltage (V in)
const float VCC = 5.0; // voltage ya alimentation ezali kati na 4.5 na 5.5V. Mbala mingi 5V.

Awa, tozali kokabola VIN lokola pin ya entrée analogique epai sortie ya sensor ekangami. Tokitisi mpe voltage ya alimentation VCC na 5V.

Na fonction ya boucle, tozali kotanga voltage kowuta na sensor ya ACS712 mpe tozali kosala calcul ya courant:

float voltage_raw = (5.0 / 1023.0) * analogRead(VIN); // Tanga voltage kowuta na sensor
float current = voltage / sensitivity[model]; // Calculer courant kolanda sensibilité

Awa, tozali kotanga voltage ya brute kowuta na sensor mpe tozali kobongola yango na courant ya solo na kosalela tableau ya sensibilité kolanda modèle ya sensor oyo ezali kosalelama.

Na suka, tozali kopinya ba lectures ya courant na moniteur ya serial:

if (abs(current) > cutOffLimit) {
    Serial.print("V: ");
    Serial.print(voltage, 3); // pima voltage na ba décimales misato
    Serial.print("V, I: ");
    Serial.print(current, 2); // pima courant na ba décimales mibale
    Serial.println("A");
} else {
    Serial.println("No Current");
}

Section oyo etyekelaka soki courant eleki limite ya coupure oyo ezwami, mpe epesaka ba lectures ya voltage mpe ya courant na moniteur ya serial. Soki courant ezali na se ya seuil, ebimisaka "No Current".

Mpo na code ya mobimba, tala code oyo etyamaki na se ya article.

Démonstration / Nini Okokanisa

Ntango okosalela code mpe okopesa puissance na circuit, okomona ba lectures ya courant na moniteur ya serial. Ntango ozali kobongola charge, ba lectures esengeli kobongwana na ndenge yango, soki courant ezali na likolo ya limite ya coupure. Kozala na bokebi na température ya sensor, mingi mingi soki ozali kosala na pembeni ya ba ratings na yango ya maximum.

Images

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
Langue: 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);
}

Mokili na bisika

Pas encore de ressources.

Fichiers📁

Fiche technique (pdf)

Fritzing File