Szukaj kodu

Samouczek ESP32 23/55 - Odczyt napięcia potencjometru za pomocą ESP32 | Zestaw IoT ESP32 od SunFounder

Samouczek ESP32 23/55 - Odczyt napięcia potencjometru za pomocą ESP32 | Zestaw IoT ESP32 od SunFounder

W tym samouczku nauczymy się, jak mierzyć napięcie stałe z potencjometru za pomocą modułu ESP32 firmy SunFounder. Projekt będzie również pokazywał, jak płynnie regulować jasność diody LED w zależności od położenia potencjometru. Gdy obracasz potencjometr w lewo, odczyt napięcia maleje, a dioda LED odpowiednio przygasa. To ćwiczenie zapewni praktyczne zrozumienie korzystania z przetwornika analogowo-cyfrowego (ADC) w ESP32.

potencjometr
Potencjometr lub rezystor zmienny
Potencjometr lub rezystor zmienny

ESP32 to wydajny mikrokontroler wyposażony we wbudowaną łączność Wi-Fi i Bluetooth, co czyni go idealnym do projektów IoT. W tym samouczku wykorzystamy jego funkcje wejścia analogowego do odczytu poziomów napięcia z potencjometru, jednocześnie sterując jasnością diody LED na podstawie tych odczytów. Efektem będzie responsywna dioda LED, która zmienia swoją intensywność podczas regulacji potencjometru.

Objaśnienie sprzętu

Do tego projektu będziemy potrzebować następujących komponentów:

  • Moduł ESP32: Główny mikrokontroler, który będzie odczytywał napięcie z potencjometru i sterował diodą LED.
  • Potencjometr: Rezystor zmienny używany do regulacji napięcia. Ma trzy piny: dwa dla rezystorów stałych i jeden zmienny.
  • Dioda LED: Dioda elektroluminescencyjna, której jasność będzie sterowana na podstawie położenia potencjometru.
  • Rezystor: Rezystor 220 omów do ograniczenia prądu płynącego przez diodę LED.

Potencjometr działa poprzez zmianę rezystancji między swoimi pinami, co pozwala mu generować napięcie, które ESP32 może odczytać przez swój ADC. Jasność diody LED jest sterowana za pomocą modulacji szerokości impulsu (PWM) w celu dostosowania mocy dostarczanej do niej na podstawie odczytu analogowego.

Szczegóły z karty katalogowej

Instrukcje podłączenia

ESP32-23-fading-LED_pot-wiring

Aby podłączyć komponenty, zacznij od podłączenia potencjometru. Podłącz jeden z jego zewnętrznych pinów do zasilania 3,3 V na ESP32. Podłącz drugi zewnętrzny pin do masy (GND). Środkowy pin potencjometru zostanie podłączony do pinu 35 na ESP32, który służy do odczytu napięcia analogowego.

Następnie, dla diody LED, podłącz dłuższy pin (anodę) do pinu 26 na ESP32 przez rezystor 220 omów. Podłącz krótszy pin (katodę) diody LED do masy. Upewnij się, że wszystkie połączenia są pewne i sprawdź dwukrotnie orientację diody LED, aby zapobiec jej uszkodzeniu.

Potentiometer or variable resistor

Przykłady kodu i omówienie

Poniższy fragment kodu pokazuje, jak skonfigurować ESP32 do odczytu potencjometru i sterowania diodą LED:

const int potPin = 35; // Potencjometr podłączony do
const int ledPin = 26; // Dioda LED podłączona do

// Ustawienia PWM
const int freq = 5000; // Częstotliwość PWM
const int resolution = 12; // Rozdzielczość PWM (bity)

W tym fragmencie definiujemy piny dla potencjometru i diody LED. Ustawiana jest również częstotliwość i rozdzielczość PWM, które określą poziomy jasności diody LED.

Następnie zainicjalizujemy konfigurację:

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

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

W funkcji setup inicjalizujemy komunikację szeregową i konfigurujemy ustawienia PWM dla diody LED. Ta konfiguracja jest wykonywana raz po uruchomieniu programu.

Na koniec funkcja loop w sposób ciągły odczytuje wartość potencjometru i dostosowuje jasność diody LED:

void loop() {
  int potValue = analogRead(potPin); // odczytaj wartość potencjometru
  uint32_t voltage_mV = analogReadMilliVolts(potPin); // Odczytaj napięcie w miliwoltach

  ledcWrite(ledPin, potValue);
  // Wyjście szeregowe pominięte dla zwięzłości
}

W pętli odczytujemy wartość analogową z potencjometru i przeliczamy ją na sterowanie jasnością diody LED. Wyjście szeregowe pokazuje wartość potencjometru i napięcie, co pomaga w weryfikacji odczytów.

Demonstracja / Czego się spodziewać

Gdy obwód jest prawidłowo podłączony, a kod wgrany, obracanie potencjometru powinno skutkować odpowiednią zmianą odczytu napięcia wyświetlanego w monitorze szeregowym. Dioda LED powinna płynnie przygasać i rozjaśniać się podczas regulacji potencjometru. Jeśli dioda LED nie reaguje zgodnie z oczekiwaniami, sprawdź połączenia przewodów i upewnij się, że potencjometr działa prawidłowo (na wideo o 11:30).

Znaczniki czasu wideo

  • 00:00 Start
  • 2:02 Co to jest potencjometr
  • 4:15 Pomiar rezystancji potencjometru
  • 6:59 Strona dokumentacji
  • 8:56 Wyjaśnienie podłączenia
  • 12:28 Wyjaśnienie kodu Arduino
  • 15:58 Wybór płytki ESP32 i portu COM w Arduino IDE
  • 17:40 Demonstracja odczytu wartości potencjometru za pomocą ESP32

Obrazy

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
Język: 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);
}

Zasoby i odniesienia

Pliki📁

Brak dostępnych plików.