Search Code

ESP32 ٹیوٹوریل 55/55 - 12V، 24V یا 100V DC وولٹیج کی پیمائش کیسے کریں | سن فاؤنڈر کا ESP32 IoT لرننگ کٹ

ESP32 ٹیوٹوریل 55/55 - 12V، 24V یا 100V DC وولٹیج کی پیمائش کیسے کریں | سن فاؤنڈر کا ESP32 IoT لرننگ کٹ

اس ٹیوٹوریل میں، ہم سیکھیں گے کہ ESP32 کا استعمال کرتے ہوئے مختلف DC وولٹیجز کی پیمائش کیسے کی جائے، بشمول 12V، 24V، اور یہاں تک کہ 100V تک۔ دو ریزسٹرس سے بنے وولٹیج ڈیوائیڈر سرکٹ کا استعمال کرتے ہوئے، ہم ESP32 مائیکروکنٹرولر کو نقصان پہنچانے کے خطرے کے بغیر محفوظ طریقے سے زیادہ وولٹیجز کی پیمائش کر سکتے ہیں۔ یہ پروجیکٹ ظاہر کرے گا کہ ان وولٹیجز کو کیسے پڑھا جائے اور انہیں سیریل مانیٹر پر کیسے دکھایا جائے، جو آپ کے پاور ذرائع کے بارے میں قیمتی بصیرت فراہم کرے گا۔

ESP32-55-any-voltage-main

مکمل وضاحت کے لیے ویڈیو دیکھیں (ویڈیو میں 00:00 پر)۔ ہم اسے حاصل کرنے کے لیے ایک سادہ وولٹیج ڈیوائیڈر کنفیگریشن استعمال کریں گے، اس بات کو یقینی بناتے ہوئے کہ ہم ان وولٹیجز کی پیمائش کر سکیں جو ESP32 کی زیادہ سے زیادہ ان پٹ لیولز سے تجاوز کرتی ہیں محفوظ طریقے سے۔ یہ ٹیوٹوریل ان لوگوں کے لیے بہترین ہے جو ESP32 اور اس کی صلاحیتوں کے بارے میں اپنے علم کو بڑھانا چاہتے ہیں۔

وولٹیج کا حساب لگانے کا فارمولا

ESP32-55_any-voltrage-formula

ہارڈویئر کی وضاحت

اس پروجیکٹ کے اہم اجزاء میں ESP32 مائیکروکنٹرولر، دو ریزسٹرس جو وولٹیج ڈیوائیڈر بناتے ہیں، اور وہ پاور سورس شامل ہیں جس کی آپ پیمائش کرنا چاہتے ہیں۔ ESP32 بلٹ ان Wi-Fi اور بلوٹوتھ صلاحیتوں سے لیس ہے، جو اسے IoT پروجیکٹس کے لیے ایک ورسٹائل انتخاب بناتا ہے۔ وولٹیج ڈیوائیڈر، جو دو ریزسٹرس سے بنا ہے، ہمیں وولٹیج کو ایک محفوظ سطح تک کم کرنے کی اجازت دیتا ہے جسے ESP32 پروسیس کر سکتا ہے۔

اس سیٹ اپ میں، ایک ریزسٹر، R1، 10kΩ پر فکسڈ ہے، جبکہ دوسرا ریزسٹر، R2، آپ کی پیمائش کی جانے والی زیادہ سے زیادہ وولٹیج کے لحاظ سے مختلف ہو سکتا ہے۔ R1 کے پار وولٹیج وہی ہے جسے ہم ESP32 کے اینالاگ ان پٹ پن کا استعمال کرتے ہوئے پڑھیں گے، جس سے ہمیں پاور سورس سے اصل وولٹیج کا حساب لگانے کی اجازت ملتی ہے۔

 

  • درست پیمائش کے لیے یقینی بنائیں کہ ریزسٹرس 1% ٹالرینس کے ہیں۔
  • ESP32 کے ان پٹ وولٹیج کی حدوں سے تجاوز کرنے سے بچنے کے لیے وولٹیج ڈیوائیڈر استعمال کریں۔
  • R1 کو 10kΩ پر رکھیں اور وولٹیج کی حد کی بنیاد پر R2 کو ایڈجسٹ کریں۔
  • فلوٹنگ ان پٹس سے بچنے کے لیے کنکشن چیک کریں جو غلط ریڈنگز کا باعث بن سکتے ہیں۔
  • مستقل وولٹیج کی پیمائش کے لیے ایک مستحکم پاور سورس استعمال کریں۔

وائرنگ کی ہدایات

سرکٹ کو وائر کرنے کے لیے، R1 ریزسٹر (10kΩ) کے ایک سرے کو اپنے وولٹیج سورس سے جوڑ کر شروع کریں، اور دوسرے سرے کو ESP32 کے GPIO پن 35 سے جوڑیں۔ یہ پن R1 کے پار وولٹیج کو پڑھے گا۔ اگلا، R2 ریزسٹر (جو 100kΩ یا آپ کی ضروریات کے لحاظ سے کوئی اور قدر ہو سکتا ہے) کو R1 کے جنکشن پوائنٹ اور گراؤنڈ کے درمیان جوڑیں۔ یقینی بنائیں کہ پاور سورس کی گراؤنڈ بھی ESP32 کی گراؤنڈ سے منسلک ہے۔

مثال کے طور پر، اگر 24V کی پیمائش کر رہے ہیں، تو پاور سپلائی کے مثبت ٹرمینل کو R1 سے جوڑیں، پھر R1 کے دوسرے سرے کو پن 35 اور دونوں ریزسٹرس کے جنکشن سے جوڑیں۔ R2 کا آزاد سرہ گراؤنڈ پر جانا چاہیے۔ یہ کنفیگریشن ESP32 کو محفوظ طریقے سے کم شدہ وولٹیج پڑھنے کی اجازت دے گی۔

کوڈ کی مثالیں اور واک تھرو

const int R1 = 10000; // ریزسٹر 1 کی قدر
const int R2 = 100000; // ریزسٹر 2 کی قدر
const int VinPin = 35; // وولٹیج ان پٹ پن

اس اقتباس میں، ہم اپنے ریزسٹرس، R1 اور R2 کی قدریں، نیز اینالاگ پن VinPin کی وضاحت کرتے ہیں جسے ہم وولٹیج پڑھنے کے لیے استعمال کریں گے۔ یہ مستقل ہماری وولٹیج کی گنتی کے لیے اہم ہیں۔

void readVoltage() {
  uint32_t voltage_mV = analogReadMilliVolts(VinPin); // ملی وولٹ میں پڑھیں
  VB1 = (((float) voltage_mV) / 1000.0) * (1 + (float)R2/(float)R1);
}

یہ فنکشن مخصوص پن سے ملی وولٹ میں وولٹیج پڑھتا ہے اور وولٹیج ڈیوائیڈر فارمولے کا استعمال کرتے ہوئے اصل وولٹیج VB1 کا حساب لگاتا ہے۔ کم شدہ وولٹیج کو اصل قدر میں واپس ترجمہ کرنے کے لیے یہ اہم ہے۔

void maxVoltage() {
  float maxVoltage = (3.1) * (1 + (float)R2/(float)R1);
}

یہاں، ہم ریزسٹر کی قدروں کی بنیاد پر زیادہ سے زیادہ وولٹیج کا حساب لگانے اور پرنٹ کرنے کے لیے ایک فنکشن کی وضاحت کرتے ہیں جسے محفوظ طریقے سے ناپا جا سکتا ہے۔ یہ فنکشن اس بات کو یقینی بنانے کے لیے اہم ہے کہ ہم ESP32 کی وولٹیج کی حدوں سے تجاوز نہ کریں۔

ڈیموسٹریشن / کیا توقع کریں

جب آپ کوڈ چلاتے ہیں، تو آپ کو سیریل مانیٹر پر ناپی گئی وولٹیج ظاہر ہوتی دیکھنی چاہیے۔ جیسے ہی آپ ان پٹ وولٹیج کو ایڈجسٹ کرتے ہیں، ریڈنگز کو حقیقی وقت میں ان تبدیلیوں کی عکاسی کرنی چاہیے، جو ESP32 کی مختلف DC وولٹیجز کو درست طریقے سے ناپنے کی صلاحیت کو ظاہر کرتی ہے۔ اگر آپ کو ریڈنگز میں اتار چڑھاؤ کا سامنا ہو تو، زیادہ مستحکم نتیجہ حاصل کرنے کے لیے متعدد نمونوں کی اوسط لینے پر غور کریں (ویڈیو میں 12:30 پر)۔

ویڈیو ٹائم اسٹیمپس

  • 00:00 شروع
  • 1:59 پروجیکٹ کا تعارف
  • 5:45 وولٹیج ڈیوائیڈر
  • 7:33 وائرنگ کی وضاحت
  • 9:14 Arduino کوڈ کی وضاحت
  • 14:45 Arduino IDE پر ESP32 بورڈ اور COM پورٹ کا انتخاب
  • 16:27 ESP32 کا استعمال کرتے ہوئے 30V کی پیمائش ڈیموسٹریشن
  • 21:36 R2 کو 330k اوہم میں تبدیل کیا
  • 22:33 کم سے کم وولٹیج کی پیمائش

تصاویر

ESP32-55_any-voltrage-formula
ESP32-55_any-voltrage-formula
ESP32-55-any-voltage-main
ESP32-55-any-voltage-main
805-ESP32 Tutorial 55/55 - Arduino code to measure 12V, 24V or 100V DC voltage
زبان: C++
/*
Arduino code for ESP32 to measure any DC voltage
📚⬇️ Download and resource page https://robojax.com/RJT674
written by Ahmad Shamshiri
watch full video explanation https://youtu.be/znBiVlgV9JI
www.robojax.com
Feb 19, 2024
*/
bool debug = false;
const int R1 = 10000;//we read the voltage acrosst this resistor ()
const int R2 = 100000;

const int VinPin = 35; // Potentiometer connected to GPIO14


// PWM settings
const int freq = 5000; // PWM frequency
const int resolution = 12; // PWM resolution (bits)
const int channel = 0; // PWM channel

float VB1;
int mV;

void setup() {
  Serial.begin(115200);
  // Configure PWM
  ledcSetup(channel, freq, resolution);
  //calculatResistor(R1, 24);//10000 ohm and 35.0V

}



void loop() {
   readVoltage();

  Serial.print("VB1 Voltage: ");
  Serial.print(VB1); // Convert millivolts to volts
  Serial.println("V ");


  delay(500);
}

void readVoltage()
{
  uint32_t voltage_mV = analogReadMilliVolts(VinPin); // Read the voltage in millivolts
  if(debug)
  {
    maxVoltage();
    Serial.print("PinVoltage: ");
    Serial.print(voltage_mV);
    Serial.println("mV");
    Serial.println();//this adds a new line
  }
  mV = voltage_mV;
  VB1 = (((float) voltage_mV) / 1000.0)  * (1 + (float)R2/(float)R1);
}

/*
prints maximum volage
*/
void maxVoltage()
{
  float maxVoltage = ( 3.1)  * (1 + (float)R2/(float)R1);
    Serial.print("****Maximum Voltage: ");
    Serial.print(maxVoltage);
    Serial.println("V");

}//maxVoltage() end

void calculatResistor(int r1, float voltage)
{
    Serial.print("Calculating R2 when R1 is :");
    Serial.print(r1);
    Serial.print(" Ohms and Maximum Input Voltage is ");  
    Serial.print(voltage);  
    Serial.println("V");  
    Serial.print("***** R2 Should Be ");  
    float r2 = (voltage - 3.1)/ (3.1/ (float)r1);
    Serial.print(r2 / 1000.0);  
    Serial.println(" kilo Ohms");  
    while(1);
}

وسائل اور حوالہ جات

ابھی تک کوئی وسائل نہیں۔

فائلیں📁

کوئی فائلیں دستیاب نہیں ہیں۔