সম্পূর্ণ নির্দেশিকা: Arduino সহ PCA9685 কন্ট্রোলার এবং আরও অনেক কিছু

  • PCA9685 হল একটি 16-চ্যানেল PWM কন্ট্রোলার যা I2C এর মাধ্যমে যোগাযোগ করে।
  • এটি LED লাইট এবং সার্ভো উভয়ই নিয়ন্ত্রণ করতে পারে এবং এর ফ্রিকোয়েন্সি 1600 Hz পর্যন্ত সামঞ্জস্যযোগ্য।
  • একই I62C বাসে 2টি মডিউল পর্যন্ত সংযোগ করা সম্ভব, 992টি নিয়ন্ত্রণযোগ্য PWM আউটপুটে পৌঁছানো সম্ভব।
  • Adafruit-এর মতো লাইব্রেরিগুলির ব্যবহার Arduino-এর মতো প্ল্যাটফর্মগুলিতে এই উপাদানটির সাথে কাজ করা সহজ করে।

pca9685

মডিউল Arduino জন্য PCA9685 কন্ট্রোলার এবং অন্যান্য প্ল্যাটফর্মগুলি একটি বহুল ব্যবহৃত সমাধান যখন আপনাকে PWM সংকেতগুলির সাথে কাজ করে এমন কয়েকটি ডিভাইস নিয়ন্ত্রণ করতে হবে। যদিও এটি প্রাথমিকভাবে এলইডি নিয়ন্ত্রণ করার জন্য ডিজাইন করা হয়েছিল, তবে এর বহুমুখিতা এটিকে সার্ভো নিয়ন্ত্রণের জন্য একটি ঘন ঘন বিকল্প হতে দেয়। নির্ভুলতা এবং সরলতার সাথে একাধিক ডিভাইস নিয়ন্ত্রণ করার ক্ষমতার জন্য এই চিপটি রোবোটিক্স এবং অটোমেশন প্রকল্পগুলিতে অত্যন্ত জনপ্রিয়।

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

PCA9685 কি এবং এটি কিসের জন্য ব্যবহৃত হয়?

PCA9685 পিন-আউট

El পিসিএ 9685 এটি একটি PWM (পালস প্রস্থ মডুলেশন) নিয়ামক যা 16টি আউটপুট পর্যন্ত পরিচালনা করার জন্য ডিজাইন করা হয়েছে, LED লাইট এবং সার্ভো মোটর নিয়ন্ত্রণের জন্য আদর্শ। এটি I2C বাসের মাধ্যমে যোগাযোগ করে, যার মানে আরডুইনো বা রাস্পবেরি পাই-এর মতো মাইক্রোকন্ট্রোলারের সাথে সংযোগ করতে শুধুমাত্র দুটি পিনের প্রয়োজন। নির্দিষ্ট ঠিকানা ব্যবহারের মাধ্যমে, আপনি প্রায় 62 PWM আউটপুট নিয়ন্ত্রণ করে একই I2C বাসে এই মডিউলগুলির মধ্যে 992টি পর্যন্ত সংযোগ করতে পারেন। এটি এমন প্রকল্পগুলির জন্য একটি খুব শক্তিশালী বিকল্প করে তোলে যার জন্য সমন্বিত পদ্ধতিতে অনেকগুলি ডিভাইস পরিচালনার প্রয়োজন হয়।

সবচেয়ে ব্যাপক ব্যবহার পিসিএ 9685 এটি এমন প্রকল্পগুলিতে যেখানে একটি PWM সংকেত প্রয়োজন। একটি স্পষ্ট উদাহরণ হল সার্ভোর নিয়ন্ত্রণ, যা PWM সংকেত থেকে নিয়ন্ত্রিত হয়। উপরন্তু, নিয়ামক এর একটি নির্ভুলতা আছে 12 বিট, যা এটিকে সর্বাধিক 1600 Hz পর্যন্ত সামঞ্জস্যযোগ্য ফ্রিকোয়েন্সি সহ খুব সূক্ষ্ম সংকেত তৈরি করতে দেয়।

PCA9685 এর বৈশিষ্ট্য এবং সুবিধা

এর অন্যতম প্রধান সুবিধা পিসিএ 9685 এটি ক্রমাগত PWM সংকেত তৈরি করার পরিপ্রেক্ষিতে মাইক্রোকন্ট্রোলার থেকে বোঝা সরিয়ে নেয়। এটি বিশেষত এমন প্রকল্পগুলিতে কার্যকর যেগুলিতে অনেকগুলি ডিভাইস নিয়ন্ত্রণ জড়িত, কারণ এটি প্রধান প্রসেসরকে অন্যান্য কাজের উপর ফোকাস করতে দেয়।

  • 16টি স্বাধীন চ্যানেল: 16টি চ্যানেলের প্রতিটি একটি স্বাধীন PWM সিগন্যাল আউটপুট করতে পারে, যা আপনাকে সার্ভো, মোটর এবং LED লাইটের মতো ডিভাইসগুলি নিয়ন্ত্রণ করতে দেয়।
  • I2C নিয়ন্ত্রণ: PCA9685 প্রধান নিয়ামকের (Arduino, Raspberry Pi, ইত্যাদি) সাথে যোগাযোগ করতে একটি I2C ইন্টারফেস ব্যবহার করে এবং যোগাযোগের জন্য শুধুমাত্র দুটি তারের প্রয়োজন (SDA এবং SCL)।
  • একটি বাসে একাধিক মডিউল: 62টি পর্যন্ত PCA9685 মডিউল একই I2C বাসে সংযুক্ত করা যেতে পারে, 992 পর্যন্ত PWM আউটপুট নিয়ন্ত্রণ করে।
  • সামঞ্জস্যযোগ্য ফ্রিকোয়েন্সি: 1600 Hz পর্যন্ত ফ্রিকোয়েন্সি সমর্থন করে, যদিও সাধারণ সার্ভো নিয়ন্ত্রণের জন্য 50-60 Hz ফ্রিকোয়েন্সি ব্যবহার করা হয়।

Arduino এবং PCA9685 এর মধ্যে সংযোগ

আরডুইনো PCA9685

মধ্যে সংযোগ PCA9685 মডিউল এবং একটি Arduino সহজ, এবং I2C পিন (SCL এবং SDA) এবং পাওয়ার পিন ব্যবহার করে করা হয়। নিম্নলিখিত সারণী বিভিন্ন Arduino মডেলের জন্য সাধারণ সংযোগ নির্দিষ্ট করে:

PCA9685 পিন করুন Arduino Uno/ বড় ভাই আরডুইনো মেগা আরডুইনো লিওনার্দো
GND GND GND GND
5V 5V 5V 5V
SCL A5 21 3
এস্ ডি A4 20 2

এই কনফিগারেশনে, পিন এ 4 এবং এ 5 বা সংশ্লিষ্ট প্ল্যাটফর্মে তাদের সমতুল্য, PCA9685 মডিউলের SDA (ডেটা) এবং SCL (ঘড়ি) পিনের সাথে সংযোগ করুন। অতিরিক্তভাবে, সার্ভো মোটরগুলির জন্য একটি উপযুক্ত বাহ্যিক বিদ্যুৎ সরবরাহ থাকা গুরুত্বপূর্ণ, বিশেষ করে যদি আপনি একাধিক সার্ভোকে সংযুক্ত করেন, কারণ আরডুইনো সঠিকভাবে চালানোর জন্য পর্যাপ্ত বিদ্যুৎ সরবরাহ করে না।

এটি একটি ব্যবহার করার জন্য সুপারিশ করা হয় 5V সরবরাহ সার্ভোকে পাওয়ার জন্য এবং নিশ্চিত করুন যে আপনি পাওয়ার পিনগুলি সঠিকভাবে সংযুক্ত করেছেন। আপনি যদি 16টির বেশি সার্ভো ব্যবহার করেন, তাহলে শক্তিকে স্থিতিশীল করার জন্য বোর্ডে একটি 1000uF ক্যাপাসিটর সোল্ডার করারও সুপারিশ করা হয়।

কোডে কনফিগারেশন

PWM আউটপুট পরিচালনা করার জন্য পিসিএ 9685, Adafruit দ্বারা উন্নত একটি লাইব্রেরি ব্যবহার করা হয়. থেকে ডাউনলোড করতে পারেন আপনার গিটহাব পৃষ্ঠা. এখানে আমরা আপনাকে মডিউল কনফিগার করতে এবং একটি সার্ভো সরানোর জন্য একটি মৌলিক উদাহরণ দেখাই:

#include <Wire.h> #include <Adafruit_PWMServoDriver.h> Adafruit_PWMServoDriver servos = Adafruit_PWMServoDriver(); void setup() { servos.begin(); servos.setPWMFreq(60); // Configura la frecuencia PWM a 60Hz } void loop() { servos.setPWM(0, 0, 172); // Mueve el servo del canal 0 a la posición 0 grados delay(1000); servos.setPWM(0, 0, 565); // Mueve el servo a la posición 180 grados delay(1000); }

এই সাধারণ কোডটি চ্যানেল 0 এর সাথে সংযুক্ত সার্ভোতে একটি সুইপ মোশন সঞ্চালন করে, এটিকে ধীরে ধীরে 0 ডিগ্রি থেকে 180 ডিগ্রিতে নিয়ে যায়। আপনি ফাংশন ব্যবহার করতে পারেন সেটPWM() প্রতিটি PCA9685 আউটপুট স্বাধীনভাবে নিয়ন্ত্রণ করতে।

একই সময়ে বিভিন্ন servos সরানো

এর দুর্দান্ত সুবিধাগুলির মধ্যে একটি পিসিএ 9685 এটি আপনাকে একই সাথে একাধিক সার্ভার নিয়ন্ত্রণ করতে দেয়। এখানে আপনি কিভাবে একই কোড চক্রের মধ্যে একাধিক সার্ভোমোটরকে বিভিন্ন অবস্থানে স্থানান্তর করতে পারেন:

void loop() { setServo(0, 30); setServo(2, 90); setServo(4, 180); delay(1000); } void setServo(uint8_t n_servo, int angulo) { int duty = map(angulo, 0, 180, 172, 565); servos.setPWM(n_servo, 0, duty); }

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

কিভাবে বিভিন্ন servos জন্য সীমা সেট

0° থেকে 180° পর্যন্ত কোণের জন্য সমস্ত সার্ভোর মান একই পরিসীমা নেই। কিছু ক্ষেত্রে, আপনাকে এই মানগুলি কাস্টম সামঞ্জস্য করতে হবে। বিভিন্ন সার্ভারের জন্য আপনি কীভাবে এই সেটিংস তৈরি করতে পারেন তা এখানে:

unsigned int pos0[16]= {172, 256, 246, 246, 246, 172, 246, 200}; unsigned int pos180[16]= {565, 492, 492, 492, 492, 565, 492, 550}; void setServo(uint8_t n_servo, int angulo) { int duty = map(angulo, 0, 180, pos0[n_servo], pos180[n_servo]); servos.setPWM(n_servo, 0, duty); }

এই কোডটি আপনাকে PCA9685 এর সাথে সংযুক্ত প্রতিটি সার্ভোর জন্য সর্বনিম্ন এবং সর্বোচ্চ মানগুলিকে সামঞ্জস্য করতে দেয়, যা আপনি যদি বিভিন্ন সংকেত রেঞ্জের সাথে সার্ভো ব্যবহার করেন তবে এটি অত্যন্ত কার্যকর হবে।

এই সমস্ত কিছু মাথায় রেখে, আপনার কাছে এখন PCA9685 ব্যবহার করে আপনার প্রথম প্রকল্প সেট আপ, সংযোগ এবং কোড করার জন্য প্রয়োজনীয় সবকিছু রয়েছে৷ আপনি স্বাধীনতার একাধিক ডিগ্রি সহ একটি রোবটে কাজ করছেন বা সমান্তরালভাবে অনেকগুলি ডিভাইস নিয়ন্ত্রণ করতে হবে, এই মডিউলটি আপনাকে দক্ষতার সাথে এবং নির্ভুলভাবে করতে অনুমতি দেবে।

আপনি সার্ভো বা PWM আউটপুট নিয়ে কাজ করছেন না কেন, PCA9685 আপনার মাইক্রোকন্ট্রোলারে মাত্র দুটি পিন ব্যবহার করে 16 টি চ্যানেল পর্যন্ত নিয়ন্ত্রণ করা অত্যন্ত সহজ করে তোলে। সামান্য অভিজ্ঞতা এবং ভাল কোড দিয়ে, আপনি প্রধান প্রসেসর ওভারলোড ছাড়াই খুব শক্তিশালী অ্যাপ্লিকেশন তৈরি করতে পারেন।


মন্তব্য করতে প্রথম হতে হবে

আপনার মন্তব্য দিন

আপনার ইমেল ঠিকানা প্রকাশিত হবে না। প্রয়োজনীয় ক্ষেত্রগুলি দিয়ে চিহ্নিত করা *

*

*

  1. ডেটার জন্য দায়বদ্ধ: মিগুয়েল অ্যাঞ্জেল গাটান
  2. ডেটার উদ্দেশ্য: নিয়ন্ত্রণ স্প্যাম, মন্তব্য পরিচালনা।
  3. আইনীকরণ: আপনার সম্মতি
  4. তথ্য যোগাযোগ: ডেটা আইনি বাধ্যবাধকতা ব্যতীত তৃতীয় পক্ষের কাছে জানানো হবে না।
  5. ডেটা স্টোরেজ: ওসেন্টাস নেটওয়ার্কস (ইইউ) দ্বারা হোস্ট করা ডেটাবেস
  6. অধিকার: যে কোনও সময় আপনি আপনার তথ্য সীমাবদ্ধ করতে, পুনরুদ্ধার করতে এবং মুছতে পারেন।