Luka Code

Botɔ ya ESP32 55/55 - Ndenge ya komeka voltage ya DC ya 12V, 24V to 100V | SunFounder's ESP32 IoT Learning kit

Botɔ ya ESP32 55/55 - Ndenge ya komeka voltage ya DC ya 12V, 24V to 100V | SunFounder's ESP32 IoT Learning kit

Na boyekoli oyo, tokoyekola ndenge ya kosalela ESP32 mpona komeka ba voltages ya DC ndenge na ndenge, kozala na 12V, 24V, mpe kino na 100V. Na kosalela circuit ya voltage divider oyo esalemi na ba résistances mibale, tokoki komeka ba voltages ya likolo na libateli mpe na kozanga kobebisa microcontrôleur ya ESP32. Projet oyo ekolakisa ndenge ya kotanga ba voltages oyo mpe kotalisa yango na écran ya serial monitor, mpe kopesa biso boyebi ya ntina na ba sources ya puissance na biso.

ESP32-55-any-voltage-main

Tala vidéo mpona ndimbola ya mobimba (na vidéo na 00:00). Tokosalela configuration ya voltage divider ya pete mpona kosala oyo, mpe kondima ete tokoki komeka ba voltages oyo eleki niveau ya maximum ya entrée ya ESP32 na libateli. Boyekoli oyo ezali malamu mpona bato oyo balingi kokola boyebi na bango ya ESP32 mpe makoki na yango.

Formule ya kotanga voltage

ESP32-55_any-voltrage-formula

Explication ya Hardware

Ba composants ya ntina mpona projet oyo ezali na microcontrôleur ya ESP32, ba résistances mibale oyo esalaka voltage divider, mpe source ya puissance oyo olingi komeka. ESP32 ezali na Wi-Fi mpe Bluetooth oyo esalemi na kati, mpe yango esalaka ete ezala choix ya malamu mpona ba projets ya IoT. Voltage divider, oyo esalemi na ba résistances mibale, epesaka biso nzela ya kokitisa voltage na niveau ya libateli oyo ESP32 ekoki kosala na yango.

Na configuration oyo, résistance moko, R1, ezali ya 10kΩ, ntango résistance ya mibale, R2, ekoki kobongwana kolanda na voltage ya maximum oyo olingi komeka. Voltage oyo ezali na R1 nde tokotanga na kosalela pin ya entrée analogique ya ESP32, mpe yango ekopesa biso nzela ya kotanga voltage ya liboso oyo ewuti na source ya puissance.

 

  • Kamba ete ba résistances ezali na tolérance ya 1% mpona ba mesures ya malamu.
  • Salela voltage divider mpona kopekisa ete voltage ya entrée ya ESP32 eleka na ndelo na yango.
  • Bomba R1 na 10kΩ mpe bongola R2 kolanda na étendue ya voltage.
  • Vérifier ba connexions mpona kokima ba entrées oyo ezangi support mpo ete ekoki kopesa ba lectures oyo ezali malamu te.
  • Salela source ya puissance ya makasi mpona ba mesures ya voltage oyo ezali séquentielle.

Instructions ya câblage

Mpona kobongisa circuit, banda na kokangisa esika moko ya résistance R1 (10kΩ) na source ya voltage na yo, mpe esika mosusu na pin 35 ya GPIO ya ESP32. Pin oyo ekotanga voltage oyo ezali na R1. Na nsima, kanga résistance R2 (oyo ekoki kozala 100kΩ to valeur mosusu kolanda na bamposa na yo) na esika oyo R1 ekutani na ground. Kamba ete ground ya source ya puissance ekangami mpe na ground ya ESP32.

Na ndakisa, soki okomi 24V, kanga terminal ya positif ya source ya puissance na R1, na nsima kanga esika mosusu ya R1 na pin 35 mpe na esika oyo ba résistances mibale ekutani. Esika ya suka ya R2 esengeli kokende na ground. Configuration oyo ekopesa ESP32 nzela ya kotanga voltage oyo ekitisami na libateli.

Ba ndakisa ya Code & Explication

const int R1 = 10000; // Valeur ya résistance 1
const int R2 = 100000; // Valeur ya résistance 2
const int VinPin = 35; // Pin ya entrée ya voltage

Na eteni oyo, tozali kopesa ba valeurs ya ba résistances na biso, R1 mpe R2, mpe mpe pin analogique VinPin oyo tokosalela mpona kotanga voltage. Ba constantes oyo ezali na ntina mingi mpona ba calculs ya voltage na biso.

void readVoltage() {
  uint32_t voltage_mV = analogReadMilliVolts(VinPin); // Tanga na millivolts
  VB1 = (((float) voltage_mV) / 1000.0) * (1 + (float)R2/(float)R1);
}

Fonction oyo etangaka voltage na millivolts na pin oyo bapesi mpe ekalkilaka voltage ya solo VB1 na kosalela formule ya voltage divider. Oyo ezali na ntina mpona kobongola voltage oyo ekitisami mpo ete ezonga na valeur ya liboso.

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

Awa, tozali kopesa fonction mpona kokalkila mpe kotanga voltage ya maximum oyo ekoki komekama na libateli kolanda na ba valeurs ya ba résistances. Fonction oyo ezali na ntina mingi mpona kondima ete tokoki te koleka ba ndelo ya voltage ya ESP32.

Démonstration / Nini Okoki Kozela

Ntango okosalela code, okoki komona voltage oyo emekami na écran ya serial monitor. Ntango ozali kobongola voltage ya entrée, ba lectures esengeli kolakisa ba changements oyo na temps réel, mpe yango elakisi makoki ya ESP32 ya komeka ba voltages ya DC ndenge na ndenge na malamu. Soki ozali komona ba fluctuations na ba lectures, kanisa na kosala moyenne ya ba échantillons ebele mpona kozwa résultat ya makasi koleka (na vidéo na 12:30).

Ba Timestamps ya Vidéo

  • 00:00 Ebandeli
  • 1:59 Introduction na projet
  • 5:45 Voltage divider
  • 7:33 Explication ya câblage
  • 9:14 Explication ya Code ya Arduino
  • 14:45 Kopona carte ya ESP32 mpe COM Port na Arduino IDE
  • 16:27 Komeka 30V na démonstration ya ESP32
  • 21:36 Bobongoli ya R2 na 330k ohm
  • 22:33 Komeka voltage ya minimum

Images

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
Langue: 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);
}

Mokili na bisika

Pas encore de ressources.

Fichiers📁

Aucun fichier disponible.