Ẹkọ ESP32 55/55 - Bí a ṣe le wọn folti DC 12V, 24V tàbí 100V | SunFounder's ESP32 IoT Learning kit
Nínú ẹ̀kọ́ yìí, a óò kọ́ bí a ṣe le lo ESP32 láti díwọ̀n ọ̀pọ̀lọpọ̀ folti DC, pẹ̀lú 12V, 24V, àti pàápàá títí dé 100V. Nípa lílo ẹ̀yà ìpín folti tí a ṣe láti àwọn resistor méjì, a lè díwọ̀n àwọn folti gíga láìsí ewu sí ẹ̀rọ aláṣàkóso ESP32. Iṣẹ́ yìí yóò ṣàfihàn bí a ṣe lè ka àwọn folti wọ̀nyí àti ṣàfihàn wọn lórí ẹ̀rọ ìṣàkóso serial, tí yóò pèsè òye tí ó níye lórí àwọn orísun agbára rẹ.
Wo fídíò náà fún àlàyé tí ó pé (nínú fídíò ní 00:00). A óò lo ìtòlẹ́ ìpín folti tí ó rọrùn láti ṣe èyí, ní ìrànlọ́wọ́ láti rí i pé a lè díwọ̀n àwọn folti tí ó kọjá àwọn ipele ìfisí tí ESP32 ní láìséwu. Ẹ̀kọ́ yìí pípé fún àwọn tí ń wá láti gbòòrò ìmọ̀ wọn nípa ESP32 àti agbára rẹ̀.
Ìgbékalẹ̀ láti ṣírò folti
Àlàyé Ohun èlò
Àwọn èròjà pàtàkì fún iṣẹ́ yìí ní ESP32 microcontroller, àwọn resistor méjì tí ń ṣe ìpín folti, àti orísun agbára tí o fẹ́ díwọ̀n. ESP32 ní Wi-Fi àti Bluetooth tí a kọ́ sínú rẹ̀, tí ó mú un di yíyan tí ó wúlò fún àwọn iṣẹ́ IoT. Ìpín folti, tí a ṣe pẹ̀lú àwọn resistor méjì, gbà wá láàyè láti dín folti náà kù sí ipele tí ó ṣàìléwu tí ESP32 lè ṣe àkópọ̀.
Nínú ìtòlẹ́ yìí, resistor kan, R1, ti wa ni àmúlò ní 10kΩ, nígbà tí resistor kejì, R2, lè yàtọ̀ nípa lórí folti tí o fẹ́ díwọ̀n. Folti tí ó wà lórí R1 ni a óò ka nípa lílo ẹ̀yà ìfisí analog ti ESP32, tí yóò jẹ́ kí a ṣírò folti àkọ́kọ́ láti orísun agbára.
- Rí i pé àwọn resistor jẹ́ 1% tolerance fún àwọn ìwọ̀n tí ó pé.
- Lo ìpín folti láti ṣèdíwọ́n kíkọjá àwọn ipele folti ìfisí ti ESP32.
- Pa
R1mọ́ ní 10kΩ àti ṣàtúnṣeR2nípa lórí ìwọ̀n folti. - Ṣàyẹ̀wò àwọn ìsopọ̀ láti yẹra fún àwọn ìfisí tí ń lọ́fọ̀ọ̀fọ̀ tí ó lè yorí sí àwọn ìwọ̀n tí kò pé.
- Lo orísun agbára tí ó dúró ṣinṣin fún àwọn ìwọ̀n folti tí ó dúró.
Àwọn Ìtọ́ni Ìsopọ̀
Láti so ẹ̀yà náà, bẹ̀rẹ̀ nípa sísopọ̀ ìkángun kan ti resistor R1 (10kΩ) sí orísun folti rẹ, àti ìkángun kejì sí GPIO pin 35 ti ESP32. Pin yìí yóò ka folti tí ó wà lórí R1. Nígbà tí ó tó, so resistor R2 (tí ó lè jẹ́ 100kΩ tàbí iye mìíràn nípa lórí àìní rẹ) láàrin ibi ìkópọ̀ ti R1 àti ilẹ̀. Rí i pé ilẹ̀ orísun agbára náà tún ti sopọ̀ sí ilẹ̀ ESP32.
Fún àpẹẹrẹ, bí o bá ń díwọ̀n 24V, so ẹ̀yà rere ti orísun agbára sí R1, lẹ́yìn náà so ìkángun kejì ti R1 sí pin 35 àti ibi ìkópọ̀ ti àwọn resistor méjì. Ìkángun ọ̀fẹ́ ti R2 yẹ kí ó lọ sí ilẹ̀. Ìtòlẹ́ yìí yóò jẹ́ kí ESP32 ka folti tí a dín kù ní ìwọ̀n tí ó ṣàìléwu.
Àwọn Àpẹẹrẹ Kóòdù & Ìṣàlàyé
const int R1 = 10000; // Iye Resistor 1
const int R2 = 100000; // Iye Resistor 2
const int VinPin = 35; // Pin ìfisí folti
Nínú àyọkà yìí, a ṣàlàyé àwọn iye fún àwọn resistor wa, R1 àti R2, àti pin analog VinPin tí a óò lo láti ka folti. Àwọn ìwọ̀n wọ̀nyí ṣe pàtàkì fún àwọn ìṣírò folti wa.
void readVoltage() {
uint32_t voltage_mV = analogReadMilliVolts(VinPin); // Ka ní millivolts
VB1 = (((float) voltage_mV) / 1000.0) * (1 + (float)R2/(float)R1);
}
Ìṣiṣẹ́ yìí ka folti ní millivolts láti pin tí a yàn àti ṣírò folti gidi VB1 nípa lílo ìgbékalẹ̀ ìpín folti. Èyí ṣe pàtàkì fún yíyí folti tí a dín kù padà sí iye àkọ́kọ́.
void maxVoltage() {
float maxVoltage = (3.1) * (1 + (float)R2/(float)R1);
}
Níhìn-ín, a ṣàlàyé ìṣiṣẹ́ kan láti ṣírò àti tẹ̀ folti tí ó pọ̀ jù tí a lè díwọ̀n ní ìwọ̀n tí ó ṣàìléwu nípa lílo àwọn iye resistor. Ìṣiṣẹ́ yìí ṣe pàtàkì fún rírí i pé a kò kọjá àwọn ìwọ̀n folti ti ESP32.
Ìṣàfihàn / Ohun tí ó yẹ kí o rí
Nígbà tí o bá ń ṣiṣẹ́ kóòdù náà, o yẹ kí o rí folti tí a díwọ̀n lórí ẹ̀rọ ìṣàkóso serial. Bí o ṣe ń ṣàtúnṣe folti ìfisí, àwọn ìwọ̀n yóò ṣàfihàn àwọn ìyípadà wọ̀nyí ní àkókò gidi, tí ń fi agbára ESP32 láti díwọ̀n ọ̀pọ̀lọpọ̀ folti DC ní ìwọ̀n tí ó pé. Bí o bá ní ìrírí àwọn ìyípadà nínú àwọn ìwọ̀n, rò nípa ṣíṣe àpapọ̀ ọ̀pọ̀lọpọ̀ àwọn àpẹẹrẹ láti gba àbájáde tí ó dúró ṣinṣin (nínú fídíò ní 12:30).
Àwọn Àkókò Fídíò
- 00:00 Ìbẹ̀rẹ̀
- 1:59 Ìfihàn sí iṣẹ́ náà
- 5:45 Ìpín folti
- 7:33 Ìṣàlàyé Ìsopọ̀
- 9:14 Ìṣàlàyé Kóòdù Arduino
- 14:45 Yíyan bọọdì ESP32 àti COM Port lórí Arduino IDE
- 16:27 Díwọ̀n 30V nípa lílo Ìṣàfihàn ESP32
- 21:36 Yípadà R2 sí 330k ohm
- 22:33 Ìwọ̀n folti tí ó kéré jù
/*
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
Orisun & itọkasi
Ko si awọn orisun sibẹsibẹ.
Fáìlìs📁
Ko si awọn faili ti o wa.