Koyarwar ESP32 55/55 - Yadda ake auna wutar lantarki ta DC 12V, 24V ko 100V | SunFounder's ESP32 IoT Learning kit
A cikin wannan koyawa, za mu koyi yadda ake amfani da ESP32 don auna nau'ikan wutar lantarki na DC daban-daban, ciki har da 12V, 24V, har ma da har zuwa 100V. Ta hanyar amfani da da'irar raba wutar lantarki da aka yi daga resistors guda biyu, za mu iya auna manyan wutar lantarki cikin aminci ba tare da haɗarin lalata microcontroller na ESP32 ba. Wannan aikin zai nuna yadda ake karanta waɗannan wutar lantarki da kuma nuna su akan serial monitor, yana ba da haske mai mahimmanci game da tushen wutar lantarki naka.
Kalli bidiyon don cikakken bayani (a cikin bidiyo a 00:00). Za mu yi amfani da tsarin raba wutar lantarki mai sauƙi don cimma wannan, yana tabbatar da cewa za mu iya auna wutar lantarki da suka wuce iyakar shigarwa na ESP32 cikin aminci. Wannan koyawa ta dace sosai ga waɗanda ke son faɗaɗa iliminsu game da ESP32 da iyawarsa.
Ƙididdigar lissafin wutar lantarki
Bayanin Kayan aiki
Abubuwan da suka fi muhimmanci ga wannan aikin sun haɗa da microcontroller na ESP32, resistors guda biyu waɗanda ke samar da raba wutar lantarki, da tushen wutar lantarki da kake son aunawa. ESP32 yana da Wi-Fi da Bluetooth da aka gina a ciki, yana mai da shi zaɓi mai amfani ga ayyukan IoT. Raba wutar lantarki, wanda aka yi da resistors guda biyu, yana ba mu damar rage wutar lantarki zuwa matakin aminci wanda ESP32 zai iya sarrafa shi.
A cikin wannan saitin, resistor ɗaya, R1, yana tsayayye a 10kΩ, yayin da resistor na biyu, R2, zai iya bambanta dangane da matsakaicin wutar lantarki da kake son aunawa. Wutar lantarki a kan R1 ita ce za mu karanta ta amfani da fil ɗin shigarwa na analog na ESP32, wanda zai ba mu damar lissafin ainihin wutar lantarki daga tushen wutar.
- Tabbatar cewa resistors suna da 1% tolerance don ingantaccen aunawa.
- Yi amfani da raba wutar lantarki don hana wuce gona da iri na ƙimar shigarwa na ESP32.
- Rike
R1a 10kΩ kuma daidaitaR2dangane da kewayon wutar lantarki. - Duba haɗin kai don guje wa shigarwa marasa ƙarfi waɗanda zasu iya haifar da karatun da ba daidai ba.
- Yi amfani da tushen wutar lantarki mai tsayayye don daidaitaccen aunawa.
Umarnin Haɗin Waya
Don haɗa da'irar, fara da haɗa ƙarshen ɗaya na resistor R1 (10kΩ) zuwa tushen wutar lantarki naka, da ɗayan ƙarshen zuwa fil 35 na GPIO na ESP32. Wannan fil zai karanta wutar lantarki a kan R1. Na gaba, haɗa resistor R2 (wanda zai iya zama 100kΩ ko wani ƙima dangane da bukatunka) tsakanin wurin haɗin R1 da ƙasa. Tabbatar cewa ƙasan tushen wutar lantarki kuma an haɗa shi da ƙasan ESP32.
Misali, idan kana auna 24V, haɗa tashar tabbatacciya ta wutar lantarki zuwa R1, sannan haɗa ɗayan ƙarshen R1 zuwa fil 35 da wurin haɗin resistors guda biyu. Ƙarshen kyauta na R2 ya kamata ya tafi ƙasa. Wannan tsari zai ba ESP32 damar karanta wutar lantarki da aka rage cikin aminci.
Misalan Code & Bayani
const int R1 = 10000; // Ƙimar Resistor 1
const int R2 = 100000; // Ƙimar Resistor 2
const int VinPin = 35; // Fil ɗin shigar wutar lantarki
A cikin wannan ɓangaren, muna ayyana ƙimar resistors ɗinmu, R1 da R2, da kuma fil ɗin analog VinPin wanda za mu yi amfani da shi don karanta wutar lantarki. Waɗannan ma'aunai suna da mahimmanci ga lissafin wutar lantarki ɗinmu.
void readVoltage() {
uint32_t voltage_mV = analogReadMilliVolts(VinPin); // Karanta a millivolts
VB1 = (((float) voltage_mV) / 1000.0) * (1 + (float)R2/(float)R1);
}
Wannan aikin yana karanta wutar lantarki a millivolts daga fil ɗin da aka ƙayyade kuma yana lissafin ainihin wutar lantarki VB1 ta amfani da ƙididdigar raba wutar lantarki. Wannan yana da mahimmanci don fassara wutar lantarki da aka rage zuwa ainihin ƙimar.
void maxVoltage() {
float maxVoltage = (3.1) * (1 + (float)R2/(float)R1);
}
A nan, muna ayyana aiki don lissafin da buga matsakaicin wutar lantarki da za a iya aunawa cikin aminci dangane da ƙimar resistors. Wannan aiki yana da mahimmanci don tabbatar da cewa ba mu wuce iyakokin wutar lantarki na ESP32 ba.
Nuni / Abin da za ka Yi Tsammani
Lokacin da ka kunna code ɗin, ya kamata ka ga wutar lantarki da aka auna tana nunawa akan serial monitor. Yayin da kake daidaita wutar lantarki mai shigowa, karatun ya kamata ya nuna waɗannan canje-canje a lokaci guda, yana nuna iyawar ESP32 na auna nau'ikan wutar lantarki na DC daidai. Idan ka fuskanci sauye-sauye a cikin karatun, yi la'akari da matsakaita samfurori da yawa don samun sakamako mafi tsayayye (a cikin bidiyo a 12:30).
Lokutan Bidiyo
- 00:00 Farko
- 1:59 Gabatarwa ga aikin
- 5:45 Raba wutar lantarki
- 7:33 Bayanin haɗin waya
- 9:14 Bayanin Code na Arduino
- 14:45 Zaɓin board ɗin ESP32 da COM Port akan Arduino IDE
- 16:27 Auna 30V ta amfani da ESP32 Nuni
- 21:36 Canza R2 zuwa 330k ohm
- 22:33 Matsakaicin ƙarancin aunawa
/*
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
Albarkatun da kuma shafukan da za a duba
Babu kayan aiki tukuna.
Fayiloli📁
Babu fayiloli da ake da su.