ESP32 оқулығы 55/55 - 12V, 24V немесе 100V тұрақты кернеуді қалай өлшеуге болады | SunFounder компаниясының ESP32 IoT оқу жинағы
Бұл оқулықта біз ESP32 көмегімен 12V, 24V және тіпті 100V-қа дейінгі әртүрлі тұрақты кернеулерді қалай өлшеуге болатынын үйренеміз. Екі резистордан тұратын кернеу бөлгіш тізбегін қолдану арқылы біз ESP32 микроконтроллеріне зақым келтірмей, жоғары кернеулерді қауіпсіз өлшей аламыз. Бұл жоба осы кернеулерді қалай оқуға және оларды сериялық мониторда көрсетуге болатынын көрсетеді, бұл сіздің қуат көздеріңіз туралы құнды ақпарат береді.
Толық түсіндіру үшін бейнені қараңыз (бейнеде 00:00). Біз бұған қол жеткізу үшін қарапайым кернеу бөлгіш конфигурациясын қолданамыз, бұл ESP32 максималды кіріс деңгейлерінен асатын кернеулерді қауіпсіз өлшеуге мүмкіндік береді. Бұл оқулық ESP32 және оның мүмкіндіктері туралы білімдерін кеңейткісі келетіндер үшін өте қолайлы.
Кернеуді есептеу формуласы
Аппараттық құрал түсіндірмесі
Бұл жобаның негізгі компоненттеріне ESP32 микроконтроллері, кернеу бөлгішін құрайтын екі резистор және өлшегіңіз келетін қуат көзі кіреді. ESP32 кіріктірілген Wi-Fi және Bluetooth мүмкіндіктерімен жабдықталған, бұл оны IoT жобалары үшін әмбебап таңдауға айналдырады. Екі резистордан тұратын кернеу бөлгіші кернеуді ESP32 өңдей алатын қауіпсіз деңгейге дейін төмендетуге мүмкіндік береді.
Бұл қондырғыда бір резистор, R1, 10кОм-ге бекітілген, ал екінші резистор, R2, өлшегіңіз келетін максималды кернеуге байланысты өзгеруі мүмкін. R1 арқылы өтетін кернеу ESP32 аналогтық кіріс түйреуішінің көмегімен оқитын кернеу болып табылады, бұл бізге қуат көзінен бастапқы кернеуді есептеуге мүмкіндік береді.
- Дәл өлшеулер үшін резисторлардың 1% төзімділігін қамтамасыз етіңіз.
- ESP32 кіріс кернеуінің шектеулерінен асып кетпеу үшін кернеу бөлгішін қолданыңыз.
R1мәнін 10кОм-де ұстап, кернеу диапазонына байланыстыR2мәнін реттеңіз.- Қате көрсеткіштерге әкелетін қалқымалы кірістерді болдырмау үшін қосылымдарды тексеріңіз.
- Тұрақты кернеу өлшеулері үшін тұрақты қуат көзін қолданыңыз.
Сым қосу нұсқаулары
Тізбекті қосу үшін R1 резисторының (10кОм) бір ұшын кернеу көзіне, ал екінші ұшын ESP32 GPIO 35 түйреуішіне қосудан бастаңыз. Бұл түйреуіш R1 арқылы өтетін кернеуді оқиды. Әрі қарай, R2 резисторын (қажеттілікке байланысты 100кОм немесе басқа мән болуы мүмкін) 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-нің әртүрлі тұрақты кернеулерді дәл өлшеу қабілетін көрсетеді. Көрсеткіштерде ауытқулар байқалса, тұрақты нәтиже алу үшін бірнеше үлгілерді орташалауды қарастырыңыз (бейнеде 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 мәнін 330кОм-ге өзгерту
- 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
Ресурстар мен сілтемелер
Әлі ресурстар жоқ.
Файлдар📁
Файлдар жоқ.