د ESP32 ټیوټوریل 55/55 - څنګه د 12V، 24V یا 100V DC ولټاژ اندازه کړو | د SunFounder د ESP32 IoT زده کړې کټ
په دې ټیوټوریل کې به موږ زده کړو چې څنګه ESP32 وکاروو ترڅو مختلف DC ولټاژونه اندازه کړو، په شمول د 12V، 24V، او حتی تر 100V پورې. د دوو رزیسټرونو څخه جوړ شوي د ولټاژ ویشونکي سرکټ په کارولو سره، موږ کولی شو په خوندي توګه لوړ ولټاژونه اندازه کړو پرته له دې چې ESP32 مایکروکنټرولر ته زیان ورسوو. دا پروژه به وښیې چې څنګه دا ولټاژونه ولولئ او په سیریل مانیټر کې یې ښکاره کړئ، ستاسو د بریښنا سرچینو په اړه ارزښتناکه معلومات چمتو کوي.
د هراړخیز توضیح لپاره ویډیو وګورئ (په ویډیو کې په 00:00). موږ به د دې ترلاسه کولو لپاره یو ساده ولټاژ ویشونکی ترتیب وکاروو، ډاډ ترلاسه کوو چې موږ کولی شو هغه ولټاژونه اندازه کړو چې د ESP32 اعظمي انپټ کچې څخه زیات وي په خوندي توګه. دا ټیوټوریل د هغو کسانو لپاره مناسب دی چې غواړي د ESP32 او د هغې وړتیاوو په اړه خپله پوهه پراخه کړي.
د ولټاژ محاسبه کولو فورمول
هارډویر تشریح شوی
د دې پروژې کلیدي برخې شاملې دي ESP32 مایکروکنټرولر، دوه رزیسټرونه چې د ولټاژ ویشونکی جوړوي، او د بریښنا سرچینه چې تاسو یې اندازه کول غواړئ. ESP32 د جوړ شوي Wi-Fi او Bluetooth وړتیاوو سره سمبال دی، چې دا د 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 د ESP32 بورډ او COM پورټ په Arduino IDE کې غوره کول
- 16:27 د ESP32 په کارولو سره د 30V اندازه کول ښودنه
- 21:36 R2 په 330k ohm بدل شو
- 22:33 د لږترلږه ولټاژ اندازه کول
/*
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);
}
Common Course Links
Common Course Files
Resources & references
No resources yet.
Files📁
No files available.