அலெக்ரோ ACS712 DC/AC மின்னோட்ட சென்சாரை ஆர்டுயினோ குறியீட்டுடன் பயன்படுத்துதல்
இந்த டுடோரியலில், Arduino உடன் AC மற்றும் DC மின்னோட்டத்தை அளவிட Allegro ACS712 மின்னோட்ட சென்சாரை எவ்வாறு பயன்படுத்துவது என்பதை நாம் கற்றுக்கொள்வோம். ACS712 சென்சார் அதன் வழியாக பாயும் மின்னோட்டத்திற்கு விகிதாசாரமாக ஒரு மின்னழுத்தத்தை வெளியிடுகிறது, இது Arduino இன் சீரியல் மானிட்டரில் மின்னோட்ட மதிப்புகளை எளிதாகப் படித்து காண்பிக்க அனுமதிக்கிறது. மின்சார விநியோகங்கள் அல்லது பேட்டரி அமைப்புகள் போன்ற பல்வேறு பயன்பாடுகளில் மின்னோட்டத்தை கண்காணிக்க விரும்புவோருக்கு இந்த திட்டம் சிறந்தது.

ACS712 சென்சாரை Arduino உடன் இணைக்கும் ஒரு எளிய சுற்றை நாம் உருவாக்குவோம், பின்னர் சென்சாரின் வெளியீட்டைப் படிக்க ஒரு நிரலை எழுதுவோம். எதிர்பார்க்கப்படும் முடிவு சீரியல் மானிட்டரில் நிகழ்நேர மின்னோட்ட அளவீடுகள் காண்பிக்கப்படுவதாகும். செயல்படுத்தல் குறித்த தெளிவுக்கு, வீடியோவைப் பார்க்க மறக்காதீர்கள் (வீடியோவில் 02:00 மணிக்கு).
வன்பொருள் விளக்கம்
Allegro ACS712 மின்னோட்ட சென்சார் என்பது ஒரு கச்சிதமான தொகுதி ஆகும், இது நீங்கள் தேர்ந்தெடுக்கும் பதிப்பைப் பொறுத்து 30A வரை மின்னோட்டங்களை அளவிட முடியும். இதில் மூன்று பின்கள் உள்ளன: மின்சக்திக்கு VCC, தரைக்கு GND, மற்றும் அளவிடப்பட்ட மின்னோட்டத்துடன் தொடர்புடைய மின்னழுத்தத்தை வழங்கும் ஒரு வெளியீட்டு பின். சென்சார் ஹால் விளைவு கொள்கையைப் பயன்படுத்துகிறது, அங்கு ஒரு கடத்தி வழியாக செல்லும் மின்னோட்டம் ஒரு காந்தப்புலத்தை உருவாக்குகிறது. இந்த புலம் கண்டறியப்பட்டு மின்னழுத்தமாக மாற்றப்படுகிறது, பின்னர் அது Arduino க்கு அனுப்பப்படுகிறது.
இந்த தொகுதி வெவ்வேறு மின்னோட்ட மதிப்பீடுகளில் (5A, 20A, மற்றும் 30A) கிடைக்கிறது மற்றும் முறையே 185 mV/A, 100 mV/A, மற்றும் 66 mV/A மின்னழுத்த அளவுகளை வெளியிடுகிறது. அதாவது சென்சார் வழியாக பாயும் ஒவ்வொரு ஆம்பியர் மின்னோட்டத்திற்கும், நீங்கள் படித்து செயலாக்கக்கூடிய ஒரு தொடர்புடைய மின்னழுத்த வெளியீட்டைப் பெறுவீர்கள். இந்த அம்சம் பல்வேறு பயன்பாடுகளுக்கு இதை பல்துறை திறன் கொண்டதாக ஆக்குகிறது.
டேட்டாஷீட் விவரங்கள்
| உற்பத்தியாளர் | Allegro Microsystems |
|---|---|
| பகுதி எண் | ACS712ELCTR-30A-T |
| லாஜிக்/IO மின்னழுத்தம் | 4.5–5.5 V |
| விநியோக மின்னழுத்தம் | 5 V |
| வெளியீட்டு மின்னோட்டம் (ஒரு சேனலுக்கு) | 30 A அதிகபட்சம் |
| PWM அதிர்வெண் வழிகாட்டுதல் | பொருந்தாது |
| உள்ளீட்டு லாஜிக் வரம்புகள் | பொருந்தாது |
| மின்னழுத்த வீழ்ச்சி / RDS(on) / செறிவு | 1.2 mΩ |
| வெப்ப வரம்புகள் | 150 °C அதிகபட்சம் |
| பேக்கேஜ் | TO-220 |
| குறிப்புகள் / மாறுபாடுகள் | 5A, 20A, மற்றும் 30A இல் கிடைக்கிறது |
- குறுகிய சுற்றுகளைத் தவிர்க்க சரியான வயரிங்கை உறுதிசெய்யவும்.
- மின்னோட்ட மதிப்பீடுகளுக்கு பொருத்தமான கேஜ் கம்பியைப் பயன்படுத்தவும் (30A க்கு 12 AWG).
- செயல்பாட்டின் போது தொகுதியின் வெப்பநிலையை கண்காணிக்கவும்.
- அதிக மின்னோட்ட பயன்பாடுகளுக்கு ஹீட் சிங்க் சேர்க்க கருதுங்கள்.
- உங்கள் குறிப்பிட்ட பயன்பாட்டின் அடிப்படையில் சென்சார் வெளியீட்டை அளவீடு செய்யவும்.
வயரிங் வழிமுறைகள்

Allegro ACS712 சென்சாரை உங்கள் Arduino உடன் இணைக்க, ACS712 இன் VCC பின்னை Arduino இன் 5V பின்னுடன் இணைப்பதன் மூலம் தொடங்கவும். அடுத்து, சென்சாரின் GND பின்னை Arduino இன் GND பின்களில் ஒன்றுடன் இணைக்கவும். ACS712 இன் வெளியீட்டு பின் Arduino இன் அனலாக் உள்ளீட்டு பின் A0 உடன் இணைக்கப்பட வேண்டும்.
மின்னோட்ட அளவீட்டிற்கு, சென்சாருடன் தொடரில் சுமையை இணைக்கவும். அதாவது உங்கள் மின்சார மூலத்திலிருந்து நேர்மறை கம்பி சென்சாரின் மின்னோட்ட உள்ளீட்டு முனையங்களில் ஒன்றிற்குள் செல்ல வேண்டும், மற்ற முனையம் சுமையுடன் இணைகிறது. சுமையின் மறுபக்கம் மின்சார மூலத்திற்குத் திரும்பி, சுற்றை நிறைவு செய்ய வேண்டும். அதிக வெப்பமடைவதைத் தவிர்க்க நீங்கள் அளவிடும் மின்னோட்டத்திற்கு பொருத்தமான கேஜ் கம்பியைப் பயன்படுத்துவதை உறுதிசெய்யவும்.
குறியீடு எடுத்துக்காட்டுகள் & விளக்கம்
பின்வரும் குறியீடு பகுதி அனலாக் பின்னை துவக்கி சீரியல் மானிட்டரை அமைக்கிறது:
#define VIN A0 // Arduino பின் A0 ஐ மின்னழுத்த உள்ளீடாக வரையறுக்கவும் (V in)
const float VCC = 5.0; // விநியோக மின்னழுத்தம் 4.5 முதல் 5.5V வரை. பொதுவாக 5V.
இங்கே, சென்சார் வெளியீடு இணைக்கப்பட்ட அனலாக் உள்ளீட்டு பின்னாக VIN ஐ வரையறுக்கிறோம். மேலும் விநியோக மின்னழுத்தம் VCC ஐ 5V ஆக அமைக்கிறோம்.

லூப் செயல்பாட்டில், ACS712 சென்சாரிலிருந்து மின்னழுத்தத்தைப் படித்து மின்னோட்டத்தை கணக்கிடுகிறோம்:
float voltage_raw = (5.0 / 1023.0) * analogRead(VIN); // சென்சாரிலிருந்து மின்னழுத்தத்தைப் படிக்கவும்
float current = voltage / sensitivity[model]; // உணர்திறன் அடிப்படையில் மின்னோட்டத்தை கணக்கிடவும்
இங்கே, சென்சாரிலிருந்து மூல மின்னழுத்தத்தைப் படித்து, பயன்படுத்தப்படும் சென்சாரின் மாதிரியின் அடிப்படையில் உணர்திறன் வரிசையைப் பயன்படுத்தி உண்மையான மின்னோட்டமாக மாற்றுகிறோம்.
இறுதியாக, மின்னோட்ட அளவீடுகளை சீரியல் மானிட்டரில் அச்சிடுகிறோம்:
if (abs(current) > cutOffLimit) {
Serial.print("V: ");
Serial.print(voltage, 3); // 3 தசம இடங்களுடன் மின்னழுத்தத்தை அச்சிடவும்
Serial.print("V, I: ");
Serial.print(current, 2); // 2 தசம இடங்களுடன் மின்னோட்டத்தை அச்சிடவும்
Serial.println("A");
} else {
Serial.println("No Current");
}
இந்த பகுதி மின்னோட்டம் வரையறுக்கப்பட்ட வெட்டு வரம்பை மீறுகிறதா என்பதை சரிபார்த்து, மின்னழுத்தம் மற்றும் மின்னோட்ட அளவீடுகளை சீரியல் மானிட்டரில் அச்சிடுகிறது. மின்னோட்டம் வரம்பிற்குக் கீழே இருந்தால், அது "No Current" என வெளியிடுகிறது.
முழு குறியீட்டிற்கு, கட்டுரைக்கு கீழே ஏற்றப்பட்ட குறியீட்டைப் பார்க்கவும்.
செயல்விளக்கம் / என்ன எதிர்பார்க்கலாம்
நீங்கள் குறியீட்டை இயக்கி சுற்றுக்கு மின்சாரம் வழங்கும்போது, சீரியல் மானிட்டரில் மின்னோட்ட அளவீடுகள் காண்பிக்கப்படுவதைக் காண வேண்டும். சுமையை சரிசெய்யும்போது, மின்னோட்டம் வெட்டு வரம்பிற்கு மேல் இருந்தால், அளவீடுகள் அதற்கேற்ப மாற வேண்டும். குறிப்பாக அதிகபட்ச மதிப்பீடுகளுக்கு அருகில் செயல்படும்போது சென்சாரின் வெப்பநிலை குறித்து எச்சரிக்கையாக இருங்கள்.
/*
*
* 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);
}
வளங்கள் மற்றும் மேற்கோள்கள்
இன்னும் எந்த வளங்களும் இல்லை.
கோப்புகள்📁
தரவியல் அட்டவணை (பிடிஎப்)
-
Allegro ACS712 AC/DC 4A, 20A, 30A Current Sensor Datasheet
robojax-allegro_ACS712_current_sensor.pdf0.65 MB
பிரிட்சிங் கோப்பு
-
Allegre ACS712 Current Sensor
Allegreo ACS712 Current Sensor.fzpz0.03 MB