دیتاشیت acs758
دیتاشیت acs758
سلام دوستان گرامی.
این ماژول دارای 4تا پین به این صورت هست vcc , gnd , ou1 , ou2 .
تغذیه که مشخص هست، اما اون دوتا خروجی رو باید به چه صورتی استفاده کنیم؟
آیا خروجیها را باید به ADC وصل کنیم؟ یعنی باید همزمان هردوتا adc رو اندازه گیری کنیم؟ طریقه محاسبه آمپر به چه صورت هست؟
کسی مثالی، چیزی ازش نداره؟
ممنون از پاسختون...
سلام لطفا دیتاشیت یا اطلاعاتی برای این ماژول نه سنسور قرار دهید
با تشکر
این ماژول ساخت شرکت cjmcu هست و عملا دیتاشیتی نداره
اما ماژول ای دیگه این آی سی رو میتونید دنبال کنید و ببیند چجوری وصل کردن و کد زدن .
ACS758 Arduino Current Module Tutorial | Henry's Bench
از این ماژول میشه برای اندازه گیری جریان ac استفاده کرد؟؟ اگر میشه چطور
با این ماژول میشه جریان ac رو اندازه گیری کرد؟؟؟؟؟
درود . این ماژول برای ولتاژ AC و DC قابل استفاده است . تفاوتی در اتصال ماژول وجود ندارد . تنها در برنامه آردوینو باید تغییراتی صورت پذیرد .
برای اتصال ماژول به این طریق عمل کنید .
در صورتی که سیم ها جابجا متصل شوند عدد خروجی منفی خواهد بود .
کد برنامه آردوینو برای ولتاژ DC شامل تنظیماتی هست که طبق جدول زیر باید عمل شود .
و در نهایت کد برنامه
کد: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); }
طبق نقشه زیر مدار را می بندیم
برای بدست آوردن جریان ، به محاسبه RMS نیاز داریم . شکل زیر را ببینید :
و در نهایت کد برنامه
کد: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 خود میکرو کمتره؟!؟