شِفر (کود) آردوینو و ویدیو برای کنترلکننده سروو PCA9685، 16 کاناله، 12 بیتی، V1
در این آموزش، نحوه استفاده از کنترلکننده سروو PCA9685 16 کاناله 12 بیتی از شرکت NXP Semiconductor را بررسی خواهیم کرد. این ماجیول به شما امکان میدهد تا حداکثر 16 سروو را کنترل کنید یا یک مجموعه از LEDها را با دقت با استفاده از مدولاسیون عرض پالس (PWM) کمنور کنید. تا پایان این آموزش، شما یک پیکربندی عملی خواهید داشت که میتواند چند سروو را بهصورت جداگانه یا همزمان کنترل کند.

برای روشنتر شدن محتوای این آموزش، شما را تشویق میکنم ویدیوی همراه (در ویدیو در 00:00) را برای مشاهدهٔ نمایش بصری نحوهٔ راهاندازی و فرآیند کدنویسی تماشا کنید.
توضیح سختافزار
ماجیول PCA9685 یک برد جمعوجور است که میتواند چندین سروو را از طریق ارتباط I2C کنترل کند. این ماجیول دارای 16 کانال است و به شما امکان میدهد تا حداکثر 16 سروو را متصل کنید، که هر کدام سیگنال کنترل جداگانه خود را دارند. این ماجیول با تغذیه 5V کار میکند و برای مدیریت سیگنالهای PWM طراحی شده است، که برای کنترل دقیق موقعیت سرووها ضروری است.
برد شامل پایههای اختصاصی برای تغذیه (VCC)، زمین (GND) و ارتباط (SDA و SCL) است. پایه SDA برای انتقال داده استفاده میشود، در حالی که پایه SCL سیگنال ساعت است که هر دو بهترتیب به پایههای آنالوگ A4 و A5 آردوینو متصل میشوند. این پیکربندی ارتباط قابلاطمینان بین آردوینو و ماجیول PCA9685 را تضمین میکند.
جزئیات مشخصات فنی
| تولیدکننده | NXP نیمههادی |
|---|---|
| شماره قطعه | PCA9685 |
| ولتاژ منطق/ورودی/خروجی | 3.3 V تا 5.5 V |
| ولتاژ تغذیه | 2.3 V تا 5.5 V |
| جریان خروجی (برای هر کانال) | حداکثر 25 mA |
| جریان پیک (به ازای هر کانال) | حداکثر 100 mA |
| راهنمای فرکانس PWM | 24 هرتز تا 1.6 کیلوهرتز |
| آستانههای منطق ورودی | 0.3 V (پایین) / 0.7 V (بالا) |
| افت ولتاژ روی مقاومت RDS(روشن)/ اشباع | حداکثر 0.5 ولت |
| محدودیتهای حرارتی | -40 °C تا 125 °C |
| بسته | HTSSOP-28 |
| یادداشتها / نسخهها | کنترلکننده PWM 16 کاناله |
- اطمینان حاصل کنید که یک منبع تغذیه ۵ ولت با جریان کافی دارید (۱ آمپر توصیه میشود).
- برای جلوگیری از آسیب، سرووها را مستقیماً از آردوینو تغذیه نکنید.
- از پایههای صحیح I2C استفاده کنید: SDA به A4 و SCL به A5.
- مقادیر عرض پالس را با توجه به سرووهای خاص خود تنظیم کنید.
- سیمکشی را برای قطبیت صحیح بررسی کنید: GND، VCC و سیگنال.
- برای کاربردهای جریان بالا، استفاده از هیتسینک را در نظر بگیرید.
دستورالعملهای سیمکشی

برای اتصال PCA9685 به آردوینو، ابتدا با وصل کردن تغذیه و زمین شروع کنید. پایه VCC روی PCA9685 را به خروجی 5V آردوینو وصل کنید. سپس پایه GND روی PCA9685 را به GND آردوینو متصل کنید. در ادامه پایه SDA روی PCA9685 را به پایه A4 آردوینو و پایه SCL را به پایه A5 وصل کنید.
برای سرووها، سیم سیگنال را به کانال مربوطه روی PCA9685 متصل کنید (مثلاً CH0 برای سرووی اول)، سیم تغذیه را به یک منبع تغذیه جداگانه وصل کنید (زیرا سرووها ممکن است جریان بیشتری نسبت به آنچه Arduino میتواند تأمین کند نیاز داشته باشند)، و سیم زمین را به زمین مشترک با PCA9685 وصل کنید. مطمئن شوید که سیمهای سیگنال، تغذیه و زمین بهدرستی متصل شدهاند تا از آسیب دیدن قطعات شما جلوگیری شود.
مثالهای شِفر (کود) و راهنمای گامبهگام
در بخش راهاندازی شِفر (کود)، ما ماجیول PCA9685 را مقداردهی اولیه میکنیمpwm.begin()و فرکانس PWM را باpwm.setPWMFreq(60);. این فرکانس ارتباطی سرووها را تنظیم میکند.
void setup() {
Serial.begin(9600);
Serial.println("16 channel Servo test!");
pwm.begin();
pwm.setPWMFreq(60); // Analog servos run at ~60 Hz updates
}درون حلقه، سرووها را با تنظیم مقادیر PWM متناظر با زاویههای موردنظر کنترل میکنیم. تابعangleToPulse(int ang)زاویه را به پهنای پالس مناسب تبدیل میکند، که برای موقعیتیابی دقیق سروو ضروری است.
void loop() {
for( int angle =0; angle<181; angle +=20){
delay(500);
pwm.setPWM(0, 0, angleToPulse(angle) );
}
}در نهایت، تابعangleToPulse(int ang)زاویه را با استفاده از حداقل و حداکثر طول پالس تعریفشده به پهنای پالس تبدیل میکند. این به شما اجازه میدهد موقعیت سروو را بهسادگی بر اساس زاویهای که میخواهید بهدست آورید کنترل کنید.
int angleToPulse(int ang){
int pulse = map(ang,0, 180, SERVOMIN,SERVOMAX);
Serial.print("Angle: ");Serial.print(ang);
Serial.print(" pulse: ");Serial.println(pulse);
return pulse;
}نمایش / آنچه باید انتظار داشته باشید
پس از سیمکشی صحیح و آپلود شِفر (کود)، باید ببینید که سرو در زاویههای مشخص شده با گامهای 20 درجه حرکت میکند. اگر سرو همانطور که انتظار میرود عمل نکرد، سیمکشی را برای اتصالات صحیح بررسی کنید و مطمئن شوید که منبع تغذیه کافی است (در ویدیو در 12:30).
برچسبهای زمانی ویدیو
- 00:00- معرفی PCA9685
- 02:30- دستورالعملهای سیمکشی
- 05:00- مرور شِفر (کود)
- 10:15- نمایش کنترل سروو
- 12:30عیبیابی مشکلات رایج
منابع و مراجع
هنوز هیچ منبعی موجود نیست.
فایلها📁
هیچ فایلی موجود نیست.