Search Code

ESP32 টিউটোরিয়াল ১৬/৫৫ - ESP32 এবং L293D ব্যবহার করে মিনি ওয়াটার পাম্প | SunFounder-এর ESP32 IoT লার্নিং কিট

ESP32 টিউটোরিয়াল ১৬/৫৫ - ESP32 এবং L293D ব্যবহার করে মিনি ওয়াটার পাম্প | SunFounder-এর ESP32 IoT লার্নিং কিট

এই টিউটোরিয়ালে, আমরা শিখব কীভাবে ESP32 মাইক্রোকন্ট্রোলার এবং L293D মোটর ড্রাইভার ব্যবহার করে একটি 5V ওয়াটার পাম্প নিয়ন্ত্রণ করতে হয়। এই প্রজেক্টটি মাইক্রোকন্ট্রোলারের সাথে মোটর ড্রাইভার ব্যবহার করার একটি চমৎকার পরিচিতি, যা আপনাকে এমন ডিভাইস নিয়ন্ত্রণ করতে সক্ষম করে যেগুলির মাইক্রোকন্ট্রোলার সরাসরি সরবরাহ করতে পারে তার চেয়ে বেশি কারেন্ট প্রয়োজন। এই টিউটোরিয়ালের শেষে, আপনার কাছে একটি কার্যকরী ওয়াটার পাম্প থাকবে যা প্রোগ্রাম্যাটিকভাবে চালু এবং বন্ধ করা যাবে।

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

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

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

L293D-তে দুটি H-ব্রিজ রয়েছে, যা এটিকে মোটরের দিক এবং গতি নিয়ন্ত্রণ করতে সক্ষম করে। প্রতিটি H-ব্রিজ যেকোনো দিকে একটি মোটর চালাতে পারে, যা মোটর নিয়ন্ত্রণের প্রয়োজন এমন অ্যাপ্লিকেশনের জন্য উপযুক্ত। এই ক্ষেত্রে, আমাদের শুধুমাত্র পাম্পটিকে এক দিকে চালাতে সক্ষম করতে হবে।

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

প্রস্তুতকারকটেক্সাস ইন্সট্রুমেন্টস
পার্ট নম্বরL293D
লজিক/IO ভোল্টেজ4.5 - 36 V
সাপ্লাই ভোল্টেজ4.5 - 36 V
আউটপুট কারেন্ট (প্রতি চ্যানেল)600 mA
পিক কারেন্ট (প্রতি চ্যানেল)1.2 A
PWM ফ্রিকোয়েন্সি নির্দেশিকা1 kHz - 10 kHz
ইনপুট লজিক থ্রেশহোল্ড2 V (উচ্চ), 0.8 V (নিম্ন)
ভোল্টেজ ড্রপ / RDS(on) / স্যাচুরেশন1.5 V (সর্বোচ্চ)
থার্মাল সীমা+150 °C (সর্বোচ্চ)
প্যাকেজDIP-16
নোট / ভেরিয়েন্টইন্ডাকটিভ লোড সুরক্ষার জন্য বিল্ট-ইন ডায়োড অন্তর্ভুক্ত

  • ক্রমাগত অপারেশনের জন্য সঠিক তাপ অপচয় নিশ্চিত করুন।
  • স্থিতিশীল পাওয়ার সাপ্লাইয়ের জন্য ডিকপলিং ক্যাপাসিটর ব্যবহার করুন।
  • ক্ষতি রোধ করতে ইনপুট ভোল্টেজ সম্পর্কে সতর্ক থাকুন।
  • প্রয়োজনে গতি নিয়ন্ত্রণের জন্য PWM প্রয়োগ করুন।
  • শর্ট সার্কিট এড়াতে ওয়্যারিং পরীক্ষা করুন, বিশেষ করে ইন্ডাকটিভ লোডের সাথে।

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

ESP32-16-motor-pump_wiring

ওয়াটার পাম্পের সাথে ESP32 এবং L293D মোটর ড্রাইভার ওয়্যার করতে, এই ধাপগুলি সাবধানে অনুসরণ করুন। প্রথমে, L293D-তে পাওয়ার সাপ্লাই সংযোগ করুন। পিন 1 (মোটর A-এর জন্য এনাবল পিন) এবং পিন 8 (Vcc2) পজিটিভ ভোল্টেজ উৎসে (5V) সংযোগ করুন। পিন 4 (গ্রাউন্ড) আপনার সার্কিটের গ্রাউন্ডে সংযোগ করুন।

এরপর, ESP32-কে L293D-এর সাথে ওয়্যার করুন। ESP32 থেকে GPIO পিন 13-কে L293D-এর পিন 2-এ (ইনপুট 1) সংযোগ করুন, এবং GPIO পিন 14-কে পিন 7-এ (ইনপুট 2) সংযোগ করুন। অবশেষে, ওয়াটার পাম্পটি L293D-এর পিন 3 (আউটপুট 1) এবং পিন 6 (আউটপুট 2) এর সাথে সংযোগ করুন। সঠিক অপারেশনের জন্য সমস্ত গ্রাউন্ড সংযোগ একসাথে বাঁধা আছে তা নিশ্চিত করুন। আপনি যদি এই নির্দেশাবলী অনুসরণ করেন, আপনার ওয়্যারিং সহজবোধ্য এবং কার্যকরী হওয়া উচিত।

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

কোডে, আমরা মোটর নিয়ন্ত্রণের জন্য পিন সংযোগ সংজ্ঞায়িত করি। শনাক্তকারী motor1A এবং motor2A যথাক্রমে ESP32-এর GPIO পিন 13 এবং 14-এর সাথে মিলে যায়। এই পিনগুলি L293D ড্রাইভারের মাধ্যমে ওয়াটার পাম্প নিয়ন্ত্রণ করবে।

#define motor1A 13
#define motor2A 14

void setup() {
  pinMode(motor1A, OUTPUT);
  pinMode(motor2A, OUTPUT);  
}

setup() ফাংশনে, আমরা মোটর নিয়ন্ত্রণ পিনগুলিকে আউটপুট হিসেবে initialize করি। এটি নিশ্চিত করে যে আমরা পাম্প নিয়ন্ত্রণ করতে L293D ড্রাইভারে সংকেত পাঠাতে পারি। loop() ফাংশন তারপর পাম্পের অপারেশন নিয়ন্ত্রণ করে।

void loop() {
  digitalWrite(motor1A, HIGH);     
  digitalWrite(motor2A, LOW);   
  delay(5);
  
  digitalWrite(motor1A, LOW);     
  digitalWrite(motor2A, LOW);    
  delay(2000); // এক সেকেন্ড অপেক্ষা করুন
}

loop() ফাংশনে, আমরা পাম্প চালু করতে motor1A কে HIGH এবং motor2A কে LOW সেট করি। একটি সংক্ষিপ্ত বিলম্বের পরে, আমরা উভয় পিন LOW সেট করে পাম্প বন্ধ করি। এই চক্রটি অনির্দিষ্টকালের জন্য পুনরাবৃত্তি হয়, যা পাম্পকে একটি সংক্ষিপ্ত সময়ের জন্য চালাতে এবং তারপর বন্ধ করতে দেয়।

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

একবার আপনি ওয়্যারিং সম্পন্ন করে কোড আপলোড করলে, আপনার ওয়াটার পাম্পটি একটি চক্রে সক্রিয় এবং নিষ্ক্রিয় হতে দেখা উচিত। পাম্পটি একটি সংক্ষিপ্ত সময়ের জন্য চলবে, তারপর বন্ধ হবে, একটি অন-অফ প্যাটার্ন তৈরি করবে। কোনো সমস্যা এড়াতে আপনার পাওয়ার সাপ্লাই পাম্পের প্রয়োজনীয়তার জন্য পর্যাপ্ত কিনা তা নিশ্চিত করুন (ভিডিওতে 09:30 এ)।

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

  • 00:00 শুরু
  • 1:50 প্রজেক্ট পরিচিতি
  • 3:17 কেন আমাদের Arduino-এর সাথে L293D দরকার?
  • 5:47 ওয়াটার পাম্পের ওয়্যারিং ব্যাখ্যা
  • 10:01 Arduino কোড ব্যাখ্যা
  • 12:21 Arduino IDE-তে ESP32-এর জন্য COM পোর্ট নির্বাচন
  • 14:03 পাম্প চালানোর প্রদর্শন
  • 15:25 পানির সাথে প্রদর্শন

ছবি

ESP32-15_L293D_motor_schematic
ESP32-15_L293D_motor_schematic
ESP32-16-motor-pump_wiring
ESP32-16-motor-pump_wiring
5V DC water pump
5V DC water pump
815-ESP32 Tutorial 16/55 - Arduino code to control DC water pump
ভাষা: C++
#define motor1A 13
#define motor2A 14

// the setup function runs once when you press reset or power the board
void setup() {
  // initialize digital pin as an output.
  pinMode(motor1A, OUTPUT);
  pinMode(motor2A, OUTPUT);  
}

// the loop function runs over and over again forever
void loop() {

  // Rotate
  digitalWrite(motor1A, HIGH);     
  digitalWrite(motor2A, LOW);   
  delay(5);

  // Stop
  digitalWrite(motor1A, LOW);     
  digitalWrite(motor2A, LOW);    
  delay(2000); // wait for a second
}

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

ফাইলসমূহ📁

ডেটাশিট (পিডিএফ)