CNCU PCA9685 سروو ڊرائيور i2C انٽرفيس
پيداوار جي استعمال جون هدايتون
- جڏهن توهان مشين تي ERR 40 ڏسندا آهيو:
- مشين کي آن رکو، اھو تمام ضروري آھي.
- لائيو پوزيشن مان بيٽرين کي هٽايو.
- بيٽرين کي محفوظ پوزيشن کان لائيو پوزيشن ۾ رکو.
- مشين کي ريبوٽ ڪريو.
- ايندڙ بيٽري جي تبديلي لاءِ رزرو ۾ رکڻ لاءِ ٻه نوان بيٽريون خريد ڪرڻ ياد رکو.
AM.CO.ZA سپورٽ سان رابطو ڪريو جيڪڏھن توھان کي بيٽري تبديل ڪرڻ ۾ مشڪلاتون پيش اچن يا جيڪڏھن مشين جي پوزيشن عمل دوران تبديل ٿي وڃي. توهان مدد لاءِ 060 600 6000 تي WhatsApp ذريعي پڻ پهچي سگهو ٿا.
مٿانview
Arduino Servo لائبريري سان سروو موٽر هلائڻ بلڪل آسان آهي، پر هر هڪ قيمتي پن استعمال ڪري ٿو - ڪجهه Arduino پروسيسنگ پاور جو ذڪر نه ڪرڻ. Adafruit 16-Channel 12-bit PWM/Servo ڊرائيور صرف 16 پنن سان I2C مٿان 2 سرورز تائين هلائيندو. آن بورڊ PWM سنڀاليندڙ سڀني 16 چينلن کي گڏ ڪندو، بغير ڪنهن اضافي Arduino پروسيسنگ اوور هيڊ سان. وڌيڪ ڇا آهي، توهان انهن مان 62 تائين زنجير ڪري سگهو ٿا 992 سرورز تائين ڪنٽرول ڪرڻ لاءِ - سڀ ساڳيا 2 پنن سان!
Adafruit PWM/Servo ڊرائيور ڪنهن به منصوبي لاءِ هڪ بهترين حل آهي جنهن لاءِ تمام گهڻو سرور جي ضرورت آهي.
پن آئوٽ
- ٻئي پاسي ڪنٽرول ان پٽ پنن جا ٻه سيٽ آهن. پنن جا ٻئي پاسا هڪجهڙا آهن! جيڪو به پاسو توهان چاهيو استعمال ڪريو، توهان پڻ آساني سان زنجير ڪري سگهو ٿا ٻن طرفن سان ڳنڍڻ سان
پاور پنن
- GND - هي پاور ۽ سگنل گرائونڊ پن آهي، ڳنڍيل هجڻ گهرجي
- VCC - ھي آھي لاجڪ پاور پن، ھن کي ان لاجڪ ليول سان ڳنڍيو جنھن کي توھان استعمال ڪرڻ چاھيو ٿا PCA9685 آئوٽ پٽ لاءِ، ھئڻ گھرجي 3 - 5V وڌ ۾ وڌ! اهو SCL/SDA تي 10K پل اپس لاءِ پڻ استعمال ڪيو ويو آهي، جيستائين توهان وٽ پنهنجا پل اپ نه آهن، ڇا اهو مائڪرو ڪنٽرولر جي منطق جي سطح سان پڻ ملندو!
- V + - هي هڪ اختياري پاور پن آهي جيڪو ورهايل طاقت فراهم ڪندو سرورز کي. جيڪڏهن توهان سرورز لاءِ استعمال نٿا ڪري رهيا آهيو ته توهان ڊسڪنيڪٽ ڇڏي سگهو ٿا. اهو سڀ ڪجهه چپ طرفان استعمال نه ڪيو ويو آهي. توهان بورڊ جي چوٽي تي 2-پن ٽرمينل بلاڪ مان پاور پڻ انجڻ ڪري سگهو ٿا. توهان کي 5-6VDC مهيا ڪرڻ گهرجي جيڪڏهن توهان سرور استعمال ڪري رهيا آهيو. جيڪڏهن توهان کي ڪرڻو آهي، توهان 12VDC ڏانهن وڌي سگهو ٿا، پر جيڪڏهن توهان گندگي ۽ VCC کي V+ سان ڳنڍيو ته توهان پنهنجي بورڊ کي نقصان پهچائي سگهو ٿا!
ڪنٽرول پنن
- SCL - I2C گھڙي پن، پنھنجي مائڪرو ڪنٽرولر I2C گھڙي واري لائن سان ڳنڍيو. 3V يا 5V منطق استعمال ڪري سگھي ٿو، ۽ وي سي سي ڏانھن ڪمزور پل اپ آھي
- SDA - I2C ڊيٽا پن، توهان جي microcontroller I2C ڊيٽا لائن سان ڳنڍيو. 3V يا 5V منطق استعمال ڪري سگھي ٿو، ۽ وي سي سي ڏانھن ڪمزور پل اپ آھي
- 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 ريزسٽرز آهن ۽ آئوٽ پُٽ منطق وي سي سي جي برابر آهي، ان ڪري ذهن ۾ رکو جيڪڏهن LEDs استعمال ڪري رهيا آهيو.
اسيمبلي
انسٽال ڪريو سرو هيڊر
- انسٽال ڪريو 4 3 × 4 پن مرد هيڊر بورڊ جي ڪنڊ سان نشان لڳل پوزيشن ۾.
سڀني پنن کي سولر ڪريو
- انھن مان گھڻا آھن!
ڪنٽرول لاء هيڊر شامل ڪريو
- نر هيڊر جي هڪ پٽي شامل آهي. جتي توھان ھيڊر انسٽال ڪرڻ چاھيو ٿا ۽ ڪھڙي پاسي استعمال تي ٿورڙو منحصر آھي:
- لاءِ ماني جو تختو (http://adafru.it/239) استعمال ڪريو، بورڊ جي تري ۾ مٿو نصب ڪريو.
- سان استعمال ڪرڻ لاء جمپر تار (http://adafru.it/758)، بورڊ جي چوٽي تي هيڊر انسٽال ڪريو.
- اسان جي استعمال لاء 6-پن ڪيبل (http://adafru.it/206)، بورڊ جي چوٽي تي هيڊر انسٽال ڪريو.
- جيڪڏهن توهان ڪيترن ئي ڊرائيور بورڊن کي زنجير ڪري رهيا آهيو، توهان کي ٻنهي سرن تي هيڊر چاهيندا.
پاور ٽرمينل انسٽال ڪريو
- جيڪڏهن توهان ڪيترن ئي ڊرائيور بورڊن کي زنجير ڪري رهيا آهيو، توهان کي صرف پهرين تي هڪ پاور ٽرمينل جي ضرورت آهي.
ان کي ڇڪڻ
Arduino سان ڳنڍڻ
- PWM/Servo ڊرائيور I2C استعمال ڪري ٿو، تنهنڪري اهو صرف 4 تارون وٺي ٿو توهان جي Arduino سان ڳنڍڻ لاءِ:
"ڪلاسڪ" Arduino وائرنگ:
- +5v -> VCC (هي طاقت صرف بريڪ آئوٽ لاءِ آهي، نه ته سرو پاور!)
- GND -> GND
- اينالاگ 4 -> SDA
- اينالاگ 5 -> SCL
پراڻي ميگا وائرنگ:
- +5v -> VCC (هي طاقت صرف بريڪ آئوٽ لاءِ آهي، نه ته سرو پاور!)
- GND -> GND
- ڊجيٽل 20 -> SDA
- ڊجيٽل 21 -> SCL
R3 ۽ بعد ۾ Arduino وائرنگ (Uno، ميگا ۽ Leonardo):
(هنن بورڊن کي وقف ڪيو ويو آهي SDA ۽ SCL پنن کي هيڊر تي USB ڪنيڪٽر جي ويجهو)
- +5v -> VCC (هي طاقت صرف بريڪ آئوٽ لاءِ آهي، نه ته سرو پاور!)
- GND -> GND
- SDA -> SDA
- SCL -> SCL
وي سي سي پن صرف چپ لاءِ طاقت آهي. جيڪڏهن توهان servos يا LEDs کي ڳنڍڻ چاهيو ٿا جيڪي V+ پن استعمال ڪن ٿا، توهان کي V+ پن پڻ ڳنڍڻو پوندو. V + پن 6V جيترو ٿي سگھي ٿو جيتوڻيڪ VCC 3.3V آھي (چپ 5V محفوظ آھي). اسان صلاح ڏيون ٿا ته بجليءَ کي بليو ٽرمينل بلاڪ ذريعي ڳنڍڻ، ڇاڪاڻ ته اهو پولارٽي-محفوظ آهي.
Servos لاء طاقت
اڪثر servos اٽڪل 5 يا 6v تي هلائڻ لاء ٺهيل آهن. ذهن ۾ رکو ته هڪ ئي وقت تي هلندڙ تمام گهڻا سرووس (خاص طور تي وڏا طاقتور آهن) کي تمام گهڻو موجوده جي ضرورت پوندي. جيتوڻيڪ مائڪرو سرووس ڪيترن ئي سو ايم اي ٺاهي سگهندا جڏهن حرڪت ڪندا. ڪجهه هاء-torque سرورز 1A کان وڌيڪ ٺاهي سگهندا هر هڪ لوڊ هيٺ.
سٺي طاقت جا اختيار آهن:
- 5v 2A سوئچنگ پاور سپلائي (http://adafru.it/276)
- 5v 10A سوئچنگ پاور سپلائي (http://adafru.it/658)
- 4xAA بيٽري هولڊر (http://adafru.it/830) - 6v Alkaline سيلن سان. 4.8v NiMH ريچارجبل سيلز سان.
- 4.8 يا 6v ريچارج قابل آر سي بيٽري پيڪ هڪ شوق اسٽور تان.
اهو هڪ سٺو خيال نه آهي استعمال ڪرڻ لاء Arduino 5v پن توهان جي سرور کي طاقت ڏيڻ لاء. بجليءَ جو شور ۽ 'برائون آئوٽ' اضافي ڪرنٽ ڊرا مان توهان جي Arduino کي غلط ڪم ڪرڻ، ري سيٽ ڪرڻ ۽/يا وڌيڪ گرم ڪرڻ جو سبب بڻجي سگهي ٿو.
thru-hole capacitor سلاٽ ۾ Capacitor شامل ڪرڻ
اسان وٽ پي سي بي تي هڪ جڳهه آهي سولڊرنگ لاءِ هڪ electrolytic capacitor. توهان جي استعمال جي بنياد تي، توهان کي هڪ capacitor جي ضرورت هجي يا نه هجي. جيڪڏهن توهان پاور سپلائي مان تمام گهڻو سرووس هلائي رهيا آهيو جيڪو تمام گهڻو ڊپ ڪري ٿو جڏهن servos هلن ٿا، n * 100uF جتي n آهي servos جو تعداد شروع ڪرڻ لاءِ سٺي جڳهه آهي - مثال طور 470uF يا وڌيڪ 5 سرورز لاءِ. جيئن ته ان جو تمام گهڻو انحصار سروو ڪرنٽ ڊرا تي آهي، هر موٽر تي ٽارڪ، ۽ ڪهڙي پاور سپلائي آهي، اتي ڪو به ”هڪ جادوئي ڪيپيسيٽر ويليو“ ناهي، اسان اهو تجويز ڪري سگهون ٿا، ڇو ته اسان کٽ ۾ ڪيپيسيٽر شامل نه ٿا ڪريون.
هڪ Servo ڳنڍڻ
اڪثر سرورز هڪ معياري 3-پن خاتون ڪنيڪٽر سان گڏ ايندا آهن جيڪي سڌو سنئون سروو ڊرائيور تي هيڊرز ۾ پلگ ان ڪندا. پڪ ڪريو ته پلگ کي زمين جي تار سان (عام طور تي ڪارو يا ناسي) هيٺئين قطار سان ۽ مٿي تي سگنل تار (عام طور تي پيلو يا اڇو) سان ترتيب ڏيو.
وڌيڪ سرور شامل ڪرڻ
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)
وغيره
توهان جي اسڪيچ ۾، توهان کي هر بورڊ لاءِ الڳ پروجيڪٽ جو اعلان ڪرڻو پوندو. ڪال هر شئي تي شروع ٿئي ٿي، ۽ هر سرو کي ڪنٽرول ڪري ٿو ان شئي جي ذريعي جنهن سان ان سان ڳنڍيل آهي. مثال طورampاليزي:
Adafruit لائبريري استعمال ڪندي
- جيئن ته PWM سروو ڊرائيور I2C تي ڪنٽرول ڪيو ويو آهي، اهو ڪنهن به مائڪرو ڪنٽرولر يا مائڪرو ڪمپيوٽر سان استعمال ڪرڻ آسان آهي.
- هن ڊيم ۾، اسان ان کي استعمال ڪندي ڏيکارينداسين Arduino IDE سان پر C++ ڪوڊ آساني سان پورٽ ڪري سگهجي ٿو.
انسٽال ڪريو Adafruit PCA9685 لائبريري
- sensor ڊيٽا پڙهڻ شروع ڪرڻ لاء، توهان کي ڪرڻو پوندو انسٽال ڪريو Adafruit_PWMServo لائبريري (ڪوڊ اسان جي github مخزن تي) (https://adafru.it/aQl). اهو دستياب آهي Arduino لائبريري مئنيجر کان، تنهنڪري اسان ان کي استعمال ڪرڻ جي صلاح ڏيو ٿا.
- IDE کان لائبريري مينيجر کي کوليو…
- ۽ لئبرري کي ڳولڻ لاءِ adafruit pwm ۾ ٽائپ ڪريو. انسٽال ڪريو تي ڪلڪ ڪريو
- اسان وٽ پڻ Arduino لائبريري جي تنصيب تي هڪ بهترين سبق آهي: http://learn.adafruit.com/adafruit-all-about-arduino-libraries-install-use (https://adafru.it/aYM)
Ex سان ٽيسٽampلي ڪوڊ:
- پهرين پڪ ڪريو ته Arduino IDE جون سڀئي ڪاپيون بند آهن.
- اڳيان کوليو Arduino IDE ۽ چونڊيو File-> سابقamples->Adafruit_PWMServoDriver->Servo. هي اڳواٽ کوليندوample file هڪ IDE ونڊو ۾.
جيڪڏهن هڪ Breakout استعمال ڪندي:
- ڊرائيور بورڊ ۽ سرو کي ڳنڍيو جيئن پوئين صفحي تي ڏيکاريل آهي. Vin (3-5V منطق جي سطح) ۽ V + (5V سرو پاور) ٻنهي کي طاقت فراهم ڪرڻ نه وساريو. چيڪ ڪريو سائي LED روشن آهي!
جيڪڏهن شيلڊ استعمال ڪندي:
- شيلڊ کي پنھنجي Arduino ۾ لڳايو. نه وساريو توهان کي پڻ مهيا ڪرڻو پوندو 5V کي V + ٽرمينل بلاڪ. ٻئي ڳاڙهي ۽ سائي LEDs کي روشن ڪيو وڃي.
جيڪڏهن هڪ FeatherWing استعمال ڪندي:
- FeatherWing کي پنھنجي پنن ۾ لڳايو. نه وساريو توهان کي پڻ مهيا ڪرڻو پوندو 5V کي V + ٽرمينل بلاڪ. چيڪ ڪريو سائي LED روشن آهي!
هڪ Servo ڳنڍيو
- هڪ واحد سرو PWM # 0 بندرگاهن ۾ پلگ ان ٿيڻ گهرجي، پهرين بندرگاهه. توهان کي ڏسڻ گهرجي ته servo sweep اڳتي ۽ پوئتي لڳ ڀڳ 180 درجا مٿان.
توهان جي Servos جي حساب سان
سرو پلس ٽائيم مختلف برانڊز ۽ ماڊلز جي وچ ۾ مختلف آهي. جيئن ته اهو هڪ اينالاگ ڪنٽرول سرڪٽ آهي، اتي اڪثر s جي وچ ۾ ڪجهه فرق آهيampساڳي برانڊ ۽ ماڊل جا. درست پوزيشن ڪنٽرول لاءِ، توھان چاھيو ٿا ته گھٽ ۾ گھٽ ۽ وڌ ۾ وڌ نبض جي چوٽي کي پنھنجي ڪوڊ ۾ servo جي سڃاتل پوزيشن سان ملائڻ لاءِ.
گھٽ ۾ گھٽ ڳولھيو:
- اڳوڻي استعمال ڪندي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 جي وچ ۾ Hz ۾ تعدد جي نمائندگي ڪري ٿو
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 لائبريري دستاويز
پٿون ۽ سرڪٽ پٿون
- PCA9685 ڊرائيور Python يا CircuitPython ۽ Adafruit سان استعمال ڪرڻ آسان آهي CircuitPython PCA9685 (https://adafru.it/tZF) ماڊل. هي ماڊل توهان کي آسانيءَ سان Python ڪوڊ لکڻ جي اجازت ڏئي ٿو جيڪو ڪنٽرول ۽ PWM هن بريڪ آئوٽ سان.
- توهان هن ڊرائيور بورڊ کي ڪنهن به CircuitPython microcontroller بورڊ سان استعمال ڪري سگهو ٿا يا ڪنهن ڪمپيوٽر سان جنهن ۾ GPIO ۽ Python آهي. Adafruit_Blinka جي مهرباني، اسان جي CircuitPython-for-Python مطابقت واري لائبريري (https://adafru.it/BSN).
CircuitPython Microcontroller وائرنگ
پهرين توهان جي بورڊ تي هڪ PCA9685 تار ڪريو بلڪل جيئن Arduino لاءِ پوئين صفحن تي ڏيکاريل آهي. هتي هڪ سابق آهيampI0C سان ڊرائيور بورڊ کي فيدر M2 جي وائرنگ ڪرڻ جي le:
پٿون ڪمپيوٽر وائرنگ
- جتان لينڪس ڪمپيوٽرن/بورڊ جا درجن آهن توهان استعمال ڪري سگهو ٿا اسان ڏيکارينداسين وائرنگ Raspberry Pi لاءِ. ٻين پليٽ فارمن لاء، مهرباني ڪري لينڪس تي CircuitPython لاءِ گائيڊ ڏسو ته ڇا توهان جو پليٽ فارم سپورٽ آهي (https://adafru.it/BSN).
- هتي Raspberry Pi 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 تنصيب
- توهان کي انسٽال ڪرڻ جي ضرورت پوندي Adafruit CircuitPython PCA9685 (https://adafru.it/tZF) توهان جي CircuitPython بورڊ تي لائبريري.
- پهرين پڪ ڪريو ته توهان هلائي رهيا آهيو Adafruit CircuitPython جو جديد نسخو (https://adafru.it/Amd) توهان جي بورڊ لاء.
- اڳتي توهان کي هارڊويئر استعمال ڪرڻ لاءِ ضروري لائبريريون انسٽال ڪرڻ جي ضرورت پوندي- احتياط سان انهن لائبرريءَ کي ڳولڻ ۽ انسٽال ڪرڻ لاءِ قدمن تي عمل ڪريو Adafruit's CircuitPython لائبريري بنڈل (https://adafru.it/uap). اسان جي CircuitPython اسٽارٽر گائيڊ تي ھڪڙو وڏو صفحو آھي لائبريري بنڊل کي ڪيئن انسٽال ڪجياي (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 لائبريرين جي پٿون تنصيب
توهان کي انسٽال ڪرڻ جي ضرورت پوندي Adafruit_Blinka لائبريري جيڪا Python ۾ CircuitPython سپورٽ مهيا ڪري ٿي. اهو شايد توهان جي پليٽ فارم تي I2C کي فعال ڪرڻ ۽ تصديق ڪرڻ جي ضرورت آهي ته توهان Python 3 هلائي رهيا آهيو. جيئن ته هر پليٽ فارم ٿورو مختلف آهي، ۽ لينڪس اڪثر ڪري تبديل ڪري ٿو، مهرباني ڪري دورو ڪريو CircuitPython لينڪس گائيڊ تي توهان جي ڪمپيوٽر کي تيار ڪرڻ لاء (https://adafru.it/BSN)!
- هڪ دفعو اهو ٿي چڪو آهي، توهان جي ڪمانڊ لائن مان هيٺ ڏنل حڪمن کي هلائڻ:
- جيڪڏهن توهان جو ڊفالٽ پٿون نسخو 3 آهي توهان کي شايد ان جي بدران 'پائپ' هلائڻ جي ضرورت پوندي. بس پڪ ڪريو ته توهان Python 2.x تي CircuitPython استعمال ڪرڻ جي ڪوشش نه ڪري رهيا آهيو، اهو سهڪار نه آهي!
CircuitPython ۽ Python استعمال
- هيٺيون سيڪشن ڏيکاريندو ته ڪيئن ڪنٽرول ڪجي PCA9685 بورڊ جي Python Prompt/REPL کان. توھان سکندا سين ته ھيٺ ڏنل ڪوڊ ۾ ٽائيپ ڪندي servos ۽ dim LEDs کي ڪھڙي ريت ڪنٽرول ڪجي.
LEDs کي مدھم ڪرڻ
ضروري ماڊلز درآمد ڪرڻ لاءِ ھيٺ ڏنل ڪوڊ ھلايو ۽ I2C ڪنيڪشن کي ڊرائيور بورڊ سان شروع ڪريو:
- PCA9685 جي هر چينل هڪ LED جي روشني کي ڪنٽرول ڪرڻ لاء استعمال ڪري سگهجي ٿو. PCA9685 هڪ تيز رفتار PWM سگنل ٺاهي ٿو جيڪو LED کي تمام جلدي آن ۽ بند ڪري ٿو. جيڪڏهن LED بند ٿيڻ کان وڌيڪ وقت تي آن آهي ته اهو توهان جي اکين ڏانهن روشن نظر ايندو.
- پهرين هيٺ ڏنل بورڊ تي هڪ LED تار لڳايو. نوٽ ڪريو ته توهان کي LED ذريعي ڪرنٽ کي محدود ڪرڻ لاءِ رزسٽر استعمال ڪرڻ جي ضرورت نه آهي جيئن ته PCA9685 موجوده کي 10mA تائين محدود ڪندو:
LED ڪيٿوڊ / ننڍو ٽنگ PCA9685 چينل GND / زمين ڏانهن. PCA9685 چينل PWM ڏانهن LED anode / ڊگهو ٽنگ.
- PCA9685 ڪلاس PWM فریکوئنسي ۽ هر چينل جي ڊيوٽي چڪر جو ڪنٽرول مهيا ڪري ٿو. چيڪ ڪريو ته PCA9685 ڪلاس دستاويز (https://adafru.it/C5n) وڌيڪ تفصيل لاءِ.
- LEDs کي مدھم ڪرڻ لاءِ توھان کي عام طور تي تيز PWM سگنل فریکوئنسي استعمال ڪرڻ جي ضرورت نه آھي ۽ بورڊ جي PWM فریکوئنسي کي 60hz تي سيٽ ڪري سگھوٿا فريڪوئنسي وصف مقرر ڪندي:
- PCA9685 16 الڳ چينلن کي سپورٽ ڪري ٿو جيڪي فريڪوئنسي شيئر ڪن ٿا پر آزاد ڊيوٽي سائيڪلون ٿي سگهن ٿيون. انهي طريقي سان توهان 16 ايل اي ڊي کي الڳ ڪري سگهو ٿا!
- PCA9685 اعتراض ۾ هڪ چينل خاصيت آهي جنهن ۾ هر چينل لاء هڪ اعتراض آهي جيڪو ڊيوٽي چڪر کي ڪنٽرول ڪري سگهي ٿو. انفرادي چينل حاصل ڪرڻ لاءِ استعمال ڪريو [] چينلن ۾ انڊيڪس ڪرڻ لاءِ.
- ھاڻي ايل اي ڊي جي چمڪ کي ڪنٽرول ڪريو ايل اي ڊي سان ڳنڍيل چينل جي ڊيوٽي چڪر کي ڪنٽرول ڪندي. ڊيوٽي چڪر جي قيمت هڪ 16-bit قدر هجڻ گهرجي، يعني 0 کان 0xffff، جنهن جي نمائندگي ڪري ٿي ته وقت جو ڪيترو سيڪڙو سگنل آن بمقابله بند آهي. 0xffff جو قدر 100٪ چمڪ آهي، 0 0٪ چمڪ آهي، ۽ وچ ۾ قيمتون 0٪ کان 100٪ چمڪ تائين وڃن ٿيون.
- مثال طورamp0xffff جي ڊيوٽي چڪر سان مڪمل طور تي LED سيٽ ڪريو:
- مٿي ڏنل حڪم کي هلائڻ کان پوء توهان کي مڪمل روشني تي LED روشني ڏسڻ گهرجي! ھاڻي 0 جي ڊيوٽي چڪر سان LED بند ڪريو:
- ڪوشش ڪريو وچ ۾ قدر 1000 وانگر:
- توهان کي ڏسڻ گهرجي ته LED کي روشني سان روشني. ٻين ڊيوٽي چڪر جي قدرن سان تجربو ڪرڻ جي ڪوشش ڪريو ڏسو ته ڪيئن LED چمڪ تبديل ڪري ٿي!
- مثال طورampduty_cycle کي لوپ ۾ ترتيب ڏيڻ سان LED کي چمڪيو ۽ بند ڪريو:
- اهي لوپ لاءِ ڪجهه وقت وٺن ٿا ڇاڪاڻ ته 16-بٽ تمام گهڻا نمبر آهن. CTRL-C لوپ کي هلائڻ کان روڪڻ ۽ REPL ڏانھن واپس وڃڻ لاء.
مڪمل Exampلي ڪوڊ
ڪنٽرول Servos
- اسان مختلف PWM/Servo kits لاءِ هڪ آسان CircuitPython لائبريري لکيو آهي Adafruit CircuitPython ServoKit (https://adafru.it/Dpu) جيڪو توهان لاءِ تمام پيچيده سيٽ اپ سنڀاليندو آهي. توهان کي صرف اهو ڪرڻو آهي ته لائبريري مان مناسب ڪلاس درآمد ڪريو، ۽ پوءِ ان ڪلاس جون سڀئي خاصيتون استعمال لاءِ موجود آهن.
- اسان توهان کي ڏيکارڻ وارا آهيون ته ServoKit ڪلاس کي ڪيئن درآمد ڪجي ۽ ان کي Adafruit 16-channel breakout سان سروو موٽرز کي ڪنٽرول ڪرڻ لاءِ استعمال ڪيو وڃي.
- جيڪڏهن توهان servos سان واقف نه آهيو ته پهرين هن کي پڙهڻ جي پڪ ڪريو servos صفحي جو تعارف (https://adafru.it/scW) ۽ هي ۾-کوٽائي servo گائيڊ صفحو (https://adafru.it/scS).
- پهرين PCA0 تي چينل 9685 سان سرو کي ڳنڍيو. هتي هڪ سابق آهيampچينل 0 سان ڳنڍيل هڪ سروو جو le:
- پڪ ڪريو ته توهان PCA5 بورڊ کي به ٻاهرين 9685V پاور سپلائي کي آن يا ان ۾ لڳايو آهي!
- پهرين توهان کي درآمد ڪرڻ ۽ ServoKit ڪلاس کي شروع ڪرڻ جي ضرورت پوندي. توھان کي توھان جي بورڊ تي موجود چينلن جو تعداد بيان ڪرڻ گھرجي. بريڪ آئوٽ ۾ 16 چينل آھن، تنھنڪري جڏھن توھان ڪلاس اعتراض ٺاھيندا، توھان بيان ڪندا 16.
- ھاڻي توھان تيار آھيو معياري ۽ مسلسل گردش ڪندڙ سرورز کي ڪنٽرول ڪرڻ لاءِ.
معياري خدمتون
- معياري سرو کي ڪنٽرول ڪرڻ لاء، توهان کي چينل جي وضاحت ڪرڻ جي ضرورت آهي جيڪا سرو سان ڳنڍيل آهي. توھان وري حرڪت کي ڪنٽرول ڪري سگھوٿا زاوي کي ترتيب ڏيڻ سان ڪيترن ئي درجن تائين.
- ڊفالٽ طور، Servo ڪلاس استعمال ڪندو عمل جي حد، گھٽ ۾ گھٽ پلس-چوٿون، ۽ وڌ ۾ وڌ پلس-چوٿون قدر جيڪي تمام گھڻن سرورن لاءِ ڪم ڪرڻ گهرجن. بهرحال، Servo ڪلاس دستاويز چيڪ ڪريو (https://adafru.it/BNE) وڌيڪ تفصيلن لاءِ اضافي پيٽرولن تي توهان جي سرورز لاءِ ٺاهيل سگنل کي ترتيب ڏيڻ لاءِ.
- Servo سان، توھان ھڪڙي پوزيشن کي ھڪڙي زاويہ طور بيان ڪريو. زاويه هميشه 0 جي وچ ۾ هوندو ۽ عمل جي حد ڏني وئي جڏهن Servo ٺاهي وئي. ڊفالٽ 180 درجا آھي پر توھان جي سرو ۾ ھڪڙو ننڍڙو جھڙو ٿي سگھي ٿو- مٿي ڏنل Servo ڪلاس شروعاتي ۾ actuation_angle پيٽرول بيان ڪندي ڪل زاويہ تبديل ڪريو.
- ھاڻي زاويہ 180 تي سيٽ ڪريو، ھڪڙي حد جي حد:
- servo کي 0 درجا واپس ڪرڻ لاء:
- هڪ معياري سرو سان، توهان پوزيشن کي هڪ زاويه طور بيان ڪيو. زاويه هميشه 0 ۽ عمل جي حد جي وچ ۾ هوندو. ڊفالٽ 180 درجا آھي پر توھان جي سرو ۾ ھڪڙو ننڍڙو جھلي سگھي ٿو. توھان تبديل ڪري سگھوٿا ڪل زاويہ ترتيب ڏيندي actuation_range .
- مثال طورampلي، عمل جي حد کي 160 درجا مقرر ڪرڻ لاء:
- اڪثر حد تائين هڪ انفرادي سرو جي سڃاڻپ ٻين سرورن کان ٿورو مختلف آهي. جيڪڏهن servo مڪمل متوقع رينج کي صاف نه ڪيو، پوء سيٽ_pulse_width_range(min_pulse, max_pulse) استعمال ڪندي گهٽ ۾ گهٽ ۽ وڌ ۾ وڌ نبض جي چوٽي کي ترتيب ڏيڻ جي ڪوشش ڪريو.
- نبض جي چوٽي جي حد مقرر ڪرڻ لاء گھٽ ۾ گھٽ 1000 ۽ وڌ ۾ وڌ 2000 تائين:
- PCA9685 بريڪ آئوٽ، Python ۽ ServoKit سان معياري سرورز کي ڪنٽرول ڪرڻ لاءِ اهو سڀ ڪجهه آهي!
مسلسل گردش سرووس
- مسلسل گردش سرو کي ڪنٽرول ڪرڻ لاء، توهان کي چينل جي وضاحت ڪرڻ گهرجي ته سروو آن آهي.
- پوء توهان throttle استعمال ڪندي تحريڪ کي ڪنٽرول ڪري سگهو ٿا.
- مثال طورample، چينل 1 سان ڳنڍيل مسلسل گردش servo شروع ڪرڻ لاء مڪمل throttle اڳتي:
- چينل 1 سان ڳنڍيل مسلسل گردش سروو کي شروع ڪرڻ لاءِ مڪمل ريورس تھروٽل تائين:
- اڌ ٿلهي کي سيٽ ڪرڻ لاء، ڊيسيمل استعمال ڪريو:
- ۽، مسلسل گردش کي روڪڻ لاءِ سروو حرڪت کي 0 تي سيٽ ڪريو:
- اهو سڀ ڪجهه آهي PCA9685 16-چينل بريڪ آئوٽ، پٿون ۽ ServoKit سان مسلسل گردش سرورز کي ڪنٽرول ڪرڻ لاءِ!
مڪمل Exampلي ڪوڊ
Python Docs
Python Docs: ServoKit
ڊائون لوڊ
Files
- PCA9685 ڊيٽا شيٽ (https://adafru.it/okB)
- Arduino ڊرائيور لائبريري (https://adafru.it/aQl)
- EagleCAD PCB files GitHub تي (https://adafru.it/rME)
- GitHub تي 3D ماڊل (https://adafru.it/19Bk)
- Adafruit Fritzing لائبريري ۾ Fritzing اعتراض (https://adafru.it/aP3)
اسڪيميٽ ۽ فيبريڪيشن پرنٽ
سوراخ قطر ۾ 2.5mm آهن
FAQ
- هي بورڊ LEDs يا صرف servos لاء استعمال ڪري سگهجي ٿو؟
- اهو استعمال ڪري سگهجي ٿو LEDs سان گڏو گڏ ڪنهن ٻئي PWM-قابل ڊوائيس لاء!
- مون کي عجيب مسئلا ٿي رهيا آهن جڏهن هن شيلڊ کي Adafruit LED Matrix/7Seg Backpacks سان گڏ ڪيو
- PCA9865 چپ وٽ "سڀ ڪال" ايڊريس 0x70 آهي. هي ترتيب ڏنل ايڊريس کان علاوه آهي. پٺاڻن کي 0x71 ايڊريس تي سيٽ ڪريو يا ڊفالٽ 0x70 کان سواءِ ٻيو ڪجھ به ان مسئلي کي دور ڪرڻ لاءِ.
- LEDs سان، مان ڪيئن نه حاصل ڪري سگهان ٿو LEDs کي مڪمل طور تي بند ڪرڻ لاءِ؟
- جيڪڏهن توهان LEDs کي مڪمل طور تي بند ڪرڻ چاهيو ٿا (Arduino ۾) PWM (پن، 0، 4096) سيٽ ڪريو؛ مقرر نه ڪيو ويو (پن، 0، 4095)؛
دستاويز / وسيلا
![]() |
CNCU PCA9685 سروو ڊرائيور i2C انٽرفيس [pdf] هدايتون PCA9685 سروو ڊرائيور i2C انٽرفيس، PCA9685، سروو ڊرائيور i2C انٽرفيس، ڊرائيور i2C انٽرفيس، i2C انٽرفيس، انٽرفيس |