Search Code

Tutorial ESP32 23/55 - Citirea tensiunii potențiometrului folosind ESP32 | Kitul IoT ESP32 de la SunFounder

Tutorial ESP32 23/55 - Citirea tensiunii potențiometrului folosind ESP32 | Kitul IoT ESP32 de la SunFounder

În acest tutorial, vom învăța cum să măsurăm tensiunea continuă de la un potențiometru folosind modulul ESP32 de la SunFounder. Proiectul va demonstra, de asemenea, cum să estompăm un LED pe baza poziției potențiometrului. Pe măsură ce rotiți potențiometrul în sens invers acelor de ceasornic, citirea tensiunii scade, iar LED-ul se estompează în consecință. Acest exercițiu va oferi o înțelegere practică a utilizării convertorului analog-digital (ADC) din ESP32.

potențiometru
Potențiometru sau rezistor variabil
Potențiometru sau rezistor variabil

ESP32 este un microcontroler puternic echipat cu capacități Wi-Fi și Bluetooth integrate, fiind ideal pentru proiecte IoT. În acest tutorial, vom utiliza caracteristicile sale de intrare analogică pentru a citi nivelurile de tensiune de la un potențiometru, controlând totodată luminozitatea unui LED pe baza acestor citiri. Rezultatul va fi un LED receptiv care își variază intensitatea pe măsură ce ajustați potențiometrul.

Hardware Explicat

Pentru acest proiect, vom avea nevoie de următoarele componente:

  • Modulul ESP32: Microcontrolerul principal care va citi tensiunea potențiometrului și va controla LED-ul.
  • Potențiometru: Un rezistor variabil folosit pentru a ajusta tensiunea. Are trei pini: doi pentru rezistențe fixe și unul care variază.
  • LED: O diodă emițătoare de lumină a cărei luminozitate va fi controlată pe baza poziției potențiometrului.
  • Rezistor: Un rezistor de 220 ohmi pentru a limita curentul prin LED.

Potențiometrul funcționează prin varierea rezistenței între pinii săi, permițând generarea unei tensiuni pe care ESP32 o poate citi prin ADC-ul său. Luminozitatea LED-ului este controlată folosind modularea lățimii impulsurilor (PWM) pentru a ajusta puterea livrată acestuia pe baza citirii analogice.

Detalii din Fișa Tehnică

Instrucțiuni de Cablare

ESP32-23-fading-LED_pot-wiring

Pentru a cabla componentele, începeți prin conectarea potențiometrului. Conectați unul dintre pinii săi exteriori la sursa de alimentare de 3.3V de pe ESP32. Conectați celălalt pin exterior la masă (GND). Pinul din mijloc al potențiometrului va fi conectat la pinul 35 de pe ESP32, care este folosit pentru citirea tensiunii analogice.

Apoi, pentru LED, conectați pinul mai lung (anodul) la pinul 26 de pe ESP32 printr-un rezistor de 220 ohmi. Conectați pinul mai scurt (catodul) al LED-ului la masă. Asigurați-vă că toate conexiunile sunt sigure și verificați de două ori orientarea LED-ului pentru a preveni deteriorarea.

Potentiometer or variable resistor

Exemple de Cod și Explicații

Fragmentul de cod următor demonstrează cum să configurați ESP32 pentru a citi potențiometrul și a controla LED-ul:

const int potPin = 35; // Potențiometru conectat la
const int ledPin = 26; // LED conectat la

// Setări PWM
const int freq = 5000; // Frecvența PWM
const int resolution = 12; // Rezoluția PWM (biți)

În acest extras, definim pinii pentru potențiometru și LED. Frecvența și rezoluția PWM sunt, de asemenea, setate, ceea ce va determina nivelurile de luminozitate ale LED-ului.

În continuare, vom inițializa configurarea:

void setup() {
  Serial.begin(115200);

  // Configurare PWM
  ledcAttach(ledPin, freq, resolution);
}

În funcția de configurare, inițializăm comunicarea serială și configurăm setările PWM pentru LED. Această configurare rulează o singură dată când programul pornește.

În final, funcția loop citește continuu valoarea potențiometrului și ajustează luminozitatea LED-ului:

void loop() {
  int potValue = analogRead(potPin); // citește valoarea potențiometrului
  uint32_t voltage_mV = analogReadMilliVolts(potPin); // Citește tensiunea în milivolți

  ledcWrite(ledPin, potValue);
  // Ieșirea serială omisă pentru concizie
}

În buclă, citim valoarea analogică de la potențiometru și o traducem pentru a controla luminozitatea LED-ului. Ieșirea serială arată valoarea potențiometrului și tensiunea, ajutând la verificarea citirilor.

Demonstrație / Ce să Vă Așteptați

Când circuitul este configurat corect și codul este încărcat, rotirea potențiometrului ar trebui să rezulte într-o schimbare corespunzătoare a citirii tensiunii afișate în monitorul serial. LED-ul ar trebui să se estompeze lin, crescând și scăzând pe măsură ce potențiometrul este ajustat. Dacă LED-ul nu răspunde conform așteptărilor, verificați conexiunile de cablare și asigurați-vă că potențiometrul funcționează corect (în video la 11:30).

Marcaje Temporale Video

  • 00:00 Început
  • 2:02 Ce este Pot
  • 4:15 Măsurarea rezistenței potențiometrului
  • 6:59 Pagina de documentație
  • 8:56 Cablare explicată
  • 12:28 Cod Arduino explicat
  • 15:58 Selectarea plăcii ESP32 și a portului COM în Arduino IDE
  • 17:40 Demonstrație de citire a valorii potențiometrului cu ESP32

Imagini

Potentiometer or variable resistor
Potentiometer or variable resistor
ESP32-23-fading-LED_pot-schematic
ESP32-23-fading-LED_pot-schematic
ESP32-23-fading-LED_pot-wiring
ESP32-23-fading-LED_pot-wiring
potentiometer
potentiometer
822-ESP32 Tutorial 23/55- Arduino code for fading LED
Limba: C++
const int potPin = 35; // Potentiometer connected to
const int ledPin = 26; // LED connected to

// PWM settings
const int freq = 5000; // PWM frequency
const int resolution = 12; // PWM resolution (bits)

void setup() {
  Serial.begin(115200);

  // Configure PWM
  ledcAttach(ledPin, freq, resolution);
}

void loop() {

  int potValue = analogRead(potPin); // read the value of the potentiometer
  uint32_t voltage_mV = analogReadMilliVolts(potPin); // Read the voltage in millivolts

  ledcWrite(ledPin, potValue);

  Serial.print("Potentiometer Value: ");
  Serial.print(potValue);
  Serial.print(", Voltage: ");
  Serial.print(voltage_mV / 1000.0); // Convert millivolts to volts
  Serial.println(" V");

  delay(100);
}

Resurse și referințe

Fișiere📁

Nu sunt disponibile fișiere.