Search Code

ESP32 টিউটোরিয়াল ২৩/৫৫ - ESP32 ব্যবহার করে পটেনশিওমিটারের ভোল্টেজ পড়া | SunFounder-এর ESP32 IoT কিট

ESP32 টিউটোরিয়াল ২৩/৫৫ - ESP32 ব্যবহার করে পটেনশিওমিটারের ভোল্টেজ পড়া | SunFounder-এর ESP32 IoT কিট

এই টিউটোরিয়ালে, আমরা শিখব কীভাবে SunFounder-এর ESP32 মডিউল ব্যবহার করে একটি পটেনশিওমিটার থেকে DC ভোল্টেজ পরিমাপ করা যায়। প্রকল্পটি পটেনশিওমিটারের অবস্থানের উপর ভিত্তি করে একটি LED-এর আলো কীভাবে নিয়ন্ত্রণ করা যায় তাও প্রদর্শন করবে। আপনি যখন পটেনশিওমিটার ঘড়ির কাঁটার বিপরীত দিকে ঘোরান, ভোল্টেজ রিডিং কমে যায় এবং LED-এর আলোও সেই অনুযায়ী কমে যায়। এই অনুশীলনটি ESP32-তে অ্যানালগ-টু-ডিজিটাল কনভার্টার (ADC) ব্যবহার করার একটি ব্যবহারিক ধারণা প্রদান করবে।

পটেনশিওমিটার
Potentiometer or variable resistor
পটেনশিওমিটার বা পরিবর্তনশীল রোধক

ESP32 একটি শক্তিশালী মাইক্রোকন্ট্রোলার যা বিল্ট-ইন Wi-Fi এবং ব্লুটুথ ক্ষমতা সহ আসে, যা এটিকে IoT প্রকল্পের জন্য আদর্শ করে তোলে। এই টিউটোরিয়ালে, আমরা এর অ্যানালগ ইনপুট বৈশিষ্ট্যগুলি ব্যবহার করে একটি পটেনশিওমিটার থেকে ভোল্টেজ স্তর পড়ব, পাশাপাশি এই রিডিংগুলির উপর ভিত্তি করে একটি LED-এর উজ্জ্বলতা নিয়ন্ত্রণ করব। ফলাফল হবে একটি প্রতিক্রিয়াশীল LED যা আপনি পটেনশিওমিটার সামঞ্জস্য করার সাথে সাথে তার তীব্রতা পরিবর্তন করবে।

হার্ডওয়্যার ব্যাখ্যা

এই প্রকল্পের জন্য, আমাদের নিম্নলিখিত উপাদানগুলির প্রয়োজন হবে:

  • ESP32 মডিউল: প্রধান মাইক্রোকন্ট্রোলার যা পটেনশিওমিটারের ভোল্টেজ পড়বে এবং LED নিয়ন্ত্রণ করবে।
  • পটেনশিওমিটার: একটি পরিবর্তনশীল রোধক যা ভোল্টেজ সামঞ্জস্য করতে ব্যবহৃত হয়। এর তিনটি পিন রয়েছে: দুটি স্থির রোধকের জন্য এবং একটি যা পরিবর্তিত হয়।
  • LED: একটি আলো-নিঃসরণকারী ডায়োড যার উজ্জ্বলতা পটেনশিওমিটারের অবস্থানের উপর ভিত্তি করে নিয়ন্ত্রিত হবে।
  • রোধক: LED-এর মাধ্যমে কারেন্ট সীমিত করার জন্য একটি 220-ওহম রোধক।

পটেনশিওমিটার তার পিনগুলির মধ্যে রোধ পরিবর্তন করে কাজ করে, যা এটিকে একটি ভোল্টেজ তৈরি করতে দেয় যা ESP32 তার ADC-এর মাধ্যমে পড়তে পারে। LED-এর উজ্জ্বলতা পালস উইডথ মডুলেশন (PWM) ব্যবহার করে নিয়ন্ত্রিত হয় যা অ্যানালগ রিডিংয়ের উপর ভিত্তি করে এটিতে সরবরাহ করা শক্তি সামঞ্জস্য করে।

ডেটাশিট বিবরণ

ওয়্যারিং নির্দেশাবলী

ESP32-23-fading-LED_pot-wiring

উপাদানগুলি সংযোগ করতে, পটেনশিওমিটার সংযোগ করে শুরু করুন। এর একটি বাইরের পিন ESP32-এর 3.3V পাওয়ার সাপ্লাইয়ের সাথে সংযুক্ত করুন। অন্য বাইরের পিনটি গ্রাউন্ডের (GND) সাথে সংযুক্ত করুন। পটেনশিওমিটারের মাঝের পিনটি ESP32-এর পিন 35-এর সাথে সংযুক্ত হবে, যা অ্যানালগ ভোল্টেজ পড়ার জন্য ব্যবহৃত হয়।

এরপর, LED-এর জন্য, লম্বা পিনটি (অ্যানোড) একটি 220-ওহম রোধকের মাধ্যমে ESP32-এর পিন 26-এর সাথে সংযুক্ত করুন। LED-এর ছোট পিনটি (ক্যাথোড) গ্রাউন্ডের সাথে সংযুক্ত করুন। নিশ্চিত করুন যে সমস্ত সংযোগ নিরাপদ এবং ক্ষতি রোধ করতে LED-এর অভিযোজন দুবার পরীক্ষা করুন।

Potentiometer or variable resistor

কোড উদাহরণ ও ব্যাখ্যা

নিম্নলিখিত কোড স্নিপেটটি দেখায় যে কীভাবে পটেনশিওমিটার পড়তে এবং LED নিয়ন্ত্রণ করতে ESP32 সেট আপ করা যায়:

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 সেটিংস কনফিগার করি। এই সেটআপটি প্রোগ্রাম শুরু হলে একবার চলে।

অবশেষে, লুপ ফাংশনটি ক্রমাগত পটেনশিওমিটারের মান পড়ে এবং LED-এর উজ্জ্বলতা সামঞ্জস্য করে:

void loop() {
  int potValue = analogRead(potPin); // পটেনশিওমিটারের মান পড়ুন
  uint32_t voltage_mV = analogReadMilliVolts(potPin); // মিলিভোল্টে ভোল্টেজ পড়ুন

  ledcWrite(ledPin, potValue);
  // সংক্ষিপ্ততার জন্য সিরিয়াল আউটপুট বাদ দেওয়া হয়েছে
}

লুপে, আমরা পটেনশিওমিটার থেকে অ্যানালগ মান পড়ি এবং LED-এর উজ্জ্বলতা নিয়ন্ত্রণ করতে এটি অনুবাদ করি। সিরিয়াল আউটপুট পটেনশিওমিটারের মান এবং ভোল্টেজ দেখায়, যা রিডিং যাচাই করতে সাহায্য করে।

প্রদর্শন / কী আশা করবেন

যখন সার্কিটটি সঠিকভাবে সেট আপ করা হয় এবং কোডটি আপলোড করা হয়, তখন পটেনশিওমিটার ঘোরানো সিরিয়াল মনিটরে প্রদর্শিত ভোল্টেজ রিডিংয়ে একটি অনুরূপ পরিবর্তন আনবে। LED-টি পটেনশিওমিটার সামঞ্জস্য করার সাথে সাথে মসৃণভাবে আলো কমাতে এবং বাড়াতে হবে। যদি LED প্রত্যাশিতভাবে সাড়া না দেয়, তাহলে ওয়্যারিং সংযোগগুলি পরীক্ষা করুন এবং নিশ্চিত করুন যে পটেনশিওমিটারটি সঠিকভাবে কাজ করছে (ভিডিওতে 11:30-এ)।

ভিডিও টাইমস্ট্যাম্প

  • 00:00 শুরু
  • 2:02 পট কী
  • 4:15 পটের রোধ পরিমাপ
  • 6:59 ডকুমেন্টেশন পৃষ্ঠা
  • 8:56 ওয়্যারিং ব্যাখ্যা
  • 12:28 Arduino কোড ব্যাখ্যা
  • 15:58 Arduino 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);
}

সম্পদ ও রেফারেন্সসমূহ

ফাইলসমূহ📁

কোনো ফাইল উপলব্ধ নেই।