কোড অনুসন্ধান

ESP32 টিউটোরিয়াল ১৫/৫৫ - ESP32 L293D দিয়ে DC মোটরের গতি নিয়ন্ত্রণ | SunFounder-এর ESP32 IoT লার্নিং কিট

ESP32 টিউটোরিয়াল ১৫/৫৫ - ESP32 L293D দিয়ে DC মোটরের গতি নিয়ন্ত্রণ | SunFounder-এর ESP32 IoT লার্নিং কিট

ESP32 টিউটোরিয়াল 15/55 - ESP32 L293D দিয়ে DC মোটরের গতি নিয়ন্ত্রণ | SunFounder-এর ESP32 IoT লার্নিং কিট

ESP32 দিয়ে একটি DC মোটর নিয়ন্ত্রণ করা প্রথমে কঠিন মনে হতে পারে, তবে সঠিক উপাদান এবং বোঝাপড়ার সাথে এটি বেশ সহজ। এই টিউটোরিয়ালে, আমরা L293D মোটর ড্রাইভার ব্যবহার করে একটি DC মোটরের গতি এবং দিক নিয়ন্ত্রণ করার জন্য একটি প্রকল্প তৈরি করব। শেষে, আপনার কাছে একটি কার্যকরী সেটআপ থাকবে যা মোটরটিকে সামনে এবং পিছনে ঘোরাতে পারে এবং এর গতি সামঞ্জস্য করতে পারে। ভিজ্যুয়াল রেফারেন্সের জন্য, (ভিডিওতে 00:00) ভিডিওটি দেখতে ভুলবেন না।

ESP32-15_L293D_motor_schematic

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

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

L293D-Motor-Driver-IC

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

প্রস্তুতকারক Texas Instruments
পার্ট নম্বর L293D
লজিক/IO ভোল্টেজ 2.5 – 7 V
সাপ্লাই ভোল্টেজ 4.5 – 36 V
আউটপুট কারেন্ট (প্রতি চ্যানেল) 600 mA (সাধারণ)
পিক কারেন্ট (প্রতি চ্যানেল) 1.2 A (সর্বোচ্চ)
PWM ফ্রিকোয়েন্সি নির্দেশিকা 20 kHz (সাধারণ)
ইনপুট লজিক থ্রেশহোল্ড 0.8 V (উচ্চ), 2.0 V (নিম্ন)
ভোল্টেজ ড্রপ / RDS(on) / স্যাচুরেশন 1.5 V (সর্বোচ্চ)
থার্মাল সীমা 150 °C (সর্বোচ্চ)
প্যাকেজ 16-DIP
নোট / ভেরিয়েন্ট কোয়াড্রপল হাফ-এইচ ড্রাইভার

 

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

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

ESP32-15_L293D_motor_wiring

ESP32 এবং L293D মোটর ড্রাইভার ওয়্যার করতে, পাওয়ার সংযোগ দিয়ে শুরু করুন। L293D-এর পিন 16 আপনার পাওয়ার সাপ্লাইয়ের পজিটিভ টার্মিনালের সাথে এবং পিন 4 গ্রাউন্ডের সাথে সংযুক্ত করুন। এরপর, মোটরটি সংযুক্ত করুন: একটি টার্মিনাল পিন 3-এ এবং অন্যটি L293D-এর পিন 6-এ। কন্ট্রোল সিগন্যালের জন্য, ESP32-এর GPIO পিন 13 L293D-এর পিন 2-এর সাথে এবং GPIO পিন 14 পিন 7-এর সাথে সংযুক্ত করুন। অবশেষে, একটি সাধারণ রেফারেন্স নিশ্চিত করতে ESP32-এর গ্রাউন্ড L293D গ্রাউন্ডের সাথে সংযুক্ত করতে ভুলবেন না। ভিডিওতে বিকল্প ওয়্যারিং উল্লেখ থাকলে (ভিডিওতে 05:00), দেখানো নির্দিষ্ট পরিবর্তনগুলি অনুসরণ করতে ভুলবেন না।

কোড উদাহরণ ও ওয়াকথ্রু

মোটর নিয়ন্ত্রণের কোডটি মোটরের জন্য পিন সংজ্ঞায়িত করা এবং তাদের মোড সেট করা নিয়ে গঠিত। সেটআপ ফাংশন থেকে একটি অংশ এখানে দেওয়া হলো:

#define motor1A 13
#define motor2A 14


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

এই স্নিপেটে, আমরা মোটর কন্ট্রোল পিনগুলিকে ধ্রুবক হিসাবে সংজ্ঞায়িত করি এবং সেটআপ ফাংশনে সেগুলিকে আউটপুট হিসাবে সেট করি। এটি অত্যন্ত গুরুত্বপূর্ণ কারণ এটি মোটর নিয়ন্ত্রণের জন্য পিনগুলিকে প্রস্তুত করে। লুপ ফাংশনটি যেখানে মোটরের আচরণ নিয়ন্ত্রিত হয়। লুপের একটি মূল অংশ এখানে দেওয়া হলো:

void loop() {
  digitalWrite(motor1A, HIGH);     
  digitalWrite(motor2A, LOW);   
  delay(2000); 

  digitalWrite(motor1A, LOW);     
  digitalWrite(motor2A, HIGH);    
  delay(2000); 

  digitalWrite(motor1A, LOW);     
  digitalWrite(motor2A, LOW);    
  delay(3000);
}

এই কোডটি মোটরটিকে 2 সেকেন্ডের জন্য এক দিকে ঘোরায়, তারপর আরও 2 সেকেন্ডের জন্য দিক বিপরীত করে এবং অবশেষে 3 সেকেন্ডের জন্য মোটরটি বন্ধ রাখে। এই লুপটি অনির্দিষ্টকালের জন্য পুনরাবৃত্তি হবে, যা ক্রমাগত নিয়ন্ত্রণের অনুমতি দেয়। আরও বিস্তারিত অন্তর্দৃষ্টি এবং সম্পূর্ণ কোডের জন্য, নিবন্ধের নীচে লোড হওয়া সম্পূর্ণ প্রোগ্রামটি দেখুন।

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

সফলভাবে ওয়্যারিং এবং কোড আপলোড করার পরে, আপনার দেখা উচিত মোটরটি 2 সেকেন্ডের জন্য এক দিকে ঘুরছে, আরও 2 সেকেন্ডের জন্য দিক পরিবর্তন করছে এবং তারপর 3 সেকেন্ডের জন্য বন্ধ থাকছে। মোটরটি প্রত্যাশা অনুযায়ী সাড়া না দিলে, বিপরীত পোলারিটি বা ভুল পিন সংযোগের মতো সাধারণ সমস্যাগুলি পরীক্ষা করুন (ভিডিওতে 08:00)। এই সেটআপটি ESP32 এবং L293D ব্যবহার করে একটি DC মোটরের গতি এবং দিক নিয়ন্ত্রণ করার একটি সরল উপায় প্রদান করে।

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

  • 00:00 শুরু
  • 2:01 ডিসি মোটরের পরিচিতি
  • 6:14 L293D মোটর ড্রাইভার
  • 9:17 প্রকল্প ডকুমেন্টেশন
  • 11:04 ওয়্যারিং ব্যাখ্যা
  • 14:41 ESP32 দিয়ে আরডুইনো মোটর নিয়ন্ত্রণ
  • 17:10 ESP32 বোর্ডের জন্য আরডুইনো পোর্ট নির্বাচন
  • 18:52 প্রকল্প প্রদর্শন
  • 22:08 ESP32 ব্যবহার করে মোটর গতি নিয়ন্ত্রণ
  • 26:22 গতি নিয়ন্ত্রণ ডেমো
  • 28:01 গতি এবং দিক নিয়ন্ত্রণের আরডুইনো কোড
  • 29:05 গতি এবং দিকের প্রদর্শন

ছবি

L293D-Motor-Driver-IC
L293D-Motor-Driver-IC
ESP32-15_L293D_motor_schematic
ESP32-15_L293D_motor_schematic
ESP32-15_L293D_motor_wiring
ESP32-15_L293D_motor_wiring
814-ESP32 Tutorial 15/55- Arduino code for L293D motor control
ভাষা: 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(2000); 

  // Rotate in the opposite direction
  digitalWrite(motor1A, LOW);     
  digitalWrite(motor2A, HIGH);    
  delay(2000); 

  // Stop
  digitalWrite(motor1A, LOW);     
  digitalWrite(motor2A, LOW);    
  delay(3000);
}

আপনাকে যা প্রয়োজন হতে পারে

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

ফাইলসমূহ📁

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