Search Code

ESP32 ቱቶሪያል 23/55 - የፖቴንሽዮሜትር ቮልቴጅ በESP32 በመጠቀም ማንበብ | SunFounder የESP32 IoT ኪት

ESP32 ቱቶሪያል 23/55 - የፖቴንሽዮሜትር ቮልቴጅ በESP32 በመጠቀም ማንበብ | SunFounder የESP32 IoT ኪት

በዚህ ትምህርት ውስጥ፣ ከSunFounder የESP32 ሞጁል በመጠቀም የDC ቮልቴጅን ከፖቴንሺዮሜትር እንዴት እንደምንለካ እንማራለን። ፕሮጀክቱ በተጨማሪም በፖቴንሺዮሜትሩ አቀማመጥ ላይ በመመስረት LED እንዴት እንደሚደበዝዝ ያሳያል። ፖቴንሺዮሜትሩን በተቃራኒ ሰዓት አቅጣጫ ሲያዞሩ፣ የቮልቴጅ ንባቡ ይቀንሳል እና LED በዚሁ መጠን ይደበዝዛል። ይህ ልምምድ በESP32 ውስጥ የአናሎግ-ወደ-ዲጂታል መቀየሪያን (ADC) ስለመጠቀም ተግባራዊ ግንዛቤ ይሰጣል።

ፖቴንሺዮሜትር
Potentiometer or variable resistor
ፖቴንሺዮሜትር ወይም ተለዋዋጭ ተከላካይ

ESP32 አብሮ የተሰራ ዋይ-ፋይ እና ብሉቱዝ አቅም ያለው ኃይለኛ ማይክሮ መቆጣጠሪያ ነው፣ ይህም ለIoT ፕሮጀክቶች ተስማሚ ያደርገዋል። በዚህ ትምህርት ውስጥ፣ ከፖቴንሺዮሜትር የቮልቴጅ ደረጃዎችን ለማንበብ የአናሎግ ግብዓት ባህሪያቱን እንጠቀማለን፣ እንዲሁም በእነዚህ ንባቦች ላይ በመመስረት የLED ብሩህነትን እንቆጣጠራለን። ውጤቱም ፖቴንሺዮሜትሩን ሲያስተካክሉ ጥንካሬውን የሚቀይር ምላሽ ሰጪ LED ይሆናል።

ሃርድዌር ተብራርቷል

ለዚህ ፕሮጀክት የሚከተሉትን ክፍሎች እንፈልጋለን፦

  • ESP32 ሞጁል፦ የፖቴንሺዮሜትሩን ቮልቴጅ የሚያነብ እና LED የሚቆጣጠር ዋናው ማይክሮ መቆጣጠሪያ።
  • ፖቴንሺዮሜትር፦ ቮልቴጅን ለማስተካከል የሚያገለግል ተለዋዋጭ ተከላካይ። ሶስት ፒኖች አሉት፦ ሁለት ለቋሚ ተከላካዮች እና አንድ የሚለዋወጥ።
  • LED፦ ብሩህነቱ በፖቴንሺዮሜትሩ አቀማመጥ ላይ ተመስርቶ የሚቆጣጠር ብርሃን አመንጪ ዳዮድ።
  • ተከላካይ፦ በLED ውስጥ ያለውን ጅረት ለመገደብ 220-ኦም ተከላካይ።

ፖቴንሺዮሜትሩ በፒኖቹ መካከል ያለውን ተቃውሞ በመቀየር ይሰራል፣ ይህም ESP32 በADC በኩል ሊያነበው የሚችል ቮልቴጅ እንዲፈጥር ያስችላል። የLED ብሩህነት በአናሎግ ንባብ ላይ በመመስረት ወደ እሱ የሚደርሰውን ኃይል ለማስተካከል Pulse Width Modulation (PWM) በመጠቀም ይቆጣጠራል።

የዳታሼት ዝርዝሮች

የሽቦ አገናኝ መመሪያዎች

ESP32-23-fading-LED_pot-wiring

ክፍሎቹን ለማገናኘት፣ ፖቴንሺዮሜትሩን በማገናኘት ይጀምሩ። ከውጪ ፒኖቹ አንዱን በESP32 ላይ ካለው የ3.3V የኃይል አቅርቦት ጋር ያገናኙ። ሌላኛውን የውጪ ፒን ከመሬት (GND) ጋር ያገናኙ። የፖቴንሺዮሜትሩ መካከለኛ ፒን በESP32 ላይ ካለው ፒን 35 ጋር ይገናኛል፣ ይህም የአናሎግ ቮልቴጅን ለማንበብ ያገለግላል።

በመቀጠል፣ ለLED፣ ረጅሙን ፒን (አኖድ) በ220-ኦም ተከላካይ በኩል በESP32 ላይ ካለው ፒን 26 ጋር ያገናኙ። የLEDውን አጭሩን ፒን (ካቶድ) ከመሬት ጋር ያገናኙ። ሁሉም ግንኙነቶች ደህንነታቸው የተጠበቀ መሆናቸውን ያረጋግጡ እና ጉዳት ለመከላከል የLEDውን አቅጣጫ ሁለት ጊዜ ያረጋግጡ።

Potentiometer or variable resistor

የኮድ ምሳሌዎች እና ማብራሪያ

የሚከተለው የኮድ ቁራጭ ESP32 ፖቴንሺዮሜትሩን እንዲያነብ እና LED እንዲቆጣጠር እንዴት ማዋቀር እንደሚቻል ያሳያል፦

const int potPin = 35; // ፖቴንሺዮሜትር የተገናኘው
const int ledPin = 26; // LED የተገናኘው

// PWM ቅንብሮች
const int freq = 5000; // PWM ድግግሞሽ
const int resolution = 12; // PWM ጥራት (ቢትስ)

በዚህ ቁራጭ ውስጥ፣ ለፖቴንሺዮሜትር እና ለLED ፒኖቹን እንገልጻለን። የPWM ድግግሞሽ እና ጥራትም ተቀናብረዋል፣ ይህም የLEDውን የብሩህነት ደረጃዎች ይወስናል።

በመቀጠል፣ ማዋቀሩን እንጀምራለን፦

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

  // PWM አዋቅር
  ledcAttach(ledPin, freq, resolution);
}

በማዋቀር ተግባሩ ውስጥ፣ የተከታታይ ግንኙነትን እንጀምራለን እና ለLED የPWM ቅንብሮችን እናዋቅራለን። ይህ ማዋቀር ፕሮግራሙ ሲጀመር አንዴ ይሰራል።

በመጨረሻም፣ የloop ተግባሩ የፖቴንሺዮሜትሩን እሴት ያለማቋረጥ ያነባል እና የLED ብሩህነትን ያስተካክላል፦

void loop() {
  int potValue = analogRead(potPin); // የፖቴንሺዮሜትሩን እሴት ያንብቡ
  uint32_t voltage_mV = analogReadMilliVolts(potPin); // ቮልቴጁን በሚሊቮልት ያንብቡ

  ledcWrite(ledPin, potValue);
  // የተከታታይ ውፅዓት ለአጭር ጊዜ ተትቷል
}

በloop ውስጥ፣ ከፖቴንሺዮሜትሩ የአናሎግ እሴትን እናነባለን እና የLED ብሩህነትን ለመቆጣጠር እንተረጉማለን። የተከታታይ ውፅዓቱ የፖቴንሺዮሜትሩን እሴት እና ቮልቴጅ ያሳያል፣ ይህም ንባቦቹን ለማረጋገጥ ይረዳል።

ማሳያ / ምን እንደሚጠበቅ

ወረዳው በትክክል ሲዘጋጅ እና ኮዱ ሲሰቀል፣ ፖቴንሺዮሜትሩን ማዞር በተከታታይ መቆጣጠሪያው ላይ በሚታየው የቮልቴጅ ንባብ ላይ ተጓዳኝ ለውጥ ሊያስከትል ይገባል። ፖቴንሺዮሜትሩ ሲስተካከል LED በተቀላጠፈ ሁኔታ መብራት እና መጥፋት አለበት። LED እንደተጠበቀው ምላሽ ካልሰጠ፣ የሽቦ ግንኙነቶችን ያረጋግጡ እና ፖቴንሺዮሜትሩ በትክክል እየሰራ መሆኑን ያረጋግጡ (በቪዲዮው ላይ በ11፡30)።

የቪዲዮ ጊዜ ምልክቶች

  • 00፡00 መጀመሪያ
  • 2፡02 ፖት ምንድን ነው
  • 4፡15 የፖትን ተቃውሞ መለካት
  • 6፡59 የሰነድ ገጽ
  • 8፡56 የሽቦ አገናኝ ተብራርቷል
  • 12፡28 የአርዱኖ ኮድ ተብራርቷል
  • 15፡58 በአርዱኖ IDE ውስጥ የESP32 ቦርድ እና የCOM ወደብ መምረጥ
  • 17፡40 ከESP32 ጋር የፖት እሴትን የማንበብ ማሳያ

ምስሎች

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

ምንጮች እና ምንጮች

ፋይሎች📁

አንድ ፋይል የለም።