ماژول PWM PCA9685 کنترل سروو موتور Servo Motor و 12 بیتی 16 کاناله
ماژول درایور سرو موتور 16 کاناله 12 بیتی PWM با تراشه PCA9685
ماژول های درایور موتور از ابزارهای بسیار کاربردی در پروژه ها و صنایع مختلف به شمار می روند. یکی از انواع درایورهای موتور، درایور موتورهای سرو هستند. به کمک این ابزار شما می توانید به سرو موتورها فرمان صادر نمایید. یکی از مهم ترین ویژگی یک درایور سرو موتور توانایی تولید پالس PWM است. PCA9685 یک کنترل کننده سروو موتور و LED با رابط I2C است که توسط شرکت NXP تولید شده است. این مدار قابلیت کنترل 16 کانال PWM را با فرکانس تا 1 کیلوهرتز و دقت تایمینگ بالا را فراهم می کند. با استفاده از این مدار، می توانید سرعت و جهت چرخش سروو موتورها را کنترل کرده و یا روشنایی و رنگ LED ها را تغییر دهید. برای استفاده از PCA9685، کتابخانه های مختلفی در زبان های برنامه نویسی مختلف مانند آردوینو، میکروپایتون و جاوا اسکریپت وجود دارد. از آنجاییکه معمولا میکروکنترلرها توانایی ایجاد پالس PWM به صورت سخت افزاری روی یک یا دو پایه دارند، لذا ماژول های سرو موتور بسیار کاربردی خواهند بود. ماژول درایور سرو موتور 16 کاناله 12 بیتی PWM با تراشه PCA9685، یک ماژول فوق العاده کاربردی است. به کمک این ماژول شما به 16 کانال PWM با دقت 12 بیت دسترسی خواهید داشت. از دیگر مزایای این ماژول پشتیبانی آن از پروتکل I2C است. بدین ترتیب شما تنها به کمک دو پایه، به 16 کانال PWM دسترسی خواهید داشت.
مشخصات فنی و ویژگی های کلی درایور سرو موتور 12 بیتی با تراشه PCA9685
-
دارای PWM با دقت 12 بیت
-
دارای ولتاژ تغذیه 2.7 الی 5.5 ولت DC
-
دارای 16 کانال جداگانه جهت درایو موتورها
-
پشتیبانی از پروتکل I2C جهت ارتباط با میکروکنترلرها
-
قابلیت ایجاد موج PWM قابل تنظیم تا فرکانس بیشینه با فرکانس 1.6KHZ
بررسی پایههای ماژول PCA9685
ماژول درایور PCA9685 دارای 16 کانال PWM است و دارای پایههای زیر است.
V+ (3 تا 5 ولت)
GND
SDA (داده ارتباطی)
SCL (ساعت ارتباطی)
OE (فعالساز خروجی)
AllCall (آدرس قابل دسترسی همه)
SubCall1 (آدرس قابل دسترسی زیرمجموعه 1)
SubCall2 (آدرس قابل دسترسی زیرمجموعه 2)
SubCall3 (آدرس قابل دسترسی زیرمجموعه 3)
SubCall4 (آدرس قابل دسترسی زیرمجموعه 4)
LED0- (سری کانالهای PWM 0 تا 3)
LED0+ (سری کانالهای PWM 0 تا 3)
LED1- (سری کانالهای PWM 4 تا 7)
LED1+ (سری کانالهای PWM 4 تا 7)
LED2- (سری کانالهای PWM 8 تا 11)
LED2+ (سری کانالهای PWM 8 تا 11)
LED3- (سری کانالهای PWM 12 تا 15)
LED3+ (سری کانالهای PWM 12 تا 15)
توجه داشته باشید که پایههای LEDx- برای اتصال منفی LEDها و پایههای LEDx+ برای اتصال مثبت LEDها مورد استفاده قرار میگیرند. همچنین پایه OE برای فعالسازی یا غیرفعالسازی خروجیهای PWM استفاده میشود.
به همراه ماژول PCA9685 چه اقلامی باید خریداری شود؟
برای استفاده از ماژول درایور PCA9685، باید از موارد زیر برای خریداری در کنار این ماژول استفاده کنید.
برد میکروکنترلر: برای کنترل ماژول PCA9685، میکروکنترلری مانند آردوینو، ESP32 یا RP2040 به همراه کابل USB به کامپیوتر نیاز است.
برد منبع تغذیه: برای تامین تغذیه به ماژول PCA9685، برد منبع تغذیه مناسب (مثل باتری یا آداپتور DC) باید استفاده شود.
کابلهای اتصال: برای اتصال ماژول PCA9685 به میکروکنترلر و منبع تغذیه، کابلهای مناسب (مانند کابلهای jumper) باید استفاده شوند.
ابزارهای اسپریت: برای نگهداری و نصب ماژول PCA9685، ابزارهای اسپریت مانند پایههای سوکت 28 پایه و پایههای همراه با آنها برای نصب و سیم کشی می تواند لازم باشد.
کاربردهای ماژول درایور سرو موتور 16 کاناله 12 بیتی PWM با تراشه PCA9685
- درایو 16 سرو موتوربه سادگی و تنها از طریق دو پایه
- راه اندازی و کار با سرو موتورها بدون نیاز به اشغال پایه های زیاد از میکروکنترلر
نمونه کد راه اندازی pca9685 با آردوینو
برای راهاندازی ماژول درایور PCA9685 با آردوینو، میتوانید از کتابخانهی Adafruit PWM Servo Driver Library استفاده کنید. برای این کار ابتدا نصب کتابخانهی Adafruit PWM Servo Driver Library را دنبال کنید. در منوی Arduino IDE، به Sketch -> Include Library -> Manage Libraries بروید. در قسمت جستجو، نام کتابخانهی Adafruit PWM Servo Driver را جستجو کرده و آن را نصب کنید. سپس با اتصال ماژول PCA9685 به آردوینو، کد زیر را در Arduino IDE بنویسید.
#include <Wire.h>
#include <Adafruit_PWMServoDriver.h>
Adafruit_PWMServoDriver pwm = Adafruit_PWMServoDriver();
void setup() {
pwm.begin();
pwm.setPWMFreq(50); // تعیین فرکانس PWM
}
void loop() {
pwm.setPWM(0, 0, 4095); // تعیین سطح خروجی PWM
delay(1000);
pwm.setPWM(0, 0, 0);
delay(1000);
}
تابع pwm.begin() در ابتدای کد، ماژول PCA9685 را راهاندازی میکند و تابع pwm.setPWMFreq(50)، فرکانس PWM را برای ماژول تنظیم میکند. در این مثال، فرکانس 50 هرتز انتخاب شده است. تابع pwm.setPWM(0, 0, 4095)، مقدار خروجی PWM را برای پایهی شماره 0 تنظیم میکند. مقدار 4095 برای حداکثر سطح خروجی PWM ممکن استفاده شده است. تابع delay(1000) نیز باعث توقف برنامه برای یک ثانیه میشود. سپس تابع pwm.setPWM(0, 0, 0) مقدار خروجی PWM را برای پایهی شماره 0 به صفر تنظیم میکند و برنامه برای یک ثانیه متوقف میشود.
نمونه کد راه اندازی pca9685 با میکروپایتون و برد ESP32
برای راه اندازی ماژول درایور PCA9685 با برد ESP32 و زبان میکروپایتون، میتوانید از کتابخانهی adafruit-circuitpython-pca9685 استفاده کنید. برای استفاده از این کتابخانه، مراحل زیر را انجام دهید. نصب کتابخانهی adafruit-circuitpython-pca9685 برای نصب این کتابخانه، میتوانید از ابزار pip استفاده کنید. دستور pip install adafruit-circuitpython-pca9685 را در ترمینال وارد کنید. اتصال ماژول PCA9685 به ESP32، برای اتصال ماژول PCA9685 به ESP32، از پایههای SDA و SCL برد استفاده کنید. همچنین، بهتر است ولتاژ تغذیه ماژول را به 5 ولت وصل کنید.
کد نمونه: کد زیر نمونهای از راهاندازی ماژول PCA9685 با کتابخانهی adafruit-circuitpython-pca9685 در محیط میکروپایتون و با استفاده از برد ESP32 است. این کد باعث چرخش سروموتور به زاویه ۱۸۰ درجه میشود.
import time
import board
import busio
from adafruit_pca9685 import PCA9685
i2c = busio.I2C(board.SCL, board.SDA)
pca = PCA9685(i2c)
pca.frequency = 50
while True:
pca.channels[0].duty_cycle = 0xFFFF
time.sleep(1)
pca.channels[0].duty_cycle = 0x7FFF
time.sleep(1)
در این کد، با استفاده از تابع busio.I2C، ارتباط بین ESP32 و ماژول PCA9685 برقرار میشود. همچنین، با استفاده از تابع PCA9685(i2c)، یک شی از نوع PCA9685 با تنظیمات پیشفرض ایجاد میشود. سپس، تنظیمات فرکانس PWM در ماژول با استفاده از خصوصیت pca.frequency انجام میشود.
نمونه کد راه اندازی pca9685 با میکروپایتون و برد rp2040
برای راهاندازی ماژول PCA9685 با استفاده از برد RP2040 و زبان میکروپایتون، میتوانید از کتابخانهی adafruit-circuitpython-pca9685 استفاده کنید. برای استفاده از این کتابخانه، بهتر است از محیط انتقال فایل UF2 برای بارگذاری کد استفاده کنید. در ابتدا با استفاده از دستور pip install adafruit-circuitpython-pca9685 کتابخانه PCA9685 را نصب کنید. سپس کد زیر را در محیط میکروپایتون ویرایش کنید و آن را به برد RP2040 انتقال دهید. این کد باعث میشود که چراغ LED کانال 0 ماژول PCA9685 با دامنهی پالس 50% روشن و خاموش شود.
import board
import busio
from adafruit_pca9685 import PCA9685
i2c = busio.I2C(board.SCL, board.SDA)
pca = PCA9685(i2c)
pca.frequency = 50
led_channel = pca.channels[0]
led_channel.duty_cycle = 32768 # 50% duty cycle
در این کد، با استفاده از تابع busio.I2C()، ارتباط I2C بین برد RP2040 و ماژول PCA9685 برقرار میشود. در خط بعدی با استفاده از کلاس PCA9685، یک شی از این کلاس ایجاد میشود. سپس با تنظیم مقدار فرکانس با استفاده از خط pca.frequency = 50، فرکانس PWM به 50 هرتز تنظیم میشود. در نهایت، با استفاده از متغیر led_channel، کانال مورد نظر برای روشن کردن LED انتخاب میشود و با تنظیم مقدار duty_cycle آن به مقدار 50%، LED روشن میشود.
مشخصات
- کاربری
- مناسب برای استفاده شخصی
- نوع ماژول
- درایور
- نوع موتور
- سروو - Servo
- تعداد قطعات
- 12 عدد
- ابعاد فیبر
- 62 * 25 میلی متر
- تعداد فیبر
- 1 عدد
- سطح تجربه مورد نیاز
- فوق حرفه ای
- ولتاژ مورد نياز
- 5 ولت DC
- فیبر مدار چاپی
- فایبر گلاس دورو
- چاپ مس
- دارای چاپ آبی
- اقلام همراه محصول
- پین هدر
- ترتیب پایه ها
- مطابق چاپ روی برد
- کشور سازنده
- چین
- وزن
- 9 گرم
- فرکانس
- 1.6 مگاهرتز
- نوع کانکتور
- ترمینال پیچی و پین هدر
- معماری پردازنده
- DRIVER
- پروتکل ارتباطی
- I2C
- پردازنده
- PCA9685
توسط همین ماژول هم میتوانید اقدام به اجرای درخواستتان کنید. البته اگر فقط بخواهید یک سلول باتری لیتیومی را مدیریت شارژ کنید، همان گزینه ماژول TP4056 مناسب خواهد بود.
امکان راه اندازی چند سنسور DHT با ESP8266 با استفاده از MicroPython وجود دارد. سنسورهای DHT با پروتکل دیجیتال و از طریق پایههای GPIO قابل اتصال به میکروکنترلرها هستند.
برای ساخت یک سیستم کنترل دما با برد میکروکنترلر ESP32، به موارد زیر نیاز دارید:
یک برد میکروکنترلر ESP32
یک سنسور دما مثل DHT DS18B20
یک المان سرد کننده
با استفاده از کتابخانه DHT.h، میتوانید از سنسور دما برای خواندن دمای محیط استفاده کنید. سپس، میتوانید از این دما برای کنترل المان گرمایشی یا سرمایشی استفاده کنید.
در خصوص برنامه نویسی از کتابخانه DHT و در صورت نیاز کتابخانه وای فای برای ارسال دادهها به پلتفرم IoT باید استفاده کنید.