دیتاشیت acs758
نمایش نسخه قابل چاپ
دیتاشیت acs758
سلام دوستان گرامی.
این ماژول دارای 4تا پین به این صورت هست vcc , gnd , ou1 , ou2 .
تغذیه که مشخص هست، اما اون دوتا خروجی رو باید به چه صورتی استفاده کنیم؟
آیا خروجیها را باید به ADC وصل کنیم؟ یعنی باید همزمان هردوتا adc رو اندازه گیری کنیم؟ طریقه محاسبه آمپر به چه صورت هست؟
کسی مثالی، چیزی ازش نداره؟
ممنون از پاسختون...
سلام لطفا دیتاشیت یا اطلاعاتی برای این ماژول نه سنسور قرار دهید
با تشکر
این ماژول ساخت شرکت cjmcu هست و عملا دیتاشیتی نداره
اما ماژول ای دیگه این آی سی رو میتونید دنبال کنید و ببیند چجوری وصل کردن و کد زدن .
ACS758 Arduino Current Module Tutorial | Henry's Bench
از این ماژول میشه برای اندازه گیری جریان ac استفاده کرد؟؟ اگر میشه چطور
با این ماژول میشه جریان ac رو اندازه گیری کرد؟؟؟؟؟
درود . این ماژول برای ولتاژ AC و DC قابل استفاده است . تفاوتی در اتصال ماژول وجود ندارد . تنها در برنامه آردوینو باید تغییراتی صورت پذیرد .
برای اتصال ماژول به این طریق عمل کنید .
فایل پیوست 3657
در صورتی که سیم ها جابجا متصل شوند عدد خروجی منفی خواهد بود .
کد برنامه آردوینو برای ولتاژ DC شامل تنظیماتی هست که طبق جدول زیر باید عمل شود .
فایل پیوست 3658
و در نهایت کد برنامه
کد:const int analogIn = A0;
// Set your scale factor
int mVperAmp = 40; // See Scale Factors Below
/* Scale Factors
50A bi-directional = 40
50A uni-directional = 60
100A bi-directional = 20
100A uni-directional = 40
150A bi-directional = 13.3
150A uni-directioal = 26.7
200A bi-directional = 10
200A uni-directional = 20
*/
// Set you Offset
int ACSoffset = 2500; // See offsets below
/* Offsets
If bi-directional = 2500
If uni- directional = 600
*/
int RawValue= 0;
double Voltage = 0;
double Amps = 0;
void setup(){
Serial.begin(9600);
}
void loop(){
RawValue = analogRead(analogIn);
Voltage = (RawValue / 1023.0) * 5000; // Gets you mV
Amps = ((Voltage - ACSoffset) / mVperAmp);
Serial.print("Raw Value = " ); // shows pre-scaled value
Serial.print(RawValue);
Serial.print("\t mV = "); // shows the voltage measured
Serial.print(Voltage,3); // the '3' after voltage allows you to display 3 digits after decimal point
Serial.print("\t Amps = "); // shows the voltage measured
Serial.println(Amps,3); // the '3' after voltage allows you to display 3 digits after decimal point
delay(2500);
}
طبق نقشه زیر مدار را می بندیم
فایل پیوست 3659
برای بدست آوردن جریان ، به محاسبه RMS نیاز داریم . شکل زیر را ببینید :
فایل پیوست 3660
و در نهایت کد برنامه
کد:const int sensorIn = A0;
int mVperAmp = 185; // use 100 for 20A Module and 66 for 30A Module
double Voltage = 0;
double VRMS = 0;
double AmpsRMS = 0;
void setup(){
Serial.begin(9600);
}
void loop(){
Voltage = getVPP();
VRMS = (Voltage/2.0) *0.707;
AmpsRMS = (VRMS * 1000)/mVperAmp;
Serial.print(AmpsRMS);
Serial.println(" Amps RMS");
}
float getVPP()
{
float result;
int readValue; //value read from the sensor
int maxValue = 0; // store max value here
int minValue = 1024; // store min value here
uint32_t start_time = millis();
while((millis()-start_time) < 1000) //sample for 1 Sec
{
readValue = analogRead(sensorIn);
// see if you have a new maxValue
if (readValue > maxValue)
{
/*record the maximum sensor value*/
maxValue = readValue;
}
if (readValue < minValue)
{
/*record the maximum sensor value*/
minValue = readValue;
}
}
// Subtract min from max
result = ((maxValue - minValue) * 5.0)/1024.0;
return result;
}
سلام دوستان
میخواستم بدونم دقت این ماژول چقدره؟ آیا در حدی هست که از یه ADC مثل hx711 استفاده کنم؛ یا اینکه رزولوشنش از ADC خود میکرو کمتره؟!؟