CNCU PCA9685 سروو ډرایور i2C انٹرفیس
د محصول کارولو لارښوونې
- کله چې تاسو په ماشین کې ERR 40 وګورئ:
- ماشین چالان کړئ، دا خورا مهم دی.
- بیټرۍ د ژوندی موقعیت څخه لرې کړئ.
- بیټرۍ د خوندي ځای څخه په ژوندۍ موقعیت کې ځای په ځای کړئ.
- ماشین بیا پیل کړئ.
- په یاد ولرئ چې د راتلونکي بیټرۍ بدلون لپاره په ریزرو کې ساتلو لپاره دوه نوي بیټرۍ واخلئ.
د AM.CO.ZA ملاتړ سره اړیکه ونیسئ که تاسو د بیټرۍ بدلولو کې ستونزې سره مخ شئ یا که د پروسې په جریان کې د ماشین موقعیت بدل شي. تاسو کولی شئ د مرستې لپاره په 060 600 6000 کې د WhatsApp له لارې هم اړیکه ونیسئ.
اوورview
د Arduino Servo کتابتون سره د سرو موټرو چلول خورا اسانه دي، مګر هر یو یو قیمتي پن مصرفوي - د ځینې Arduino پروسس کولو ځواک یادونه نه کوي. د اډافروټ 16-چینل 12-bit PWM/Servo ډرایور به یوازې 16 پنونو سره I2C کې تر 2 سرورونو پورې موټر چلوي. په بورډ کې د PWM کنټرولر به ټول 16 چینلونه په ورته وخت کې د اضافي Arduino پروسس کولو سر پرته چلوي. نور څه دي، تاسو کولی شئ تر 62 پورې زنځیر کړئ ترڅو تر 992 سرورونو پورې کنټرول کړئ - ټول د ورته 2 پنونو سره!
د اډافروټ PWM/Servo ډرایور د هرې پروژې لپاره مناسب حل دی چې ډیری سرورونو ته اړتیا لري.
پینټونه
- په دواړو خواو کې د کنټرول ان پټ پنونو دوه سیټونه شتون لري. د پنونو دواړه اړخونه یو شان دي! هر هغه اړخ وکاروئ چې تاسو یې غواړئ، تاسو کولی شئ په اسانۍ سره د دوه اړخونو سره نښلولو سره زنځیر هم وکاروئ
د بریښنا پنونه
- GND - دا د بریښنا او سیګنال ځمکني پن دی ، باید وصل شي
- VCC - دا د منطق ځواک پن دی، دا د منطق کچې سره وصل کړئ چې تاسو غواړئ د PCA9685 محصول لپاره وکاروئ، باید 3 - 5V اعظمي وي! دا په SCL/SDA کې د 10K پل اپونو لپاره هم کارول کیږي نو پرته لدې چې تاسو خپل پل اپونه ولرئ ، ایا دا د مایکرو کنټرولر منطق کچې سره هم سمون لري!
- V + - دا یو اختیاري بریښنا پن دی چې سرورونو ته توزیع شوي بریښنا چمتو کوي. که تاسو د سرورونو لپاره نه کاروئ نو تاسو کولی شئ منحل پریږدئ. دا په بشپړ ډول د چپ لخوا نه کارول کیږي. تاسو کولی شئ د بورډ په پورتنۍ برخه کې د 2-pin ټرمینل بلاک څخه بریښنا هم انجیکشن کړئ. تاسو باید 5-6VDC چمتو کړئ که تاسو سرووس کاروئ. که تاسو اړتیا لرئ، تاسو کولی شئ 12VDC ته لاړ شئ، مګر که تاسو ګډوډ کړئ او VCC له V+ سره وصل کړئ تاسو کولی شئ خپل بورډ ته زیان ورسوي!
د کنټرول پنس
- SCL - د I2C ساعت پن، ستاسو د مایکرو کنټرولر I2C ساعت لاین سره وصل کړئ. کولی شي 3V یا 5V منطق وکاروي، او VCC ته ضعیف پل اپ لري
- SDA - د I2C ډیټا پن، ستاسو د مایکرو کنټرولر I2C ډیټا لاین سره وصل کړئ. کولی شي 3V یا 5V منطق وکاروي، او VCC ته ضعیف پل اپ لري
- OE - د محصول فعالول. د ټولو محصولاتو ګړندي غیر فعالولو لپاره کارول کیدی شي. کله چې دا پن ټیټ وي ټول پنونه فعال شوي. کله چې پن لوړ وي محصولات غیر فعال دي. د ډیفالټ لخوا ټیټ ایستل شوی نو دا اختیاري پن دی!
د تولید بندرونه
- د محصول 16 بندرونه شتون لري. هر پورټ 3 پنونه لري: V+، GND او د PWM محصول. هر PWM په بشپړ ډول په خپلواک ډول پرمخ ځي مګر دوی باید ټول ورته PWM فریکونسۍ ولري.
- دا دی، د LEDs لپاره تاسو شاید 1.0 KHz غواړئ مګر servos 60 Hz ته اړتیا لري - نو تاسو نشئ کولی نیم د LEDs @ 1.0 KHz او نیم @ 60 Hz لپاره وکاروئ.
- دوی د سرووس لپاره تنظیم شوي مګر تاسو کولی شئ د LEDs لپاره یې وکاروئ! په هر پن کې اعظمي اوسنی 25mA دی.
- د ټولو PWM پنونو سره په لړۍ کې 220 ohm مقاومت کونکي شتون لري او د محصول منطق د VCC په څیر دی نو دا په ذهن کې وساتئ که چیرې د LEDs کارول کیږي.
مجلس
د سرو سرلیکونه نصب کړئ
- د تختې په څنډه کې په نښه شوي پوستونو کې 4 3 × 4 پن نارینه سرلیکونه نصب کړئ.
ټول پنونه سولر کړئ
- د دوی ډیری شتون لري!
د کنټرول لپاره سرلیکونه اضافه کړئ
- د نارینه سرلیک یوه پټه شامله ده. چیرې چې تاسو غواړئ سرلیکونه نصب کړئ او په کوم اړخ کې د کارولو لږ څه پورې اړه لري:
- لپاره د ډوډۍ تخته (http://adafru.it/239) وکاروئ، د تختې په ښکته برخه کې سرلیکونه نصب کړئ.
- د کارولو لپاره د جمپر تارونه (http://adafru.it/758)، سرلیکونه د تختې په سر کې نصب کړئ.
- زموږ سره د کارولو لپاره 6-pin کیبل (http://adafru.it/206)، سرلیکونه د تختې په سر کې نصب کړئ.
- که تاسو د ډیری ډرایور بورډونو زنځیرونه یاست ، نو تاسو به په دواړو سرونو کې سرلیکونه غواړئ.
د بریښنا ټرمینلونه نصب کړئ
- که تاسو د ډیری ډرایور بورډونو زنځیرونه یاست ، تاسو یوازې په لومړي کې د بریښنا ټرمینل ته اړتیا لرئ.
هک کول
د Arduino سره نښلول
- د PWM/Servo ډرایور I2C کاروي نو دا ستاسو د Arduino سره وصل کولو لپاره یوازې 4 تارونه اخلي:
د "کلاسیک" Arduino تارونه:
- +5v -> VCC (دا یوازې د بریک آوټ لپاره ځواک دی ، نه د سرو ځواک!)
- GND -> GND
- انلاګ 4 -> SDA
- انلاګ 5 -> SCL
زاړه میګا تارونه:
- +5v -> VCC (دا یوازې د بریک آوټ لپاره ځواک دی ، نه د سرو ځواک!)
- GND -> GND
- ډیجیټل 20 -> SDA
- ډیجیټل 21 -> SCL
R3 او وروسته د Arduino تارونه (Uno، Mega او Leonardo):
(دا بورډونه د USB نښلونکي ته نږدې په سر کې د SDA او SCL پنونه وقف کړي دي)
- +5v -> VCC (دا یوازې د بریک آوټ لپاره ځواک دی ، نه د سرو ځواک!)
- GND -> GND
- SDA -> SDA
- SCL -> SCL
د VCC پن یوازې د چپ لپاره ځواک دی. که تاسو غواړئ هغه خدمتونه یا LEDs وصل کړئ چې V+ پنونه کاروي، تاسو باید V+ پن هم وصل کړئ. د V+ پن کولی شي تر 6V پورې لوړ وي حتی که VCC 3.3V وي (چپ 5V خوندي وي). موږ وړاندیز کوو چې د نیلي ټرمینل بلاک له لارې بریښنا وصل کړئ ځکه چې دا د قطبي محافظت دی.
د سرووس لپاره ځواک
ډیری سرورونه د شاوخوا 5 یا 6v چلولو لپاره ډیزاین شوي. په یاد ولرئ چې ډیری خدمتونه په ورته وخت کې حرکت کوي (په ځانګړي توګه لوی ځواکمن) به ډیری اوسني ته اړتیا ولري. حتی مایکرو سرووس به د حرکت په وخت کې څو سوه mA رسم کړي. ځینې لوړ تورک خدمتونه به د بار لاندې هر یو له 1A څخه ډیر راوباسي.
د بریښنا ښه انتخابونه دي:
- 5v 2A د بریښنا رسولو بدلول (http://adafru.it/276)
- 5v 10A د بریښنا رسولو بدلول (http://adafru.it/658)
- د 4xAA بیټرۍ لرونکی (http://adafru.it/830) – 6v د الکلین حجرو سره. 4.8v د NiMH ریچارج وړ حجرو سره.
- د شوق پلورنځي څخه د 4.8 یا 6v ریچارج وړ RC بیټرۍ کڅوړې.
دا ښه نظر ندی چې ستاسو د سرووس ځواک کولو لپاره د Arduino 5v پن وکاروئ. بریښنایی شور او د اضافي اوسني ډراو څخه 'براون آؤټس' کولی شي ستاسو د Arduino په غلطه توګه عمل وکړي ، بیا تنظیم او / یا ډیر ګرم کړي.
د thru-hole capacitor سلاټ ته د Capacitor اضافه کول
موږ په PCB کې یو ځای لرو چې په الکترولیټیک کپاسیټر کې د سولډرینګ لپاره. ستاسو د کارونې پراساس، تاسو ممکن یا کیپسیټر ته اړتیا ونلرئ. که تاسو د بریښنا رسولو څخه ډیری servos چلوئ چې د سرووس حرکت کولو په وخت کې ډیر کمیږي، n * 100uF چیرې چې n د سرووس شمیره د پیل کولو لپاره یو ښه ځای دی - د بیلګې په توګه د 470 سرووس لپاره 5uF یا ډیر. له دې امله چې دا د سرو اوسني ډراو ، په هر موټرو کې تورک او کوم بریښنا رسولو پورې اړه لري ، دلته هیڅ "د جادو کیپیسیټر ارزښت" شتون نلري موږ وړاندیز کولی شو چې له همدې امله موږ په کټ کې کیپیسیټر شامل نه کړو.
د سرو سره نښلول
ډیری servos د معیاري 3-pin ښځینه نښلونکي سره راځي چې په مستقیم ډول د سروو ډرایور په سر کې پلګ کوي. ډاډ ترلاسه کړئ چې پلگ د ځمکني تار (معمولا تور یا نسواري) سره د لاندې قطار سره او په پورتنۍ برخه کې د سیګنال تار (معمولا ژیړ یا سپین) سره تنظیم کړئ.
نور خدمتونه اضافه کول
تر 16 سرورونو پورې په یوه تخته سره وصل کیدی شي. که تاسو اړتیا لرئ له 16 څخه ډیر سرورونه کنټرول کړئ، اضافي بورډونه کیدای شي ځنځیر شي لکه څنګه چې په راتلونکې پاڼه کې تشریح شوي.
د چلوونکو زنځیرونه
- ډیری ډرایورونه (تر 62 پورې) د لا نورو سرورونو کنټرول لپاره زنځیر کیدی شي.
- د بورډ په دواړو سرونو کې د سرلیکونو سره، تارونه د نښلولو په څیر ساده دي 6-پن موازي کیبل (http://adafru.it/206) له یوې تختې څخه بلې ته.
بورډونو ته خطاب کول
- په سلسله کې هر بورډ باید یو ځانګړی پته وټاکل شي. دا د بورډ په پورتنۍ ښیې څنډه کې د پته جمپرونو سره ترسره کیږي. د هر بورډ لپاره د I2C اساس پته 0x40 ده. د بائنری پته چې تاسو د ادرس جمپرونو سره برنامه کوئ د بیس I2C پته کې اضافه کیږي.
- د پتې آفسیټ برنامه کولو لپاره ، په پته کې د هر بائنری '1' لپاره د اړونده پته جمپر پلولو لپاره د سولډر یو څاڅکي وکاروئ.
- بورډ 0: پته = 0x40 آفسیټ = بائنری 00000 (د جمپرونو اړتیا نشته)
- بورډ 1: پته = 0x41 آفسیټ = بائنری 00001 (پل A0 لکه څنګه چې پورته عکس کې دی)
- بورډ 2: پته = 0x42 آفسیټ = بائنری 00010 (پل A1)
- بورډ 3: پته = 0x43 آفسیټ = بائنری 00011 (پل A0 او A1)
- بورډ 4: پته = 0x44 آفسیټ = بائنری 00100 (پل A2)
etc
ستاسو په سکیچ کې، تاسو اړتیا لرئ چې د هر بورډ لپاره جلا پروژه اعلان کړئ. زنګ په هر څیز پیل کیږي، او هر سروو د هغه څیز له لارې کنټرولوي چې دا ورسره وصل دی. د مثال لپارهampLe:
د Adafruit کتابتون کارول
- څرنګه چې د PWM سروو ډرایور په I2C کې کنټرول شوی، د هر مایکرو کنټرولر یا مایکرو کمپیوټر سره کارول خورا اسانه دي.
- پدې ډیمو کې ، موږ به دا د Arduino IDE سره وکاروو مګر C++ کوډ په اسانۍ سره پورټ کیدی شي
د Adafruit PCA9685 کتابتون نصب کړئ
- د سینسر ډیټا لوستل پیل کولو لپاره ، تاسو اړتیا لرئ د Adafruit_PWMServo کتابتون نصب کړئ (زموږ د ګیتوب ذخیره کې کوډ) (https://adafru.it/aQl). دا د Arduino کتابتون مدیر څخه شتون لري نو موږ د دې کارولو وړاندیز کوو.
- د IDE څخه د کتابتون مدیر خلاص کړئ ...
- او د کتابتون د موندلو لپاره په adafruit pwm کې ټایپ کړئ. نصب کلیک وکړئ
- موږ د Arduino کتابتون نصبولو په اړه عالي ښوونه هم لرو: http://learn.adafruit.com/adafruit-all-about-arduino-libraries-install-use (https://adafru.it/aYM)
د پخواني سره ازموینهampد کوډ:
- لومړی ډاډ ترلاسه کړئ چې د Arduino IDE ټولې کاپي بندې دي.
- بیا د Arduino IDE خلاص کړئ او غوره کړئ File-> پخوانیamples->Adafruit_PWMServoDriver->Servo. دا به پخوانی خلاص کړيample file په IDE کړکۍ کې.
که د بریک آوټ کاروئ:
- د ډرایور بورډ او سرو سره وصل کړئ لکه څنګه چې په مخکینۍ پاڼه کې ښودل شوي. دواړه Vin (3-5V منطق کچه) او V+ (5V سرو پاور) ته بریښنا چمتو کول مه هیروئ. وګورئ چې شنه LED روښانه شوی!
که شیلډ وکاروئ:
- ډال په خپل Arduino کې ولګوه. مه هېروئ چې تاسو به د V+ ترمینل بلاک ته 5V هم چمتو کړئ. دواړه سور او شنه LEDs باید روښانه شي.
که د فیدر وینګ کاروئ:
- د فیدر وینګ په خپل پنک کې ولګوئ. مه هېروئ چې تاسو به د V+ ترمینل بلاک ته 5V هم چمتو کړئ. وګورئ چې شنه LED روښانه شوی!
یو خدمت وصل کړئ
- یو واحد سرو باید د PWM # 0 بندر کې ولګول شي، لومړی بندر. تاسو باید د سرو زرو شاوخوا شاوخوا 180 درجو ته شا او خوا وګورئ.
ستاسو د خدماتو اندازه کول
د سرو نبض وخت د مختلف برانڈونو او ماډلونو ترمینځ توپیر لري. څرنګه چې دا د انلاګ کنټرول سرکټ دی، ډیری وختونه د s ترمنځ یو څه توپیر شتون لريampد ورته برانډ او ماډل څخه. د دقیق موقعیت کنټرول لپاره ، تاسو غواړئ په خپل کوډ کې د نبض لږترلږه او اعظمي پلنوالی اندازه کړئ ترڅو د سرو پیژندل شوي موقعیتونو سره سمون ومومي.
لږترلږه ومومئ:
- د پخواني کارولample کوډ، SERVOMIN ترمیم کړئ تر هغه چې د سویپ ټیټ ټکی د سفر لږترلږه حد ته ورسیږي. دا غوره ده چې په تدریجي ډول دې ته ورسیږئ او د سفر فزیکي حد ته رسیدو دمخه ودریږئ.
اعظمي پیدا کړئ:
- یوځل بیا د پخواني کارولample کوډ، SERVOMAX ترمیم کړئ تر هغه چې د سویپ لوړې نقطې د سفر اعظمي حد ته ورسیږي. یوځل بیا ، غوره ده چې په تدریجي ډول دې ته ورشئ او د سفر فزیکي حد ته رسیدو دمخه ودریږئ.
د احتیاط څخه کار واخلئ کله چې SERVOMIN او SERVOMAX تنظیم کړئ. د سفر فزیکي حدود ماتول کولی شي ګیرونه پټ کړي او د تل لپاره ستاسو سرو ته زیان ورسوي.
له درجې څخه د نبض اوږدوالي ته بدلول
د د Arduino "نقشه ()" فعالیت (https://adafru.it/aQm) د روټیشن درجو او ستاسو کیلیبریټ شوي SERVOMIN او SERVOMAX نبض اوږدوالی ترمینځ د بدلولو لپاره اسانه لار ده. د 180 درجو گردش سره یو عادي سرو فرض کول؛ یوځل چې تاسو SERVOMIN د 0 درجې موقعیت ته او SERVOMAX 180 درجې موقعیت ته کیلیبریټ کړئ ، تاسو کولی شئ د 0 او 180 درجو ترمینځ هره زاویه د لاندې کوډ کرښې سره د اړوند نبض اوږدوالي ته بدل کړئ:
د کتابتون حواله سیټPWMFreq(freq)
تفصیل
- دا فنکشن د PWM فریکونسۍ تنظیم کولو لپاره کارول کیدی شي، کوم چې دا ټاکي چې په هر ثانیه کې څومره بشپړ نبضونه د IC لخوا تولید کیږي. په مختلف ډول بیان شوی، فریکونسۍ دا ټاکي چې هر نبض د پیل څخه تر پای پورې څومره اوږده وي، د نبض لوړې او ټیټې برخې په پام کې نیولو سره.
- په PWM کې فریکونسۍ مهمه ده، ځکه چې د فریکونسۍ ډیر لوړ تنظیم کول د خورا کوچني وظیفې دورې سره ستونزې رامینځته کولی شي ، ځکه چې د سیګنال د 'پاڅیدو وخت' (هغه وخت چې له 0V څخه VCC ته ځي) ممکن د وخت څخه ډیر وي. سیګنال فعال دی، او د PWM محصول به همغږي ښکاري او حتی VCC ته نه رسیږي، په بالقوه توګه د یو شمیر ستونزو لامل کیږي.
دلیلونه
- freq: یوه شمیره چې د 40 او 1600 ترمنځ په هرټز کې د فریکونسۍ استازیتوب کوي
Example
- لاندې کوډ به د PWM فریکونسۍ 1000Hz ته تنظیم کړي:
سیټ پی ڈبلیو ایم (چینل، آن، بند)
تفصیل
دا فنکشن په ځانګړي چینل کې د PWM نبض د لوړې برخې پیل (آن) او پای (بند) ټاکي. تاسو د 0..4095 تر مینځ د ټیک ارزښت مشخص کړئ کله چې سیګنال به فعال شي ، او کله به بند شي. چینل په ګوته کوي چې د 16 PWM محصولاتو څخه کوم باید د نوي ارزښتونو سره تازه شي.
دلیلونه
- چینل: هغه چینل چې باید د نوي ارزښتونو سره تازه شي (0..15)
- آن: ټیک (د 0..4095 ترمنځ) کله چې سیګنال باید له ټیټ څخه لوړ ته انتقال شي
- بند: ټیک (د 0..4095 ترمنځ) کله چې سیګنال باید له لوړ څخه ټیټ ته انتقال شي
Example
لاندې پخوانيample به د دې لامل شي چې چینل 15 ټیټ پیل کړي ، د نبض شاوخوا 25٪ لوړ شي (له 1024 څخه 4096 ټیک کړئ) ، بیرته 75٪ ټیټ ته نبض ته لیږدول کیږي (3072 ټیک) ، او د نبض وروستي 25٪ لپاره ټیټ پاتې کیږي. :
د GPIO په توګه کارول
- د پنونو په بشپړ ډول فعال یا بشپړ بندولو لپاره ځینې ځانګړي ترتیبات هم شتون لري
د Arduino کتابتون اسناد
Python & CircuitPython
- د PCA9685 چلوونکي د Python یا CircuitPython او Adafruit سره کارول اسانه دي CircuitPython PCA9685 (https://adafru.it/tZF) ماډل. دا ماډل تاسو ته اجازه درکوي په اسانۍ سره د Python کوډ ولیکئ چې د دې بریک آوټ سره servos او PWM کنټرولوي.
- تاسو کولی شئ دا ډرایور بورډ د هر CircuitPython مایکرو کنټرولر بورډ سره یا د هغه کمپیوټر سره وکاروئ چې GPIO او Python لري د اډافروټ_بلیکا څخه مننه ، زموږ د سرکیټ پایتون - لپاره - د پایتون مطابقت کتابتون (https://adafru.it/BSN).
د CircuitPython Microcontroller Wiring
لومړی خپل بورډ ته PCA9685 وصل کړئ لکه څنګه چې د Arduino لپاره په تیرو پاڼو کې ښودل شوي. دلته یو پخوانی دیampد I0C سره د ډرایور بورډ ته د فیدر M2 تار لګول:
د Python کمپیوټر تارونه
- څرنګه چې دلته لسګونه لینکس کمپیوټرونه/بورډونه شتون لري چې تاسو یې کارولی شئ موږ به د راسبیري پای لپاره تارونه وښیو. د نورو پلیټونو لپاره، مهرباني وکړئ په لینکس کې د CircuitPython لارښود وګورئ ترڅو وګورئ چې ایا ستاسو پلیټ فارم ملاتړ کیږي (https://adafru.it/BSN).
- دلته د I2C سره د راسبیري پای تار دی:
هڅه مه کوئ چې خپل سرورونه د RasPi یا لینکس بورډ له 5V بریښنا څخه بریښنا کړئ ، تاسو کولی شئ په اسانۍ سره د بریښنا رسولو براون آوټ رامینځته کړئ او خپل Pi ګډوډ کړئ! یو جلا 5v 2A یا 4A اډاپټر وکاروئ
- 5V 2A (2000mA) د بریښنا رسولو بدلول - UL لیست شوی
- دا د FCC/CE تصدیق شوی او د UL لیست شوی بریښنا رسول دی. ډیر 5V بریښنا ته اړتیا لرئ؟
- دا سویچینګ عرضه تر 5mA پورې پاک تنظیم شوي 2000V محصول ورکوي. 110 یا 240 داخل کړئ، نو دا کار کوي ... https://www.adafruit.com/product/276
- 5V 4A (4000mA) د بریښنا رسولو بدلول - UL لیست شوی
- ډیر 5V بریښنا ته اړتیا لرئ؟ دا سویچینګ عرضه تر 5 پورې پاک تنظیم شوي 4V محصول ورکوي Amps (4000mA). 110 یا 240 داخل کړئ، نو دا په کوم هیواد کې کار کوي. پلګونه دي "امریکا… https://www.adafruit.com/product/1466
د PCA9685 او ServoKit کتابتونونو CircuitPython نصب کول
- تاسو به د نصبولو ته اړتیا ولرئ د اډافروټ سرکټ پایتون PCA9685 (https://adafru.it/tZF) ستاسو په CircuitPython بورډ کې کتابتون.
- لومړی ډاډ ترلاسه کړئ چې تاسو چلوئ د Adafruit CircuitPython وروستۍ نسخه (https://adafru.it/Amd) ستاسو د بورډ لپاره.
- بیا تاسو اړتیا لرئ د هارډویر کارولو لپاره اړین کتابتونونه نصب کړئ – په احتیاط سره د دې کتابتونونو موندلو او نصبولو لپاره مرحلې تعقیب کړئ د اډافروټ سرکیټ پیتون کتابتون بنډل (https://adafru.it/uap). زموږ د CircuitPython سټارټر لارښود عالي پاڼه لري د کتابتون بنډل څنګه نصب کړئe(https://adafru.it/ABU).
د غیر ایکسپریس بورډونو لپاره لکه Trinket M0 یا Gemma M0، تاسو اړتیا لرئ په لاسي ډول د بنډل څخه اړین کتابتونونه نصب کړئ:
- adafruit_pca9685.mpy
- adafruit_bus_device
- adafruit_register
- adafruit_motor
- adafruit_servokit.mpy
د دوام ورکولو دمخه ډاډ ترلاسه کړئ چې ستاسو د بورډ لیب فولډر یا روټ fileسیسټم adafruit_pca9685.mpy، adafruit_register، او adafruit_servokit.mpy، adafruit_motor او adafruit_bus_device لري files او فولډرونه کاپي شوي.
بل د بورډ سریال REPL سره وصل کړئ (https://adafru.it/Awz) نو تاسو د CircuitPython >>> پرامپټ کې یاست.
د PCA9685 او ServoKit کتابتونونو Python نصب کول
تاسو به د Adafruit_Blinka کتابتون نصبولو ته اړتیا ولرئ چې په Python کې د CircuitPython ملاتړ چمتو کوي. دا ممکن ستاسو په پلیټ فارم کې د I2C فعالولو ته هم اړتیا ولري او تایید کړي چې تاسو Python 3 پرمخ وړئ. څرنګه چې هر پلیټ فارم یو څه توپیر لري، او لینوکس ډیری وختونه بدلوي، مهرباني وکړئ د لینوکس لارښود کې د CircuitPython څخه لیدنه وکړئ ترڅو خپل کمپیوټر چمتو کړئ (https://adafru.it/BSN)!
- یوځل چې دا سرته ورسي ، ستاسو د کمانډ لاین څخه لاندې کمانډونه پرمخ وړئ:
- که ستاسو ډیفالټ Python نسخه 3 وي تاسو ممکن د دې پرځای 'pip' چلولو ته اړتیا ولرئ. یوازې ډاډ ترلاسه کړئ چې تاسو په Python 2.x کې د CircuitPython کارولو هڅه نه کوئ، دا ملاتړ نه کوي!
CircuitPython او Python کارول
- لاندې برخه به وښیې چې څنګه د بورډ Python پرامپټ / REPL څخه PCA9685 کنټرول کړئ. تاسو به زده کړئ چې څنګه د لاندې کوډ په ټایپ کولو سره په متقابل ډول سرووس او کم LEDs کنټرول کړئ.
د LEDs کمول
د اړین ماډلونو واردولو لپاره لاندې کوډ چل کړئ او د ډرایور بورډ سره د I2C پیوستون پیل کړئ:
- د PCA9685 هر چینل د LED روښانتیا کنټرول لپاره کارول کیدی شي. PCA9685 د لوړ سرعت PWM سیګنال رامینځته کوي کوم چې LED خورا ګړندي او بندوي. که چیرې LED د بند څخه ډیر اوږد وي نو دا به ستاسو سترګو ته روښانه ښکاري.
- لومړی په لاندې ډول بورډ ته LED وصل کړئ. په یاد ولرئ چې تاسو اړتیا نلرئ د LED له لارې جریان محدودولو لپاره ریزسټر وکاروئ ځکه چې PCA9685 به اوسنی شاوخوا 10mA ته محدود کړي:
LED کیتوډ / لنډ پښه PCA9685 چینل GND / ځمکې ته. LED anode / اوږد پښه PCA9685 چینل PWM ته.
- د PCA9685 ټولګي د PWM فریکونسۍ او د هر چینل د دندې دورې کنټرول چمتو کوي. وګورئ د PCA9685 ټولګي اسناد (https://adafru.it/C5n) د نورو جزیاتو لپاره.
- د LEDs کمولو لپاره تاسو معمولا اړتیا نلرئ د ګړندي PWM سیګنال فریکونسۍ وکاروئ او کولی شئ د فریکونسۍ ځانګړتیا په ترتیب کولو سره د بورډ PWM فریکونسۍ 60Hz ته تنظیم کړئ:
- PCA9685 د 16 جلا چینلونو ملاتړ کوي چې فریکونسۍ شریکوي مګر کولی شي د دندې خپلواک دورې ولري. پدې توګه تاسو کولی شئ په جلا توګه 16 LEDs کم کړئ!
- د PCA9685 اعتراض د چینل ځانګړتیا لري کوم چې د هر چینل لپاره یو اعتراض لري چې کولی شي د وظیفې دورې کنټرول کړي. د انفرادي چینل ترلاسه کولو لپاره [] په چینلونو کې د شاخص کولو لپاره وکاروئ.
- اوس د LED سره وصل شوي چینل د دندې دورې کنټرولولو سره د LED روښانتیا کنټرول کړئ. د وظیفې دورې ارزښت باید د 16-bit ارزښت وي، د بیلګې په توګه له 0 څخه تر 0xffff، کوم چې د سیګنال په پرتله د بند د وخت څومره سلنه استازیتوب کوي. د 0xffff ارزښت 100٪ روښانتیا ده، 0 0٪ روښانتیا ده، او په منځ کې ارزښتونه له 0٪ څخه تر 100٪ روښانتیا پورې ځي.
- د مثال لپارهampLED په بشپړ ډول د 0xffff د وظیفې دورې سره تنظیم کړئ:
- د پورته کمانډ چلولو وروسته تاسو باید په بشپړ روښانتیا کې د LED څراغ وګورئ! اوس د 0 د وظیفې دورې سره LED بند کړئ:
- د 1000 په څیر په مینځ کې ارزښت هڅه وکړئ:
- تاسو باید د LED لږ څراغ وګورئ. د نورو دندو دورې ارزښتونو سره تجربه کولو هڅه وکړئ ترڅو وګورئ چې LED څنګه روښانتیا بدلوي!
- د مثال لپارهampپه لوپ کې د duty_cycle په ترتیب کولو سره د LED روښانه کول او بند کړئ:
- دا د لوپونو لپاره یو څه وخت نیسي ځکه چې 16-bits ډیری شمیرې دي. CTRL-C د لوپ د چلولو مخه ونیسي او REPL ته بیرته راستانه شي.
بشپړ Exampلی کوډ
د Servos کنټرول
- موږ د مختلفو PWM/Servo کټونو لپاره یو لاسي سرکیټ پایتون کتابتون لیکلی دی اډافروټ سرکیټ پیتون سروکیټ (https://adafru.it/Dpu) چې ستاسو لپاره ټول پیچلي تنظیمات اداره کوي. ټول هغه څه چې تاسو یې کولو ته اړتیا لرئ له کتابتون څخه مناسب ټولګي وارد کړئ، او بیا د دې ټولګي ټولې ځانګړتیاوې د کارولو لپاره شتون لري.
- موږ به تاسو ته وښیو چې څنګه د ServoKit ټولګي وارد کړئ او د اډافروټ 16 چینل بریک آوټ سره د سرو موټرو کنټرول لپاره یې وکاروئ.
- که تاسو د سرورونو سره بلد نه یاست نو ډاډه اوسئ چې لومړی دا ولولئ د servos پاڼې ته معرفي کول (https://adafru.it/scW) او دا ژوره خدمت لارښود پاڼه (https://adafru.it/scS).
- لومړی په PCA0 کې سروو چینل 9685 سره وصل کړئ. دلته یو پخوانی دیampد 0 چینل سره نښلول شوی سروو:
- ډاډ ترلاسه کړئ چې تاسو د PCA5 بورډ ته د بهرني 9685V بریښنا رسولو هم فعال یا پلګ کړی!
- لومړی تاسو اړتیا لرئ د ServoKit ټولګي وارد او پیل کړئ. تاسو باید په خپل بورډ کې د شته چینلونو شمیر مشخص کړئ. بریک آوټ 16 چینلونه لري، نو کله چې تاسو د ټولګي اعتراض جوړ کړئ، تاسو به 16 مشخص کړئ.
- اوس تاسو چمتو یاست چې دواړه معیاري او دوامداره گردش سرورونه کنټرول کړئ.
معیاري خدمتونه
- د معیاري سرو کنټرول کولو لپاره ، تاسو اړتیا لرئ هغه چینل مشخص کړئ چې سرو سره وصل دی. بیا تاسو کولی شئ د زاویه په څو درجو کې تنظیم کولو سره حرکت کنټرول کړئ.
- د ډیفالټ په توګه، د سروو ټولګي به د عمل کولو حد، لږترلږه نبض پلنوالی، او د نبض لوړ حد ارزښتونه وکاروي چې باید د ډیری سرورونو لپاره کار وکړي. په هرصورت، د سرو کلاس اسناد چیک کړئ (https://adafru.it/BNE) د اضافي پیرامیټونو په اړه د نورو توضیحاتو لپاره ستاسو د سرورونو لپاره رامینځته شوي سیګنال دودیز کولو لپاره.
- د سروو سره، تاسو د زاویه په توګه موقعیت مشخص کړئ. زاویه به تل د 0 تر منځ وي او د فعالیت رینج ورکړل شوي کله چې سروو رامینځته شوی و. ډیفالټ 180 درجې دی مګر ستاسو سرو ممکن یو کوچنی سویپ ولري – د پورتني سروو کلاس پیل کونکي کې د actuation_angle پیرامیټر په ټاکلو سره ټول زاویه بدل کړئ.
- اوس زاویه 180 ته وټاکئ، د حد یو ډیر حد:
- د سرو 0 درجو ته د بیرته راستنیدو لپاره:
- د معیاري سرو سره، تاسو موقعیت د زاویه په توګه مشخص کړئ. زاویه به تل د 0 او د عمل حد تر مینځ وي. ډیفالټ 180 درجې دی مګر ستاسو سرو ممکن یو کوچنی سویپ ولري. تاسو کولی شئ د actuation_range په ترتیب کولو سره ټول زاویه بدل کړئ.
- د مثال لپارهample، د عمل حد 160 درجو ته ټاکلو لپاره:
- ډیری وختونه هغه حد چې یو انفرادي سرو پیژني د نورو سرورونو څخه یو څه توپیر لري. که سروو بشپړ متوقع حد ته نه وي رسیدلی، نو د set_pulse_width_range(min_pulse, max_pulse) په کارولو سره د نبض لږترلږه او اعظمي پلنوالی تنظیم کولو هڅه وکړئ.
- د نبض پلنوالی حد لږترلږه 1000 او اعظمي 2000 ته ټاکلو لپاره:
- دا ټول د PCA9685 بریک آوټ، Python او ServoKit سره د معیاري سرورونو کنټرول لپاره دي!
پرله پسې گردش خدمتونه
- د دوامداره گردش سرو کنټرولولو لپاره، تاسو باید هغه چینل مشخص کړئ چې سروو فعال دی.
- بیا تاسو کولی شئ د throttle په کارولو سره حرکت کنټرول کړئ.
- د مثال لپارهampد دې لپاره چې د چینل 1 سره وصل شوي دوامداره گردش سرو پیل کړئ ترڅو بشپړ تروټل فارورډ ته:
- د پرله پسې گردش سرو پیل کولو لپاره چې د چینل 1 سره وصل شوي بشپړ ریورس تروټټل ته:
- د نیمه throttle ترتیب کولو لپاره، یو لسیزه وکاروئ:
- او، د پرله پسې گردش بندولو لپاره سروو حرکت 0 ته throttle تنظیم کړئ:
- دا ټول د PCA9685 16 چینل بریک آوټ ، Python او ServoKit سره د دوامداره گردش سرورونو کنټرول لپاره دي!
بشپړ Exampلی کوډ
د Python Docs
د Python Docs: ServoKit
ډاونلوډونه
Files
- د PCA9685 ډیټاشیټ (https://adafru.it/okB)
- د Arduino ډرایور کتابتون (https://adafru.it/aQl)
- EagleCAD PCB fileپه GitHub کې (https://adafru.it/rME)
- په GitHub کې 3D ماډلونه (https://adafru.it/19Bk)
- د اډافرویټ فریټیزنګ کتابتون کې فریټیزنګ څیز (https://adafru.it/aP3)
د سکیمیک او جوړونې چاپ
سوري 2.5 ملي متره قطر لري
FAQ
- ایا دا بورډ د LEDs یا یوازې سرورونو لپاره کارول کیدی شي؟
- دا د LEDs او همدارنګه د نورو PWM وړ وسیلې لپاره کارول کیدی شي!
- زه عجیب ستونزې لرم کله چې دا شیلډ د اډافروټ LED میټریکس / 7 سیګ بیکپیکونو سره یوځای کړم
- د PCA9865 چپ د 0x70 "ټول کال" پته لري. دا د ترتیب شوي پتې سربیره دی. بیک پیکونه د 0x71 پته یا د ډیفالټ 0x70 پرته بل څه ته تنظیم کړئ ترڅو مسله لرې شي.
- د LEDs سره، زه څنګه نشم کولی چې LEDs په بشپړ ډول بند کړم؟
- که تاسو غواړئ د LEDs کارول په بشپړ ډول بند کړئ (په Arduino کې) PWM (pin, 0, 4096); نه ټاکل شوی (پن، 0، 4095)؛
اسناد / سرچینې
![]() |
CNCU PCA9685 سروو ډرایور i2C انٹرفیس [pdf] لارښوونې PCA9685 سروو ډرایور i2C انٹرفیس، PCA9685، سروو ډرایور i2C انٹرفیس، ډرایور i2C انٹرفیس، i2C انٹرفیس، انٹرفیس |