CNCU PCA9685 ចំណុចប្រទាក់កម្មវិធីបញ្ជា Servo i2C
ការណែនាំអំពីការប្រើប្រាស់ផលិតផល
- នៅពេលអ្នកឃើញ ERR 40 នៅលើម៉ាស៊ីន៖
- ទុកម៉ាស៊ីនឱ្យបើក នេះមានសារៈសំខាន់ណាស់។
- ដកថ្មចេញពីទីតាំងផ្ទាល់។
- ដាក់ថ្មពីទីតាំងបម្រុងទៅក្នុងទីតាំងផ្ទាល់។
- ចាប់ផ្ដើមម៉ាស៊ីនឡើងវិញ។
- ចងចាំថាត្រូវទិញថ្មថ្មីចំនួនពីរ ដើម្បីរក្សាទុកក្នុង ការកក់ទុកសម្រាប់ការផ្លាស់ប្តូរថ្មបន្ទាប់។
ទាក់ទងផ្នែកគាំទ្រ AM.CO.ZA ប្រសិនបើអ្នកជួបប្រទះការលំបាកក្នុងការផ្លាស់ប្តូរថ្ម ឬប្រសិនបើទីតាំងម៉ាស៊ីនផ្លាស់ប្តូរកំឡុងពេលដំណើរការ។ អ្នកក៏អាចទាក់ទងតាមរយៈ WhatsApp នៅ 060 600 6000 សម្រាប់ជំនួយ។
ជាងview
ការបើកបរម៉ូទ័រ servo ជាមួយនឹងបណ្ណាល័យ Arduino Servo គឺងាយស្រួលណាស់ ប៉ុន្តែពួកគេម្នាក់ៗប្រើប្រាស់ម្ជុលដ៏មានតម្លៃមួយ – មិននិយាយអំពីថាមពលដំណើរការ Arduino មួយចំនួននោះទេ។ Adafruit 16-Channel 12-bit PWM/Servo Driver នឹងជំរុញដល់ទៅ 16 servos លើ I2C ដោយមានតែ 2 pins ប៉ុណ្ណោះ។ ឧបករណ៍បញ្ជា PWM នៅលើយន្តហោះនឹងជំរុញបណ្តាញទាំង 16 ក្នុងពេលដំណាលគ្នាដោយមិនមានដំណើរការ Arduino បន្ថែមពីលើក្បាល។ លើសពីនេះទៅទៀត អ្នកអាចដាក់សង្វាក់រហូតដល់ 62 ក្នុងចំណោមពួកវា ដើម្បីគ្រប់គ្រងរហូតដល់ 992 servos – ទាំងអស់មាន 2 pins ដូចគ្នា!
Adafruit PWM/Servo Driver គឺជាដំណោះស្រាយដ៏ល្អឥតខ្ចោះសម្រាប់គម្រោងណាមួយដែលត្រូវការ servos ច្រើន។
Pinouts
- មានម្ជុលបញ្ចូលវត្ថុបញ្ជាចំនួនពីរនៅសងខាង។ ម្ជុលទាំងសងខាងគឺដូចគ្នាបេះបិទ! ប្រើផ្នែកណាមួយដែលអ្នកចូលចិត្ត អ្នកក៏អាចច្រវ៉ាក់បានយ៉ាងងាយស្រួលដោយភ្ជាប់ពីរចំហៀង
ម្ជុលថាមពល
- GND - នេះជាបង្គោលភ្លើងនិងសញ្ញាត្រូវបានតភ្ជាប់
- VCC - នេះគឺជា pin ថាមពលតក្កវិជ្ជា ភ្ជាប់វាទៅនឹងកម្រិតតក្កវិជ្ជាដែលអ្នកចង់ប្រើសម្រាប់លទ្ធផល PCA9685 គួរតែជា 3 - 5V អតិបរមា! វាក៏ត្រូវបានប្រើសម្រាប់ការទាញ 10K នៅលើ SCL/SDA ផងដែរ ដូច្នេះលុះត្រាតែអ្នកមានការទាញដោយខ្លួនឯង សូមឲ្យវាត្រូវគ្នានឹងកម្រិតតក្កវិជ្ជារបស់ microcontroller ផងដែរ!
- V+ - នេះគឺជាម្ជុលថាមពលស្រេចចិត្តដែលនឹងផ្គត់ផ្គង់ថាមពលចែកចាយទៅ servos ។ ប្រសិនបើអ្នកមិនប្រើសម្រាប់ servos អ្នកអាចទុកចោល។ វាមិនត្រូវបានប្រើទាល់តែសោះដោយបន្ទះឈីប។ អ្នកក៏អាចចាក់ថាមពលពីប្លុកស្ថានីយ 2-pin នៅផ្នែកខាងលើនៃក្តារ។ អ្នកគួរតែផ្តល់ 5-6VDC ប្រសិនបើអ្នកកំពុងប្រើ servos ។ ប្រសិនបើអ្នកត្រូវតែ អ្នកអាចឡើងខ្ពស់ដល់ 12VDC ប៉ុន្តែប្រសិនបើអ្នករញ៉េរញ៉ៃ ហើយភ្ជាប់ VCC ទៅ V+ អ្នកអាចបំផ្លាញក្តាររបស់អ្នក!
ម្ជុលបញ្ជា
- SCL - ម្ជុលនាឡិកា I2C ភ្ជាប់ទៅខ្សែនាឡិកា I2C មីក្រូកុងទ័ររបស់អ្នក។ អាចប្រើតក្កវិជ្ជា 3V ឬ 5V និងមានចំណុចទាញខ្សោយទៅ VCC
- SDA - ម្ជុលទិន្នន័យ I2C ភ្ជាប់ទៅខ្សែទិន្នន័យ I2C របស់ microcontroller ។ អាចប្រើតក្កវិជ្ជា 3V ឬ 5V និងមានចំណុចទាញខ្សោយទៅ VCC
- OE - បើកដំណើរការ។ អាចត្រូវបានប្រើដើម្បីបិទលទ្ធផលទាំងអស់យ៉ាងឆាប់រហ័ស។ នៅពេលដែលម្ជុលនេះទាប ម្ជុលទាំងអស់ត្រូវបានបើក។ នៅពេលដែលម្ជុលខ្ពស់ទិន្នផលត្រូវបានបិទ។ ទាញទាបតាមលំនាំដើម ដូច្នេះវាជាម្ជុលស្រេចចិត្ត!
ច្រកចេញ
- មានច្រកទិន្នផលចំនួន 16 ។ ច្រកនីមួយៗមាន 3 pins: V+, GND និង PWM output ។ PWM នីមួយៗដំណើរការដោយឯករាជ្យទាំងស្រុង ប៉ុន្តែពួកវាទាំងអស់ត្រូវតែមានប្រេកង់ PWM ដូចគ្នា។
- នោះគឺសម្រាប់ LEDs អ្នកប្រហែលជាចង់បាន 1.0 KHz ប៉ុន្តែ servos ត្រូវការ 60 Hz - ដូច្នេះអ្នកមិនអាចប្រើពាក់កណ្តាលសម្រាប់ LEDs @ 1.0 KHz និងពាក់កណ្តាល @ 60 Hz ។
- ពួកវាត្រូវបានរៀបចំសម្រាប់ servos ប៉ុន្តែអ្នកអាចប្រើវាសម្រាប់ LEDs! ចរន្តអតិបរមាក្នុងមួយម្ជុលគឺ 25mA ។
- មានរេស៊ីស្តង់ 220 ohm ជាស៊េរីជាមួយ PWM Pins ទាំងអស់ ហើយតក្កវិជ្ជាលទ្ធផលគឺដូចគ្នាទៅនឹង VCC ដូច្នេះត្រូវចាំថាប្រសិនបើប្រើ LEDs ។
សន្និបាត
ដំឡើងក្បាលម៉ាស៊ីនបម្រើ
- ដំឡើងក្បាលមេ 4 3×4 pin ទៅក្នុងទីតាំងដែលបានសម្គាល់នៅគែមក្តារ។
ដេរម្ជុលទាំងអស់។
- មានច្រើនណាស់!
បន្ថែមបឋមកថាសម្រាប់ការគ្រប់គ្រង
- ក្បាលដីរបស់បុរសត្រូវបានរួមបញ្ចូល។ កន្លែងដែលអ្នកចង់ដំឡើងបឋមកថា និងផ្នែកណាអាស្រ័យលើការប្រើប្រាស់បន្តិចបន្តួច៖
- សម្រាប់ បន្ទះនំប៉័ង (http://adafru.it/239) ប្រើ ដំឡើងបឋមកថានៅខាងក្រោមក្តារ។
- សម្រាប់ប្រើជាមួយ ខ្សែ jumper (http://adafru.it/758) ដំឡើងបឋមកថានៅផ្នែកខាងលើនៃក្តារ។
- សម្រាប់ប្រើប្រាស់ជាមួយយើងខ្ញុំ ខ្សែ 6-pin (http://adafru.it/206) ដំឡើងបឋមកថានៅផ្នែកខាងលើនៃក្តារ។
- ប្រសិនបើអ្នកកំពុងច្រវាក់ក្រុមប្រឹក្សាភិបាលច្រើន អ្នកនឹងចង់បានក្បាលនៅលើចុងទាំងពីរ។
ដំឡើងស្ថានីយថាមពល
- ប្រសិនបើអ្នកកំពុងដាក់ច្រវាក់ក្រុមប្រឹក្សាភិបាលជាច្រើន អ្នកគ្រាន់តែត្រូវការស្ថានីយថាមពលនៅលើបន្ទះទីមួយប៉ុណ្ណោះ។
ភ្ជាប់វាឡើង
ការភ្ជាប់ទៅ Arduino
- PWM/Servo Driver ប្រើ I2C ដូច្នេះវាត្រូវការតែ 4 ខ្សែដើម្បីភ្ជាប់ទៅ Arduino របស់អ្នក៖
ខ្សែភ្លើង Arduino បុរាណ៖
- +5v -> VCC (នេះគឺជាថាមពលសម្រាប់តែ BREAKOUT ប៉ុណ្ណោះ មិនមែនជាថាមពល servo!)
- GND -> GND
- អាណាឡូក 4 -> SDA
- អាណាឡូក 5 -> SCL
ខ្សែភ្លើងមេហ្គាចាស់៖
- +5v -> VCC (នេះគឺជាថាមពលសម្រាប់តែ BREAKOUT ប៉ុណ្ណោះ មិនមែនជាថាមពល servo!)
- GND -> GND
- ឌីជីថល 20 -> SDA
- ឌីជីថល 21 -> SCL
ខ្សែ R3 និងក្រោយ Arduino (Uno, Mega & Leonardo)៖
(ក្តារទាំងនេះមានម្ជុល SDA & SCL ពិសេសនៅលើបឋមកថានៅជិតឧបករណ៍ភ្ជាប់ USB)
- +5v -> VCC (នេះគឺជាថាមពលសម្រាប់តែ BREAKOUT ប៉ុណ្ណោះ មិនមែនជាថាមពល servo!)
- GND -> GND
- SDA -> SDA
- SCL -> SCL
ម្ជុល VCC គឺគ្រាន់តែជាថាមពលសម្រាប់បន្ទះឈីបខ្លួនឯងប៉ុណ្ណោះ។ ប្រសិនបើអ្នកចង់ភ្ជាប់ servos ឬ LEDs ដែលប្រើម្ជុល V+ អ្នកត្រូវតែភ្ជាប់ V+ pin ផងដែរ។ ម្ជុល V+ អាចខ្ពស់ដល់ 6V ទោះបីជា VCC មាន 3.3V (បន្ទះឈីបមានសុវត្ថិភាព 5V)។ យើងស្នើឱ្យភ្ជាប់ថាមពលតាមរយៈប្លុកស្ថានីយពណ៌ខៀវ ព្រោះវាត្រូវបានការពារដោយបន្ទាត់រាងប៉ូល។
ថាមពលសម្រាប់ Servos
servos ភាគច្រើនត្រូវបានរចនាឡើងដើម្បីដំណើរការប្រហែល 5 ឬ 6v ។ សូមចងចាំថា servos ជាច្រើនដែលធ្វើចលនាក្នុងពេលដំណាលគ្នា (ជាពិសេសថាមពលខ្លាំង) នឹងត្រូវការចរន្តច្រើន។ សូម្បីតែមីក្រូ servos នឹងទាញរាប់រយ mA នៅពេលផ្លាស់ទី។ servos កម្លាំងបង្វិលខ្ពស់មួយចំនួននឹងទាញលើសពី 1A នីមួយៗនៅក្រោមបន្ទុក។
ជម្រើសថាមពលល្អគឺ៖
- ការផ្គត់ផ្គង់ថាមពលប្តូរ 5v 2A (http://adafru.it/276)
- ការផ្គត់ផ្គង់ថាមពលប្តូរ 5v 10A (http://adafru.it/658)
- អ្នកកាន់ថ្ម 4xAA (http://adafru.it/830) - 6v ជាមួយកោសិកាអាល់កាឡាំង។ 4.8v ជាមួយកោសិកាសាកថ្ម NiMH ។
- កញ្ចប់ថ្ម RC 4.8 ឬ 6v ពីហាងចំណង់ចំណូលចិត្ត។
វាមិនមែនជាគំនិតល្អទេក្នុងការប្រើ Arduino 5v pin ដើម្បីផ្តល់ថាមពលដល់ servos របស់អ្នក។ សំលេងរំខានអគ្គិសនី និង 'ការដាច់រលាត់' ពីការទាញចរន្តលើសអាចបណ្តាលឱ្យ Arduino របស់អ្នកធ្វើសកម្មភាពខុសប្រក្រតី កំណត់ឡើងវិញ និង/ឬឡើងកំដៅ។
ការបន្ថែម Capacitor ទៅក្នុងរន្ធ thru-hole capacitor
យើងមានកន្លែងនៅលើ PCB សម្រាប់ soldering នៅក្នុង capacitor electrolytic ។ ដោយផ្អែកលើការប្រើប្រាស់របស់អ្នក អ្នកអាចឬមិនត្រូវការ capacitor ។ ប្រសិនបើអ្នកកំពុងបើក servos ជាច្រើនពីការផ្គត់ផ្គង់ថាមពលដែលធ្លាក់ចុះច្រើននៅពេល servos ផ្លាស់ទី n * 100uF ដែល n ជាចំនួន servos គឺជាកន្លែងដ៏ល្អដើម្បីចាប់ផ្តើម - ឧទាហរណ៍ 470uF ឬច្រើនជាងនេះសម្រាប់ 5 servos ។ ដោយសារវាអាស្រ័យទៅលើការអូសទាញចរន្ត servo កម្លាំងបង្វិលជុំនៅលើម៉ូទ័រនីមួយៗ និងការផ្គត់ផ្គង់ថាមពលអ្វីនោះ មិនមាន "តម្លៃ capacitor វេទមន្ត" ទេ យើងអាចណែនាំបាន នោះហើយជាមូលហេតុដែលយើងមិនបញ្ចូល capacitor នៅក្នុងឧបករណ៍។
ការភ្ជាប់ Servo
servos ភាគច្រើនភ្ជាប់មកជាមួយឧបករណ៍ភ្ជាប់ស្ត្រី 3-pin ស្តង់ដារដែលនឹងដោតដោយផ្ទាល់ទៅក្នុងបឋមកថានៅលើ Servo Driver ។ ត្រូវប្រាកដថាតម្រឹមដោតជាមួយខ្សែដី (ជាធម្មតាពណ៌ខ្មៅ ឬពណ៌ត្នោត) ជាមួយជួរខាងក្រោម និងខ្សែសញ្ញា (ជាធម្មតាពណ៌លឿង ឬស) នៅផ្នែកខាងលើ។
ការបន្ថែម Servos បន្ថែមទៀត
រហូតដល់ទៅ 16 servos អាចភ្ជាប់ទៅនឹងក្តារមួយ។ ប្រសិនបើអ្នកត្រូវការគ្រប់គ្រងច្រើនជាង 16 servos ក្រុមប្រឹក្សាបន្ថែមអាចត្រូវបានដាក់ច្រវាក់ដូចដែលបានពិពណ៌នានៅទំព័របន្ទាប់។
អ្នកបើកបរខ្សែសង្វាក់
- អ្នកបើកបរច្រើន (រហូតដល់ 62) អាចត្រូវបានច្រវាក់ដើម្បីគ្រប់គ្រង servos បន្ថែមទៀត។
- ជាមួយនឹងក្បាលក្បាលនៅចុងទាំងពីរនៃក្តារ ខ្សែភ្លើងគឺសាមញ្ញដូចជាការភ្ជាប់ a ខ្សែប៉ារ៉ាឡែល 6-pin (http://adafru.it/206) ពីក្តារមួយទៅបន្ទះមួយទៀត។
ថ្លែងទៅកាន់ក្រុមប្រឹក្សា
- ក្តារនីមួយៗនៅក្នុងខ្សែសង្វាក់ត្រូវតែផ្តល់អាសយដ្ឋានតែមួយគត់។ នេះត្រូវបានធ្វើដោយអ្នកលោតអាសយដ្ឋាននៅគែមខាងលើខាងស្តាំនៃក្តារ។ អាសយដ្ឋានមូលដ្ឋាន I2C សម្រាប់ក្តារនីមួយៗគឺ 0x40។ អាសយដ្ឋានគោលពីរដែលអ្នកសរសេរកម្មវិធីជាមួយ jumpers អាសយដ្ឋានត្រូវបានបន្ថែមទៅអាសយដ្ឋាន I2C មូលដ្ឋាន។
- ដើម្បីសរសេរកម្មវិធីអាស័យដ្ឋានអុហ្វសិត សូមប្រើតំណក់នៃ solder ដើម្បីភ្ជាប់អ្នកលោតអាសយដ្ឋានដែលត្រូវគ្នាសម្រាប់គោលពីរ '1' នីមួយៗនៅក្នុងអាសយដ្ឋាន។
- ក្រុមប្រឹក្សាភិបាល 0: អាស័យដ្ឋាន = 0x40 អុហ្វសិត = គោលពីរ 00000 (មិនចាំបាច់លោត)
- ក្រុមប្រឹក្សាភិបាល 1: អាស័យដ្ឋាន = 0x41 អុហ្វសិត = គោលពីរ 00001 (ស្ពាន A0 ដូចក្នុងរូបថតខាងលើ)
- ក្រុមប្រឹក្សាភិបាល 2៖ អាស័យដ្ឋាន = 0x42 អុហ្វសិត = គោលពីរ 00010 (ស្ពាន A1)
- ក្រុមប្រឹក្សាភិបាលទី 3៖ អាស័យដ្ឋាន = 0x43 អុហ្វសិត = គោលពីរ 00011 (ស្ពាន A0 & A1)
- ក្រុមប្រឹក្សាភិបាល 4៖ អាស័យដ្ឋាន = 0x44 អុហ្វសិត = គោលពីរ 00100 (ស្ពាន A2)
ល។
នៅក្នុងគំនូរព្រាងរបស់អ្នក អ្នកនឹងត្រូវប្រកាសគម្រោងដាច់ដោយឡែកសម្រាប់ក្តារនីមួយៗ។ ការហៅទូរសព្ទចាប់ផ្តើមនៅលើវត្ថុនីមួយៗ ហើយគ្រប់គ្រង servo នីមួយៗតាមរយៈវត្ថុដែលវាភ្ជាប់ជាមួយ។ សម្រាប់អតីតampលេ៖
ការប្រើប្រាស់បណ្ណាល័យ Adafruit
- ចាប់តាំងពី PWM Servo Driver ត្រូវបានគ្រប់គ្រងលើ I2C វាងាយស្រួលប្រើជាមួយ microcontroller ឬ microcomputer ណាមួយ។
- នៅក្នុងការបង្ហាញនេះ យើងនឹងបង្ហាញការប្រើប្រាស់វាជាមួយ Arduino IDE ប៉ុន្តែកូដ C++ អាចត្រូវបានបញ្ជូនយ៉ាងងាយស្រួល
ដំឡើងបណ្ណាល័យ Adafruit PCA9685
- ដើម្បីចាប់ផ្តើមអានទិន្នន័យឧបករណ៍ចាប់សញ្ញា អ្នកនឹងត្រូវ ដំឡើងបណ្ណាល័យ 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)
សាកល្បងជាមួយ Exampលេខកូដ៖
- ដំបូងត្រូវប្រាកដថាច្បាប់ចម្លងទាំងអស់នៃ Arduino IDE ត្រូវបានបិទ។
- បន្ទាប់មកបើក Arduino IDE ហើយជ្រើសរើស File-> អតីតamples->Adafruit_PWMServoDriver->Servo។ នេះនឹងបើកអតីតample file នៅក្នុងបង្អួច IDE ។
ប្រសិនបើប្រើ Breakout៖
- ភ្ជាប់ផ្ទាំងបញ្ជា និង servo ដូចបង្ហាញនៅលើទំព័រមុន។ កុំភ្លេចផ្តល់ថាមពលដល់ទាំង Vin (កម្រិតតក្ក 3-5V) និង V+ (5V servo power)។ ពិនិត្យមើលអំពូល LED ពណ៌បៃតង!
ប្រសិនបើប្រើ Shield៖
- ដោតប្រឡោះចូលទៅក្នុង Arduino របស់អ្នក។ កុំភ្លេចអ្នកក៏នឹងត្រូវផ្តល់ 5V ទៅប្លុកស្ថានីយ V+ ផងដែរ។ ទាំង LED ក្រហម និងបៃតងត្រូវតែភ្លឺ។
ប្រសិនបើប្រើ FeatherWing៖
- ដោត FeatherWing ទៅក្នុង Feather របស់អ្នក។ កុំភ្លេចអ្នកក៏នឹងត្រូវផ្តល់ 5V ទៅប្លុកស្ថានីយ V+ ផងដែរ។ ពិនិត្យមើលអំពូល LED ពណ៌បៃតង!
ភ្ជាប់ Servo
- servo តែមួយគួរតែត្រូវបានដោតចូលទៅក្នុងច្រក PWM #0 ដែលជាច្រកទីមួយ។ អ្នកគួរតែឃើញ servo អូសទៅក្រោយប្រហែល 180 ដឺក្រេ។
ការក្រិតតាមខ្នាត Servos របស់អ្នក។
ពេលវេលាជីពចរ Servo ប្រែប្រួលរវាងម៉ាក និងម៉ូដែលផ្សេងៗគ្នា។ ដោយសារវាជាសៀគ្វីគ្រប់គ្រងអាណាឡូក ជាញឹកញាប់មានការប្រែប្រួលខ្លះរវាង samples នៃម៉ាកនិងម៉ូដែលដូចគ្នា។ សម្រាប់ការគ្រប់គ្រងទីតាំងច្បាស់លាស់ អ្នកនឹងចង់ក្រិតខ្នាតអប្បបរមា និងទទឹងជីពចរអតិបរមានៅក្នុងកូដរបស់អ្នក ដើម្បីផ្គូផ្គងទីតាំងដែលគេស្គាល់របស់ servo។
ស្វែងរកអប្បបរមា៖
- ដោយប្រើអតីតample កូដ កែសម្រួល SERVOMIN រហូតដល់ចំណុចទាបនៃការបោសសម្អាតឈានដល់ជួរអប្បបរមានៃការធ្វើដំណើរ។ វាជាការល្អបំផុតក្នុងការចូលទៅជិតចំណុចនេះបន្តិចម្តងៗ ហើយឈប់មុនពេលកំណត់នៃការធ្វើដំណើរត្រូវបានឈានដល់។
ស្វែងរកអតិបរមា៖
- ជាថ្មីម្តងទៀតដោយប្រើអតីតample កូដ កែសម្រួល SERVOMAX រហូតដល់ចំណុចខ្ពស់នៃការបោសសម្អាតឈានដល់ជួរអតិបរមានៃការធ្វើដំណើរ។ ជាថ្មីម្តងទៀត គឺជាការល្អបំផុតក្នុងការខិតជិតនេះបន្តិចម្តងៗ ហើយឈប់មុនពេលកំណត់ផ្លូវកាយនៃការធ្វើដំណើរត្រូវបានឈានដល់។
ប្រុងប្រយ័ត្ននៅពេលកែតម្រូវ SERVOMIN និង SERVOMAX ។ ការប៉ះពាល់ដល់ដែនកំណត់នៃការធ្វើដំណើរអាចដកប្រអប់លេខចេញ និងធ្វើឱ្យខូច servo របស់អ្នកជាអចិន្ត្រៃយ៍។
ការបំប្លែងពីដឺក្រេទៅប្រវែងជីពចរ
នេះ។ មុខងារ "ផែនទី ()" របស់ Arduino (https://adafru.it/aQm) គឺជាមធ្យោបាយងាយស្រួលក្នុងការបំប្លែងរវាងដឺក្រេនៃការបង្វិល និងប្រវែងជីពចរដែលបានក្រិតតាមខ្នាត SERVOMIN និង SERVOMAX របស់អ្នក។ សន្មត់ថា servo ធម្មតាជាមួយនឹងការបង្វិល 180 ដឺក្រេ; នៅពេលដែលអ្នកបានក្រិត SERVOMIN ទៅទីតាំង 0 ដឺក្រេ និង SERVOMAX ទៅទីតាំង 180 ដឺក្រេ អ្នកអាចបំប្លែងមុំណាមួយពី 0 ទៅ 180 ដឺក្រេ ទៅជាប្រវែងជីពចរដែលត្រូវគ្នាជាមួយនឹងបន្ទាត់កូដខាងក្រោម៖
សំណុំឯកសារយោងបណ្ណាល័យPWMFreq(ប្រេកង់)
ការពិពណ៌នា
- មុខងារនេះអាចត្រូវបានប្រើដើម្បីកែតម្រូវប្រេកង់ PWM ដែលកំណត់ចំនួន 'pulses' ពេញលេញក្នុងមួយវិនាទីត្រូវបានបង្កើតឡើងដោយ IC ។ បានបញ្ជាក់ខុសគ្នា ប្រេកង់កំណត់ថាតើជីពចរនីមួយៗមានរយៈពេលយូរប៉ុណ្ណា ចាប់ពីពេលចាប់ផ្តើមរហូតដល់ចប់ ដោយគិតទាំងផ្នែកខ្ពស់ និងទាបនៃជីពចរ។
- ប្រេកង់មានសារៈសំខាន់នៅក្នុង PWM ដោយសារការកំណត់ប្រេកង់ខ្ពស់ពេកជាមួយនឹងវដ្ដកាតព្វកិច្ចតូចខ្លាំងអាចបណ្តាលឱ្យមានបញ្ហា ដោយសារ 'ពេលវេលាកើនឡើង' នៃសញ្ញា (ពេលវេលាដែលវាត្រូវចំណាយពេលពី 0V ទៅ VCC) អាចយូរជាងពេលដែលសញ្ញាសកម្ម ហើយលទ្ធផល PWM នឹងលេចឡើងយ៉ាងរលូន ហើយប្រហែលជាមិនឈានដល់ VCC ដែលអាចបណ្តាលឱ្យមានបញ្ហាមួយចំនួន។
អាគុយម៉ង់
- ប្រេកង់៖ លេខតំណាងឱ្យប្រេកង់គិតជា Hz ចន្លោះពី ៤០ ដល់ ១៦០០
Example
- កូដខាងក្រោមនឹងកំណត់ប្រេកង់ PWM ទៅ 1000Hz៖
setPWM(ឆានែល បើក បិទ)
ការពិពណ៌នា
មុខងារនេះកំណត់ការចាប់ផ្តើម (បើក) និងបញ្ចប់ (បិទ) នៃផ្នែកខ្ពស់នៃជីពចរ PWM នៅលើឆានែលជាក់លាក់មួយ។ អ្នកបញ្ជាក់តម្លៃ 'ធីក' នៅចន្លោះ 0..4095 នៅពេលដែលសញ្ញានឹងបើក ហើយនៅពេលណាដែលវានឹងបិទ។ ឆានែលបង្ហាញពីលទ្ធផល PWM មួយណាក្នុងចំណោម 16 PWM គួរតែត្រូវបានអាប់ដេតជាមួយនឹងតម្លៃថ្មី។
អាគុយម៉ង់
- ឆានែល៖ ឆានែលដែលគួរត្រូវបានអាប់ដេតជាមួយនឹងតម្លៃថ្មី (0..15)
- នៅលើ៖ សញ្ញាធីក (រវាង 0..4095) នៅពេលដែលសញ្ញាគួរតែផ្លាស់ប្តូរពីទាបទៅខ្ពស់
- បិទ: សញ្ញាធីក (រវាង 0..4095) នៅពេលដែលសញ្ញាគួរតែផ្លាស់ប្តូរពីខ្ពស់ទៅទាប
Example
ខាងក្រោមនេះ example នឹងធ្វើឱ្យឆានែល 15 ចាប់ផ្តើមទាប ឡើងខ្ពស់ប្រហែល 25% ទៅក្នុងជីពចរ (គូស 1024 ចេញពី 4096) ប្តូរទៅទាប 75% ទៅក្នុងជីពចរ (គូស 3072) ហើយនៅទាបសម្រាប់ 25% ចុងក្រោយនៃជីពចរ៖
ប្រើជា GPIO
- វាក៏មានការកំណត់ពិសេសមួយចំនួនសម្រាប់ការបើកឬបិទម្ជុលយ៉ាងពេញលេញផងដែរ។
ឯកសារបណ្ណាល័យ Arduino
Python & CircuitPython
- វាងាយស្រួលប្រើកម្មវិធីបញ្ជា PCA9685 ជាមួយ Python ឬ CircuitPython និង Adafruit សៀគ្វី Python PCA9685 (https://adafru.it/tZF) ម៉ូឌុល។ ម៉ូឌុលនេះអនុញ្ញាតឱ្យអ្នកងាយស្រួលសរសេរកូដ Python ដែលគ្រប់គ្រង servos និង PWM ជាមួយនឹងការបំបែកនេះ។
- អ្នកអាចប្រើក្តារបញ្ជានេះជាមួយនឹងបន្ទះមីក្រូកុងទ័រ CircuitPython ឬជាមួយកុំព្យូទ័រដែលមាន GPIO និង Python សូមអរគុណដល់ Adafruit_Blinka បណ្ណាល័យភាពឆបគ្នា CircuitPython-for- Python របស់យើង។ (https://adafru.it/BSN).
ខ្សែភ្លើង CircuitPython Microcontroller
ដំបូងភ្ជាប់ PCA9685 ទៅកាន់ក្តាររបស់អ្នកដូចដែលបានបង្ហាញនៅលើទំព័រមុនសម្រាប់ Arduino ។ នេះគឺជាអតីតampការភ្ជាប់ខ្សែ Feather M0 ទៅកាន់ផ្ទាំងបញ្ជាជាមួយ I2C៖
ខ្សែកុំព្យូទ័រ Python
- ដោយសារមានកុំព្យូទ័រ/ក្តារលីនុចរាប់សិបដែលអ្នកអាចប្រើ យើងនឹងបង្ហាញខ្សែភ្លើងសម្រាប់ Raspberry Pi ។ សម្រាប់វេទិកាផ្សេងទៀត សូមចូលទៅកាន់មគ្គុទ្ទេសក៍សម្រាប់ CircuitPython នៅលើ Linux ដើម្បីមើលថាតើវេទិការបស់អ្នកត្រូវបានគាំទ្រដែរឬទេ (https://adafru.it/BSN).
- នេះជា Raspberry Pi ភ្ជាប់ជាមួយ I2C៖
កុំព្យាយាមផ្តល់ថាមពលដល់ servos របស់អ្នកពីថាមពល 5V របស់ RasPi ឬ Linux board នោះអ្នកអាចបង្ករអោយការផ្គត់ផ្គង់ថាមពលមានពណ៌ត្នោត និងធ្វើអោយ Pi របស់អ្នករញ៉េរញ៉ៃបានយ៉ាងងាយ! ប្រើអាដាប់ទ័រ 5v 2A ឬ 4A ដាច់ដោយឡែក
- ការផ្គត់ផ្គង់ថាមពលប្តូរ 5V 2A (2000mA) - UL បានចុះបញ្ជី
- នេះគឺជាការផ្គត់ផ្គង់ថាមពលដែលបានចុះបញ្ជី FCC/CE និង UL ។ ត្រូវការថាមពល 5V ច្រើនមែនទេ?
- ការផ្គត់ផ្គង់ប្តូរនេះផ្តល់នូវទិន្នផល 5V ដែលត្រូវបានគ្រប់គ្រងយ៉ាងស្អាតនៅរហូតដល់ 2000mA ។ ការបញ្ចូល 110 ឬ 240 ដូច្នេះវាដំណើរការ… https://www.adafruit.com/product/276
- ការផ្គត់ផ្គង់ថាមពលប្តូរ 5V 4A (4000mA) - UL បានចុះបញ្ជី
- ត្រូវការថាមពល 5V ច្រើនមែនទេ? ការផ្គត់ផ្គង់ប្តូរនេះផ្តល់នូវទិន្នផល 5V ដែលត្រូវបានគ្រប់គ្រងយ៉ាងស្អាតនៅរហូតដល់ 4 Amps (4000mA) ។ ការបញ្ចូល 110 ឬ 240 ដូច្នេះវាដំណើរការនៅក្នុងប្រទេសណាមួយ។ ឧបករណ៍ដោតគឺ "សហរដ្ឋអាមេរិក ... https://www.adafruit.com/product/1466
ការដំឡើង CircuitPython នៃ PCA9685 និង ServoKit Libraries
- អ្នកនឹងត្រូវដំឡើងកម្មវិធី សៀគ្វី Adafruit Python PCA9685 (https://adafru.it/tZF) បណ្ណាល័យនៅលើបន្ទះ CircuitPython របស់អ្នក។
- ដំបូងត្រូវប្រាកដថាអ្នកកំពុងដំណើរការ កំណែចុងក្រោយបំផុតរបស់ Adafruit CircuitPython (https://adafru.it/Amd) សម្រាប់ក្រុមប្រឹក្សាភិបាលរបស់អ្នក។
- បន្ទាប់មក អ្នកនឹងត្រូវដំឡើងបណ្ណាល័យចាំបាច់ ដើម្បីប្រើផ្នែករឹង អនុវត្តតាមជំហានដោយប្រុងប្រយ័ត្ន ដើម្បីស្វែងរក និងដំឡើងបណ្ណាល័យទាំងនេះពី បណ្តុំបណ្ណាល័យ CircuitPython របស់ Adafruit (https://adafru.it/uap) ការណែនាំអំពីការចាប់ផ្តើម CircuitPython របស់យើងមានទំព័រដ៏អស្ចារ្យមួយនៅលើ របៀបតំឡើងកញ្ចប់បណ្ណាល័យអ៊ី (https://adafru.it/ABU).
សម្រាប់ក្តារដែលមិនមែនជា Express ដូចជា Trinket M0 ឬ Gemma M0 អ្នកនឹងត្រូវដំឡើងបណ្ណាល័យចាំបាច់ដោយដៃពីបណ្តុំ៖
- adafruit_pca9685.mpy
- adafruit_bus_device
- adafruit_ចុះឈ្មោះ
- adafruit_motor
- adafruit_servokit.mpy
មុនពេលបន្ត ត្រូវប្រាកដថាថត lib ឬ root របស់ក្រុមប្រឹក្សាភិបាលរបស់អ្នក។ fileប្រព័ន្ធមាន adafruit_pca9685.mpy, adafruit_register, និង adafruit_servokit.mpy, adafruit_motor និង adafruit_bus_device files និងថតចម្លង។
បន្ទាប់ ភ្ជាប់ទៅ REPL ស៊េរីរបស់ក្រុមប្រឹក្សាភិបាល (https://adafru.it/Awz) ដូច្នេះអ្នកនៅ CircuitPython >>> prompt ។
ការដំឡើង Python នៃ PCA9685 និង ServoKit Libraries
អ្នកនឹងត្រូវដំឡើងបណ្ណាល័យ Adafruit_Blinka ដែលផ្តល់ការគាំទ្រ CircuitPython នៅក្នុង Python ។ នេះក៏អាចតម្រូវឱ្យមានការបើកដំណើរការ I2C នៅលើវេទិការបស់អ្នក និងផ្ទៀងផ្ទាត់ថាអ្នកកំពុងដំណើរការ Python 3។ ដោយសារវេទិកានីមួយៗមានភាពខុសប្លែកគ្នាបន្តិចបន្តួច ហើយលីនុចផ្លាស់ប្តូរជាញឹកញាប់ សូមចូលទៅកាន់មគ្គុទ្ទេសក៍ CircuitPython នៅលើលីនុច ដើម្បីឱ្យកុំព្យូទ័ររបស់អ្នករួចរាល់។ (https://adafru.it/BSN)!
- នៅពេលដែលវារួចរាល់ ពីបន្ទាត់ពាក្យបញ្ជារបស់អ្នកដំណើរការពាក្យបញ្ជាដូចខាងក្រោម:
- ប្រសិនបើ Python លំនាំដើមរបស់អ្នកជាកំណែ 3 អ្នកប្រហែលជាត្រូវដំណើរការ 'pip' ជំនួសវិញ។ គ្រាន់តែត្រូវប្រាកដថាអ្នកមិនព្យាយាមប្រើ CircuitPython នៅលើ Python 2.x វាមិនត្រូវបានគាំទ្រទេ!
ការប្រើប្រាស់ CircuitPython និង Python
- ផ្នែកខាងក្រោមនឹងបង្ហាញពីរបៀបគ្រប់គ្រង PCA9685 ពី Python prompt / REPL របស់ក្រុមប្រឹក្សាភិបាល។ អ្នកនឹងរៀនពីរបៀបដើម្បីត្រួតពិនិត្យ servos និង LEDs ស្រអាប់ ដោយវាយបញ្ចូលកូដខាងក្រោម។
បន្ថយពន្លឺ LEDs
ដំណើរការកូដខាងក្រោមដើម្បីនាំចូលម៉ូឌុលចាំបាច់ និងចាប់ផ្តើមការតភ្ជាប់ I2C ជាមួយក្រុមប្រឹក្សាភិបាល៖
- ឆានែលនីមួយៗនៃ PCA9685 អាចត្រូវបានប្រើដើម្បីគ្រប់គ្រងពន្លឺរបស់ LED ។ PCA9685 បង្កើតសញ្ញា PWM ល្បឿនលឿន ដែលបើក និងបិទ LED យ៉ាងលឿន។ ប្រសិនបើអំពូល LED បើកយូរជាងបិទ វានឹងភ្លឺជាងចំពោះភ្នែករបស់អ្នក។
- ដំបូងត្រូវភ្ជាប់ LED ទៅនឹងបន្ទះដូចខាងក្រោម។ ចំណាំថាអ្នកមិនចាំបាច់ប្រើរេស៊ីស្ទ័រដើម្បីកំណត់ចរន្តតាមរយៈ LED ទេព្រោះ PCA9685 នឹងកំណត់ចរន្តដល់ប្រហែល 10mA៖
LED cathode / ជើងខ្លីទៅឆានែល PCA9685 GND / ដី។ LED anode / ជើងវែងទៅឆានែល PCA9685 PWM ។
- ថ្នាក់ PCA9685 ផ្តល់នូវការគ្រប់គ្រងប្រេកង់ PWM និងវដ្តកាតព្វកិច្ចរបស់ឆានែលនីមួយៗ។ សូមពិនិត្យមើល ឯកសារថ្នាក់ PCA9685 (https://adafru.it/C5n) សម្រាប់ព័ត៌មានលម្អិត។
- សម្រាប់ LEDs ស្រអាប់ អ្នកមិនចាំបាច់ប្រើប្រេកង់សញ្ញា PWM លឿនទេ ហើយអាចកំណត់ប្រេកង់ PWM របស់ក្រុមប្រឹក្សាភិបាលទៅ 60hz ដោយកំណត់គុណលក្ខណៈប្រេកង់៖
- PCA9685 គាំទ្រ 16 ប៉ុស្តិ៍ដាច់ដោយឡែកដែលចែករំលែកប្រេកង់ប៉ុន្តែអាចមានវដ្តកាតព្វកិច្ចឯករាជ្យ។ វិធីនោះអ្នកអាចបន្ថយអំពូល LED ១៦ ដាច់ដោយឡែកពីគ្នា!
- វត្ថុ PCA9685 មានគុណលក្ខណៈឆានែលដែលមានវត្ថុសម្រាប់ឆានែលនីមួយៗដែលអាចគ្រប់គ្រងវដ្តកាតព្វកិច្ច។ ដើម្បីទទួលបានឆានែលនីមួយៗ ប្រើ [] ដើម្បីធ្វើលិបិក្រមទៅក្នុងឆានែល។
- ឥឡូវនេះគ្រប់គ្រងពន្លឺ LED ដោយគ្រប់គ្រងវដ្តកាតព្វកិច្ចនៃឆានែលដែលភ្ជាប់ទៅ LED ។ តម្លៃវដ្តកាតព្វកិច្ចគួរតែជាតម្លៃ 16 ប៊ីត ពោលគឺ 0 ដល់ 0xffff ដែលតំណាងឱ្យភាគរយនៃពេលវេលាដែលសញ្ញាបើកធៀបនឹងការបិទ។ តម្លៃ 0xffff គឺ 100% ពន្លឺ, 0 គឺ 0% ពន្លឺ, ហើយតម្លៃនៅចន្លោះពី 0% ទៅ 100% ពន្លឺ។
- សម្រាប់អតីតampខ្ញុំបានកំណត់ LED ទាំងស្រុងជាមួយនឹងវដ្តកាតព្វកិច្ចនៃ 0xffff:
- បន្ទាប់ពីដំណើរការពាក្យបញ្ជាខាងលើ អ្នកគួរតែឃើញភ្លើង LED ភ្លឺពេញ! ឥឡូវនេះបិទ LED ជាមួយនឹងវដ្តកាតព្វកិច្ច 0:
- សាកល្បងតម្លៃចន្លោះដូចជា 1000៖
- អ្នកគួរតែឃើញ LED ភ្លឺ។ សាកល្បងសាកល្បងជាមួយតម្លៃវដ្តកាតព្វកិច្ចផ្សេងទៀត ដើម្បីមើលពីរបៀបដែល LED ផ្លាស់ប្តូរពន្លឺ!
- សម្រាប់អតីតampបើក និងបិទ LED បញ្ចេញពន្លឺដោយកំណត់ Duty_cycle នៅក្នុងរង្វិលជុំ៖
- ទាំងនេះសម្រាប់រង្វិលជុំត្រូវចំណាយពេលបន្តិចព្រោះ 16 ប៊ីតគឺជាលេខច្រើន។ CTRL-C ដើម្បីបញ្ឈប់រង្វិលជុំពីការរត់ ហើយត្រឡប់ទៅ REPL វិញ។
ពេញ Exampលេខកូដឡឺ
ការត្រួតពិនិត្យ Servos
- យើងបានសរសេរបណ្ណាល័យ CircuitPython ដ៏ងាយស្រួលសម្រាប់ឧបករណ៍ PWM/Servo ផ្សេងៗដែលហៅថា សៀគ្វី Adafruit Python ServoKit (https://adafru.it/Dpu) ដែលគ្រប់គ្រងការរៀបចំស្មុគស្មាញទាំងអស់សម្រាប់អ្នក។ អ្វីដែលអ្នកត្រូវធ្វើគឺនាំចូលថ្នាក់សមរម្យពីបណ្ណាល័យ ហើយបន្ទាប់មកលក្ខណៈពិសេសទាំងអស់នៃថ្នាក់នោះមានសម្រាប់ប្រើប្រាស់។
- យើងនឹងបង្ហាញអ្នកពីរបៀបនាំចូល ServoKit class ហើយប្រើវាដើម្បីគ្រប់គ្រងម៉ូទ័រ servo ជាមួយនឹង Adafruit 16-channel breakout។
- ប្រសិនបើអ្នកមិនស៊ាំជាមួយ servos ត្រូវប្រាកដថាអានវាជាមុនសិន ការណែនាំទៅកាន់ទំព័រ servos (https://adafru.it/scW) ហើយនេះ។ ទំព័រមគ្គុទ្ទេសក៍ servo ស៊ីជម្រៅ (https://adafru.it/scS).
- ដំបូងភ្ជាប់ servo ទៅឆានែល 0 នៅលើ PCA9685 ។ នេះគឺជាអតីតample នៃ servo ភ្ជាប់ទៅឆានែល 0:
- ត្រូវប្រាកដថាអ្នកបានបើក ឬដោតការផ្គត់ផ្គង់ថាមពល 5V ខាងក្រៅទៅកាន់បន្ទះ PCA9685 ផងដែរ!
- ដំបូងអ្នកនឹងត្រូវនាំចូល និងចាប់ផ្តើមថ្នាក់ ServoKit ។ អ្នកត្រូវតែបញ្ជាក់ចំនួនប៉ុស្តិ៍ដែលមាននៅលើក្តាររបស់អ្នក។ ការបំបែកមាន 16 channels ដូច្នេះនៅពេលអ្នកបង្កើត class object អ្នកនឹងបញ្ជាក់ 16 ។
- ឥឡូវនេះ អ្នកបានត្រៀមខ្លួនជាស្រេចក្នុងការគ្រប់គ្រងទាំង servos បង្វិលតាមស្តង់ដារ និងបន្ត។
សេវាស្តង់ដារ
- ដើម្បីគ្រប់គ្រង servo ស្តង់ដារ អ្នកត្រូវបញ្ជាក់ឆានែលដែល servo ត្រូវបានភ្ជាប់។ បន្ទាប់មកអ្នកអាចគ្រប់គ្រងចលនាដោយកំណត់មុំទៅចំនួនដឺក្រេ។
- តាមលំនាំដើម ថ្នាក់ Servo នឹងប្រើជួរសកម្មភាព ទទឹងជីពចរអប្បបរមា និងតម្លៃទទឹងជីពចរអតិបរមា ដែលគួរតែដំណើរការសម្រាប់ servos ភាគច្រើន។ ទោះយ៉ាងណាក៏ដោយ ពិនិត្យឯកសារថ្នាក់ Servo (https://adafru.it/BNE) សម្រាប់ព័ត៌មានលម្អិតអំពីប៉ារ៉ាម៉ែត្របន្ថែមដើម្បីប្ដូរតាមបំណងនូវសញ្ញាដែលបានបង្កើតសម្រាប់ servos របស់អ្នក។
- ជាមួយនឹង Servo អ្នកបញ្ជាក់ទីតាំងមួយជាមុំ។ មុំនឹងតែងតែនៅចន្លោះ 0 និងជួរសកម្មភាពដែលបានផ្តល់ឱ្យនៅពេលដែល Servo ត្រូវបានបង្កើត។ លំនាំដើមគឺ 180 ដឺក្រេ ប៉ុន្តែ servo របស់អ្នកអាចមានការបោសសំអាតតូចជាងមុន - ផ្លាស់ប្តូរមុំសរុបដោយបញ្ជាក់ប៉ារ៉ាម៉ែត្រ actuation_angle នៅក្នុងកម្មវិធីចាប់ផ្តើមថ្នាក់ Servo ខាងលើ។
- ឥឡូវនេះកំណត់មុំទៅ 180 ដែលជាចំណុចខ្លាំងមួយនៃជួរ៖
- ដើម្បីត្រឡប់ servo ទៅ 0 ដឺក្រេ:
- ជាមួយនឹង servo ស្តង់ដារ អ្នកបញ្ជាក់ទីតាំងជាមុំ។ មុំនឹងតែងតែនៅចន្លោះ 0 និងជួរធ្វើសកម្មភាព។ លំនាំដើមគឺ 180 ដឺក្រេ ប៉ុន្តែ servo របស់អ្នកអាចមានការបោសសំអាតតូចជាង។ អ្នកអាចផ្លាស់ប្តូរមុំសរុបដោយកំណត់ actuation_range ។
- សម្រាប់អតីតample ដើម្បីកំណត់ជួរសកម្មភាពទៅ 160 ដឺក្រេ៖
- ជាញឹកញាប់ជួរដែល servo បុគ្គលទទួលស្គាល់ប្រែប្រួលបន្តិចពី servo ផ្សេងទៀត។ ប្រសិនបើ servo មិនបានពង្រីកជួរដែលរំពឹងទុកពេញលេញទេ បន្ទាប់មកព្យាយាមកែតម្រូវទទឹងជីពចរអប្បបរមា និងអតិបរមាដោយប្រើ set_pulse_width_range(min_pulse, max_pulse) ។
- ដើម្បីកំណត់ជួរទទឹងជីពចរទៅអប្បបរមា 1000 និងអតិបរមា 2000៖
- នោះហើយជាអ្វីទាំងអស់គឺដើម្បីគ្រប់គ្រង servos ស្តង់ដារជាមួយនឹងការបំបែក PCA9685, Python និង ServoKit !
Servos ការបង្វិលបន្ត
- ដើម្បីគ្រប់គ្រង servo បង្វិលបន្ត អ្នកត្រូវតែបញ្ជាក់ឆានែលដែល servo បើក។
- បន្ទាប់មកអ្នកអាចគ្រប់គ្រងចលនាដោយប្រើបិទបើក។
- សម្រាប់អតីតample ដើម្បីចាប់ផ្តើម servo បង្វិលបន្តដែលភ្ជាប់ទៅឆានែលទី 1 ឆ្ពោះទៅមុខពេញលេញ៖
- ដើម្បីចាប់ផ្តើម servo បង្វិលបន្តដែលភ្ជាប់ទៅឆានែល 1 ទៅនឹងការបិទបើកបញ្ច្រាសពេញលេញ៖
- ដើម្បីកំណត់ពាក់កណ្តាលបិទបើក ប្រើទសភាគ៖
- ហើយដើម្បីបញ្ឈប់ចលនា servo បង្វិលបន្តកំណត់បិទបើកទៅ 0:
- នោះហើយជាអ្វីទាំងអស់គឺដើម្បីគ្រប់គ្រង servos ការបង្វិលបន្តជាមួយនឹងការបំបែកឆានែល PCA9685 16, Python និង ServoKit!
ពេញ Exampលេខកូដឡឺ
ឯកសារ Python
ឯកសារ Python៖ ServoKit
ការទាញយក
Files
- សន្លឹកទិន្នន័យ PCA9685 (https://adafru.it/okB)
- បណ្ណាល័យកម្មវិធីបញ្ជា Arduino (https://adafru.it/aQl)
- EagleCAD PCB fileនៅលើ GitHub (https://adafru.it/rME)
- ម៉ូដែល 3D នៅលើ GitHub (https://adafru.it/19Bk)
- វត្ថុ Fritzing នៅក្នុងបណ្ណាល័យ Adafruit Fritzing (https://adafru.it/aP3)
គ្រោងការណ៍ & ការបោះពុម្ព
រន្ធមានអង្កត់ផ្ចិត 2.5 ម។
សំណួរគេសួរញឹកញាប់
- តើបន្ទះនេះអាចប្រើសម្រាប់ LEDs ឬគ្រាន់តែ servos ទេ?
- វាអាចត្រូវបានប្រើសម្រាប់ LEDs ក៏ដូចជាឧបករណ៍ PWM ផ្សេងទៀត!
- ខ្ញុំមានបញ្ហាចម្លែកនៅពេលផ្សំខែលនេះជាមួយ Adafruit LED Matrix/7Seg Backpacks
- បន្ទះឈីប PCA9865 មានអាសយដ្ឋាន "ហៅទាំងអស់" 0x70 ។ នេះបន្ថែមពីលើអាសយដ្ឋានដែលបានកំណត់រចនាសម្ព័ន្ធ។ កំណត់កាបូបស្ពាយដើម្បីដោះស្រាយ 0x71 ឬអ្វីផ្សេងទៀតក្រៅពី 0x70 លំនាំដើម ដើម្បីធ្វើឱ្យបញ្ហាបាត់ទៅវិញ។
- ជាមួយនឹង LEDs តើខ្ញុំមិនអាចឱ្យ LEDs បិទទាំងស្រុងដោយរបៀបណា?
- ប្រសិនបើអ្នកចង់បិទ LEDs ទាំងស្រុង (នៅក្នុង Arduino) កំណត់ PWM(pin, 0, 4096); មិនបានកំណត់ (ម្ជុល, 0, 4095);
ឯកសារ/ធនធាន
![]() |
CNCU PCA9685 ចំណុចប្រទាក់កម្មវិធីបញ្ជា Servo i2C [pdf] សេចក្តីណែនាំ PCA9685 ចំណុចប្រទាក់កម្មវិធីបញ្ជា i2C សឺវ៉ូ, PCA9685, ចំណុចប្រទាក់កម្មវិធីបញ្ជា i2C, ចំណុចប្រទាក់កម្មវិធីបញ្ជា i2C, ចំណុចប្រទាក់ i2C, ចំណុចប្រទាក់ |