CNDY Shield GRBL CNC Arduino UNO មគ្គុទ្ទេសក៍អ្នកប្រើប្រាស់

វី៣៥

CNDY Shield GRBL CNC

GRBL pinout នៅលើ Arduino Uno

អាណាឡូក 0 = ប៊ូតុងបោះបង់*
អាណាឡូក 1 = Feed Hold Button* (SAFETY_DOOR ត្រូវ​បាន​ចែក​រំលែក​ជាមួយ​នឹង​ការ​សង្កត់​មតិ​ព័ត៌មាន។ បើក​ដោយ config define)
អាណាឡូក 2 = ប៊ូតុងចាប់ផ្តើម / ចាប់ផ្តើមឡើងវិញ*
អាណាឡូក ២ = Coolant បើកទិន្នផល
អាណាឡូក ២ = (ស្រេចចិត្ត) ទិន្នផលទឹកត្រជាក់អ័ព្ទ (ឬពន្លឺវិនិច្ឆ័យ ALARM_STATE **)
អាណាឡូក 5 = ការបញ្ចូលការស៊ើបអង្កេត*
ឌីជីថល 13 = ទិសដៅ spindle
ឌីជីថល 12 = Limit Switches Z-Axis*
ឌីជីថល 11 = Spindle / Laser បើក PWM
ឌីជីថល 10 = ដែនកំណត់ប្តូរអ័ក្ស Y*
ឌីជីថល 9 = Limit Switches X-Axis*
ឌីជីថល 8 = Stepper Motors បើក/បិទ
ឌីជីថល 7 = ទិស Z-អ័ក្ស
ឌីជីថល 6 = ទិស Y-អ័ក្ស
ឌីជីថល 5 = ទិស X-Axis
ឌីជីថល 4 = Step Pulse Z-Axis
ឌីជីថល 3 = ជំហានជីពចរ Y-អ័ក្ស
ឌីជីថល 2 = Step Pulse X-Axis

មុខងារអ័ក្សពីរស្រេចចិត្ត

Uno Analog Pin 3 = A-axis DUAL_DIRECTION (ធ្លាប់ជា Coolant បើកលទ្ធផល)
Uno Analog Pin 4 = A-axis DUAL_STEP (ធ្លាប់ជាជម្រើសបញ្ចេញ Mist Coolant Output)
Uno Digital 13 = Coolant (ជំនួសទិសដៅ spindle ។ )

បន្ទាប់ពីដំឡើងឃ្លាំង grbl ជាបណ្ណាល័យក្នុង Arduino សូមមិនបញ្ចេញមតិលើបន្ទាត់ខាងក្រោមក្នុង config.h file នៅក្នុងថតបណ្ណាល័យ grbl ។

#កំណត់ ENABLE_DUAL_AXIS // បានបិទលំនាំដើម។ គ្មាន​មតិ​ដើម្បី​បើក.

// ជ្រើសរើសអ័ក្សមួយដើម្បីឆ្លុះម៉ូទ័រផ្សេងទៀត។ មានតែអ័ក្ស X និង Y ប៉ុណ្ណោះដែលត្រូវបានគាំទ្រនៅពេលនេះ។
#កំណត់ DUAL_AXIS_SELECT Y_AXIS // ត្រូវតែជា X_AXIS ឬ Y_AXIS

ចំណាំ៖ ដែនកំណត់អ័ក្សពីរត្រូវបានចែករំលែកជាមួយ (អ័ក្ស Z) កំណត់ម្ជុលតាមលំនាំដើម។

មុខងារអ័ក្សពីរទាមទារម្ជុលជីពចរជំហានឯករាជ្យដើម្បីដំណើរការ។ ម្ជុលទិសដៅឯករាជ្យគឺមិនចាំបាច់ជាដាច់ខាត ប៉ុន្តែជួយសម្រួលដល់ការបញ្ច្រាសទិសដៅងាយស្រួលជាមួយនឹងការកំណត់ Grbl $$។ ម្ជុលទាំងនេះជំនួសទិសដៅ spindle និងម្ជុលទឹកត្រជាក់ស្រេចចិត្ត។

លក្ខណៈពិសេសអ័ក្សពីរស្រេចចិត្តនេះគឺជាចម្បងសម្រាប់វដ្តផ្ទះដើម្បីកំណត់ទីតាំងពីរនៃ gantry ម៉ូទ័រពីរដោយឯករាជ្យ ពោលគឺការបំបែកខ្លួនឯង។ វាទាមទារកុងតាក់កំណត់បន្ថែមសម្រាប់ម៉ូទ័រក្លូន។ ដើម្បីការ៉េដោយខ្លួនឯង កុងតាក់ដែនកំណត់ទាំងពីរនៅលើអ័ក្សក្លូនត្រូវតែមានទីតាំងជាក់ស្តែងដើម្បីកេះនៅពេលដែល gantry មានរាងការ៉េ។ សូមផ្តល់អនុសាសន៍យ៉ាងខ្លាំងឱ្យរក្សាម៉ូទ័រឱ្យដំណើរការជានិច្ច ដើម្បីធានាថា gantry ស្ថិតនៅការ៉េជាមួយនឹងការកំណត់ $1=255 ។

សម្រាប់ Grbl នៅលើ Arduino Uno កុងតាក់ដែនកំណត់អ័ក្សក្លូនត្រូវតែចែករំលែកជាមួយ និងភ្ជាប់ជាមួយម្ជុលកំណត់អ័ក្ស z ដោយសារកង្វះម្ជុលដែលមាន។ វដ្ដ​ដើម​ត្រូវ​តែ​ដាក់​អ័ក្ស z និង​អ័ក្ស​ក្លូន​ក្នុង​វដ្ដ​ផ្សេង​គ្នា ដែល​ជា​ការ​កំណត់​លំនាំដើម​រួច​ហើយ។

មុខងារអ័ក្សពីរដំណើរការដោយការក្លូនទិន្នផលជំហានអ័ក្សមួយទៅម្ជុលជំហាន និងទិសដៅគូផ្សេងទៀត។ ជីពចរជំហាននិងទិសដៅនៃម៉ូទ័រក្លូនអាចត្រូវបានកំណត់ដោយឯករាជ្យនៃម៉ូទ័រអ័ក្សមេ។ ទោះយ៉ាងណាក៏ដោយ ដើម្បីរក្សាទុកពន្លឺ និងអង្គចងចាំដ៏មានតម្លៃ មុខងារអ័ក្សពីរនេះត្រូវតែចែករំលែកការកំណត់ដូចគ្នា (ជំហាន/មម ល្បឿនអតិបរមា ការបង្កើនល្បឿន) ជាម៉ូទ័រមេ។ នេះមិនមែនជាលក្ខណៈពិសេសសម្រាប់អ័ក្សទីបួនឯករាជ្យទេ។ មានតែម៉ាស៊ីនក្លូនប៉ុណ្ណោះ។

ការព្រមាន៖ ត្រូវប្រាកដថាសាកល្បងទិសដៅនៃម៉ូទ័រអ័ក្សពីររបស់អ្នក! ពួកគេត្រូវតែត្រូវបានរៀបចំដើម្បីផ្លាស់ទីទិសដៅដូចគ្នាមុនពេលដំណើរការវដ្តផ្ទះដំបូងរបស់អ្នក ឬចលនាដ៏វែងណាមួយ! ម៉ូតូដែលផ្លាស់ទីក្នុងទិសដៅផ្ទុយអាចបណ្តាលឱ្យខូចខាតធ្ងន់ធ្ងរដល់ម៉ាស៊ីនរបស់អ្នក! ប្រើមុខងារអ័ក្សពីរនេះដោយហានិភ័យផ្ទាល់ខ្លួនរបស់អ្នក។

ចំណាំ៖ មុខងារនេះត្រូវការពន្លឺប្រហែល 400 បៃ។ ការកំណត់រចនាសម្ព័ន្ធមួយចំនួនអាចអស់ពន្លឺ ដើម្បីបំពាក់លើ Arduino 328p/Uno ។ មានតែអ័ក្ស X និង Y ប៉ុណ្ណោះដែលត្រូវបានគាំទ្រ។ របៀប spindle/laser អថេរ IS ត្រូវបានគាំទ្រ ប៉ុន្តែសម្រាប់ជម្រើសកំណត់រចនាសម្ព័ន្ធមួយប៉ុណ្ណោះ។ ស្នូល XY, ម្ជុលទិសដៅ spindle, និង M7 mist coolant ត្រូវបានបិទ/មិនគាំទ្រ។

ដើម្បីបងា្ករវដ្តនៃផ្ទះពីការច្រៀកអ័ក្សពីរ នៅពេលដែលដែនកំណត់មួយចាប់ផ្តើមមុនមួយទៀតដោយសារការបរាជ័យនៃកុងតាក់ ឬសំឡេងរំខាន នោះវដ្តនៃផ្ទះនឹងបោះបង់ដោយស្វ័យប្រវត្តិ ប្រសិនបើកុងតាក់ដែនកំណត់របស់ម៉ូទ័រទីពីរមិនកេះក្នុងប៉ារ៉ាម៉ែត្រចម្ងាយបីដែលបានកំណត់ខាងក្រោម។ ភាគរយប្រវែងអ័ក្សនឹងគណនាចម្ងាយបរាជ័យដោយស្វ័យប្រវត្តិជាភាគរយtage នៃការធ្វើដំណើរអតិបរមានៃអ័ក្សពីរផ្សេងទៀត ពោលគឺប្រសិនបើអ័ក្សពីរជ្រើសរើសគឺ X_AXIS នៅ 5.0% នោះចម្ងាយដែលបរាជ័យនឹងត្រូវបានគណនាជា 5.0% នៃការធ្វើដំណើរអតិបរមាអ័ក្ស y ។ Fail distance max និង min គឺជាដែនកំណត់នៃចម្ងាយដែលបរាជ័យត្រឹមត្រូវ។

#define DUAL_AXIS_HOMING_FAIL_AXIS_LENGTH_PERCENT 5.0 // អណ្តែត (ភាគរយ)
#define DUAL_AXIS_HOMING_FAIL_DISTANCE_MAX 25.0 // អណ្តែត (មម)
#define DUAL_AXIS_HOMING_FAIL_DISTANCE_MIN 2.5 // អណ្តែត (មម)

ចំណាំសម្រាប់ច្រក I2C

អាណាឡូក 4 (A4) និងអាណាឡូក 5 (A5) ត្រូវបានប្រើសម្រាប់ច្រក I2C នៅលើ Arduino Uno ឬ 328p ។ នេះមានន័យថា ដរាបណាអ្នកកំពុងប្រើមុខងារ default probe, mist coolant, dual-axis, ឬ custom ALARM_STATE LED diagnostic light ដោយប្រើ I2C នឹងមិនអាចទៅរួចទេ។ ការប្រាស្រ័យទាក់ទងជាមួយ Arduino មួយផ្សេងទៀតដើម្បីបង្កើនមុខងារនឹងត្រូវឆ្លងកាត់ការភ្ជាប់សៀរៀលនៅលើ D0 និង D1 ។

ការចាប់ផ្តើម (កម្មវិធីបញ្ជា Stepper)

ជាដំបូង ដើម្បីភ្ជាប់ម៉ូទ័រ stepper របស់អ្នកទៅ Grbl អ្នកនឹងត្រូវការកម្មវិធីបញ្ជាម៉ូទ័រ stepper មួយចំនួនដើម្បីផ្តល់ថាមពលដល់ steppers និងភ្ជាប់ធាតុបញ្ចូលរបស់ driver របស់អ្នកទៅនឹង pin controller Arduino។ មានកម្មវិធីបញ្ជាមួយចំនួនដែលអាចធ្វើដូចនេះបាន ដែលអាចប្រើបានដូចជាបានសាងសង់រួចជាស្រេច សាងសង់ដោយផ្នែកខ្លះ ឬ DIY ទាំងស្រុង។ អ្នកបើកបរ stepper នឹងត្រូវការចែករំលែក ម្ជុលបើក stepper (D8) ទៅម្ជុលបើករៀងៗខ្លួន ខណៈពេលដែល ម្ជុលជីពចរទិសដៅ និងជំហាន (D2-D7) នឹងត្រូវភ្ជាប់ទៅម្ជុលរៀងៗខ្លួននៅលើអ្នកបើកបរ។ គ្រាន់តែធ្វើឱ្យប្រាកដថាអ្នកបើកបរទាំងអស់របស់អ្នកនិង Arduino ចែករំលែកដីរួម (ដាក់ផ្កាយដោយថាមពលអ្នកបើកបរម៉ូតូរបស់អ្នក) ។ នេះគឺអំពីអ្វីដែលអ្នកនឹងត្រូវចាប់ផ្តើម។

មុខងារបិទបើក និងកំណត់

បន្ទាប់មក នៅពេលដែលអ្នកសម្រេចចិត្តថាអ្នកត្រៀមខ្លួន ឬចង់ ដើម្បីបើកការកំណត់ផ្ទះ និង/ឬរឹងអ្នកនឹងត្រូវភ្ជាប់ a ជាធម្មតា - បើកដែនកំណត់កុងតាក់ ទៅម្ជុលកំណត់នីមួយៗ (D9, D10, និង D12). Home និង Hard limits ប្រើកុងតាក់ដូចគ្នា។ ម្ជុលកំណត់ទាំងនេះត្រូវបានតោងខ្ពស់រួចជាស្រេចជាមួយនឹងរេស៊ីស្តង់ទាញខាងក្នុង ដូច្នេះអ្វីដែលអ្នកត្រូវធ្វើគឺខ្សែពួកវាទៅដី។ ដូច្នេះ នៅពេលអ្នកបិទកុងតាក់ កុងតាក់នឹងទាញម្ជុលកំណត់ទៅដី។ ប្រសិនបើ​អ្នក​ចង់​មាន​កុងតាក់​កម្រិត​រឹង​នៅ​ចុង​ទាំង​សងខាង​នៃ​ការ​ធ្វើ​ដំណើរ​នៃ​អ័ក្ស​មួយ គ្រាន់​តែ​ដាក់​កុងតាក់​ដែនកំណត់​ពីរ​ខ្សែ​ស្រប​នឹង​ម្ជុល​កំណត់​អ័ក្ស និង​ដី។ ត្រូវប្រាកដថាអ្នកបានដំឡើងកុងតាក់ មុនពេលព្យាយាមធ្វើវដ្តផ្ទះ ហើយត្រូវប្រាកដថាអ្នកអនុវត្តវិធីសាស្ត្រខ្សែភ្លើងល្អ ដើម្បីកាត់បន្ថយសំឡេងអគ្គិសនីពីខាងក្រៅនៅលើម្ជុលបញ្ចូល។

ការអនុវត្តខ្សែភ្លើងល្អអាចរួមបញ្ចូលការប្រើខ្សែការពារ ឬ clamp-នៅលើស្នូលខ្សែ ferrite និងប្រើ capacitors 0.1uF មួយចំនួនស្របគ្នាជាមួយនឹងកុងតាក់ដែនកំណត់សម្រាប់ការបន្លឺសំឡេង / តម្រងសំឡេង។ ការរក្សាខ្សភ្លើងរបស់ម៉ូទ័រឱ្យឆ្ងាយពីខ្សែភ្លើងដែលមានកំណត់ក៏អាចជាគំនិតដ៏ល្អផងដែរ។

វាអាចធ្វើទៅបានដើម្បីកំណត់រចនាសម្ព័ន្ធ GRBL ដើម្បីប្រើកុងតាក់ដែនកំណត់បិទជាធម្មតាប្រសិនបើអ្នកចង់បាន។ អ្នកខ្លះយល់ថាជាធម្មតា កុងតាក់បិទជិតអាចជួយកាត់បន្ថយការគាំងមហន្តរាយ ក្នុងករណីមានការបរាជ័យនៃកុងតាក់ដែនកំណត់។ អ្នក​ប្រើ​ជា​ច្រើន​លុប​ចោល​ការ​ប្រើ​ការ​ប្ដូរ​កម្រិត​ណា​មួយ​ទាំង​អស់ ហើយ​ជ្រើស​រើស​កម្រិត​កម្មវិធី​ជំនួស​វិញ។

ប៊ូតុងបញ្ជា

នៅក្នុង Grbl v0.8 និងក្រោយនេះ មានការបិទភ្ជាប់នៃការចាប់ផ្តើមវដ្ត ការសង្កត់ចំណី និងកំណត់ពាក្យបញ្ជាពេលដំណើរការឡើងវិញ ដូច្នេះអ្នកអាចមានប៊ូតុងគ្រប់គ្រងរាងកាយនៅលើម៉ាស៊ីនរបស់អ្នក។ ដូចគ្នានឹងម្ជុលកំណត់ដែរ ម្ជុលទាំងនេះត្រូវបានរក្សាខ្ពស់ជាមួយនឹងប្រដាប់ទប់ទាញខាងក្នុង ដូច្នេះអ្វីដែលអ្នកត្រូវធ្វើគឺភ្ជាប់កុងតាក់បើកធម្មតាទៅម្ជុលនីមួយៗ និងទៅដី។ ជាថ្មីម្តងទៀតត្រូវប្រាកដថាអ្នកអនុវត្តវិធីសាស្រ្តខ្សែភ្លើងល្អដើម្បីកាត់បន្ថយសំលេងរំខានអគ្គិសនីពីខាងក្រៅនៅលើម្ជុលបញ្ចូល។

Spindle និង Coolant Pins

ប្រសិនបើអ្នកមានបំណងប្រាថ្នាឬតម្រូវការសម្រាប់ spindle (ឃ ៧) ឬការគ្រប់គ្រង coolant (A3 និង A4) , Grbl នឹងបិទបើកម្ជុលលទ្ធផលទាំងនេះខ្ពស់ ឬទាប អាស្រ័យលើពាក្យបញ្ជា G-code ដែលអ្នកផ្ញើទៅ Grbl ។ ជាមួយនឹង v0.9+ និងអថេរ spindle PWM ត្រូវបានបើក ម្ជុល D11 នឹងបញ្ចេញវ៉ុលជាច្រើនtages ពី 0V ទៅ 5V អាស្រ័យលើល្បឿន spindle ពាក្យបញ្ជា G-code ។ 0V បង្ហាញពី spindle off ក្នុងករណីនេះ។ ដោយសារម្ជុលទាំងនេះសុទ្ធតែជាកម្មវិធីអាស្រ័យលើរបៀបដែលពួកវាត្រូវបានប្រើ យើងនឹងទុកវាឱ្យអ្នកដើម្បីកំណត់ពីរបៀបគ្រប់គ្រង និងប្រើប្រាស់ទាំងនេះសម្រាប់ម៉ាស៊ីនរបស់អ្នក។ អ្នកក៏អាច hack ប្រភពគ្រប់គ្រង spindle និង coolant ផងដែរ។ files ដើម្បីងាយស្រួលផ្លាស់ប្តូររបៀបដែលពួកគេធ្វើការ ហើយបន្ទាប់មកចងក្រង និងបង្ហោះ Grbl ដែលបានកែប្រែរបស់អ្នកតាមរយៈ Arduino IDE ។

អំពូល LED រោគវិនិច្ឆ័យ

ម៉ាស៊ីន CNC ពាណិជ្ជកម្មជាញឹកញាប់មានអំពូល LED វិនិច្ឆ័យយ៉ាងហោចណាស់មួយក្នុងករណីម៉ាស៊ីនគាំងឬលេខកូដរោទិ៍។ សម្រាប់ម៉ាស៊ីន GRBL និង DIY CNC ដែលទើបនឹងកើត លក្ខណៈពិសេសនេះមានប្រយោជន៍ខ្លាំងណាស់ក្នុងការដឹងនៅពេលដែល ALARM_STATE បានកើតឡើង (ដូចជាការខកខានក្នុងការបើកម៉ាស៊ីននៅផ្ទះ និងបិទកុងតាក់កំណត់)។

តាមលំនាំដើម GRBL មិនមានអំពូល LED ធ្វើរោគវិនិច្ឆ័យទេ។ នេះគឺដោយសារតែ Ardunio UNO ដែលមានបន្ទះឈីប 328p មានកន្លែងសរសេរកម្មវិធីមានកម្រិត ហើយស្ទើរតែគ្រប់ទំហំទាំងអស់នោះកំពុងត្រូវបានប្រើប្រាស់ (ទោះបីជាមិនមែនទាំងអស់!) មិនមែនគ្រប់មុខងារដែលចង់បានអាចត្រូវបានអនុវត្តនៅលើឧបករណ៍អង្គចងចាំទាបបែបនេះទេ ដូច្នេះជួនកាលការលះបង់ត្រូវធ្វើ។

បន្ថែមពីលើនេះ ច្រក I/O ដែលមានស្រាប់ទាំងអស់កំពុងត្រូវបានប្រើប្រាស់ ហើយយ៉ាងហោចណាស់ម្ជុល I/O មួយគឺត្រូវការសម្រាប់ពន្លឺបែបនេះ។ ជាសំណាងល្អមុខងារនេះអាចត្រូវបានបន្ថែមយ៉ាងងាយស្រួលដោយការលួចចូលកូដ GRBL C ហើយនៅតែមានអង្គចងចាំប្រហែល 3% ដែលមាននៅលើបន្ទះឈីប 328p!

បច្ចុប្បន្ន ម៉ាស៊ីនជាច្រើនមិនប្រើមុខងារ MIST COOLANT ជាជម្រើសនៅលើអាណាឡូក 4 ទេ ដូច្នេះយើងអាចកំណត់ឡើងវិញនូវម្ជុលនេះយ៉ាងងាយស្រួលសម្រាប់ការប្រើប្រាស់របស់យើង។ វិធីសាស្រ្តជំនួសអាចជាការសរសេរកូដអំពូល LED បែបនេះនៅលើ Arduino ខាងក្រៅដែលបន្ទាប់មកនឹងមានច្រក I/O ទាំងអស់ដែលមនុស្សម្នាក់អាចភ្ជាប់អំពូល LED / Buzzers ជាច្រើនតាមដែលចង់បានហើយអាចទំនាក់ទំនងតាម Serial ឬ I2C ។

ដើម្បី hack កូដប្រភព GRBL ដើម្បីប្រើ LED ALARM នៅលើ CNDY Shield សូមធ្វើដូចខាងក្រោម៖

ជំហានទី 1៖ នៅលើ Linux ឬ Macintosh បើកកម្មវិធីនិពន្ធអត្ថបទ (នៅលើ Windows ប្រើ Notepad ++) ហើយកែសម្រួល cpu_map.h file:

ផ្លាស់ប្តូរនេះ៖

// កំណត់ឧបករណ៍ត្រជាក់ទឹកជំនន់ និងអ័ព្ទ បើកម្ជុលទិន្នផល។
#កំណត់ COOLANT_FLOOD_DDR DDRC
#កំណត់ COOLANT_FLOOD_PORT PORTC
#define COOLANT_FLOOD_BIT 3 // Uno Analog Pin 3
#កំណត់ COOLANT_MIST_DDR DDRC
#កំណត់ COOLANT_MIST_PORT PORTC
#define COOLANT_MIST_BIT 4 // Uno Analog Pin 4

ទៅនេះ៖

// កំណត់ឧបករណ៍ត្រជាក់ទឹកជំនន់ និងអ័ព្ទ បើកម្ជុលទិន្នផល។
#កំណត់ COOLANT_FLOOD_DDR DDRC
#កំណត់ COOLANT_FLOOD_PORT PORTC
#define COOLANT_FLOOD_BIT 3 // Uno Analog Pin 3
//# កំណត់ COOLANT_MIST_DDR DDRC
//# កំណត់ COOLANT_MIST_PORT PORTC
//#define COOLANT_MIST_BIT 4 // Uno Analog Pin 4

////////////////////

// កំណត់ការជូនដំណឹង LED OUTPUT
#កំណត់ SIGNAL_LIGHT_DDR DDRC
#កំណត់ SIGNAL_LIGHT_PORT PORTC
#define SIGNAL_LIGHT_BIT 4 // Uno Analog Pin 4

// #define signal_light(on) (SIGNAL_LIGHT_DDR |= (1<

// #កំណត់ signal_light_init() signal_light(off)

#កំណត់ signal_light_init signal_light_off

#define signal_light_on (SIGNAL_LIGHT_DDR |= SIGNAL_LIGHT_PORT |= (1<

#define signal_light_off (SIGNAL_LIGHT_DDR |= SIGNAL_LIGHT_PORT &= ~(1<

////////////////////

ជំហានទី 2៖ នៅលើ Linux ឬ Macintosh បើកកម្មវិធីនិពន្ធអត្ថបទ (នៅលើ Windows ប្រើ Notepad ++) ហើយកែសម្រួល protocol.c file:

ផ្លាស់ប្តូរនេះ៖

// ប្រតិបត្តិពាក្យបញ្ជាពេលរត់តាមតម្រូវការ។ មុខងារនេះដំណើរការជាចម្បងជាស្ថានភាពរបស់ Grbl
// ម៉ាស៊ីននិងគ្រប់គ្រងមុខងារពេលវេលាជាក់ស្តែងផ្សេងៗដែល Grbl មានផ្តល់ជូន។
// ចំណាំ៖ កុំ​កែប្រែ​លុះត្រា​តែ​អ្នក​ដឹង​ច្បាស់​ថា​អ្នក​កំពុង​ធ្វើ​អ្វី! void protocol_exec_rt_system()
{

uint8_t rt_exec; // Temp variable ដើម្បីជៀសវាងការហៅងាយនឹងបង្កជាហេតុច្រើនដង។
rt_exec = sys_rt_exec_alarm; // ចម្លង sys_rt_exec_alarm ។
ប្រសិនបើ (rt_exec) { // បញ្ចូលតែប្រសិនបើទង់ប៊ីតណាមួយគឺពិត

// ប្រព័ន្ធរោទិ៍។ អ្វី​គ្រប់​យ៉ាង​ត្រូវ​បាន​បិទ​ដោយ​អ្វី​ដែល​ខុស​យ៉ាង​ធ្ងន់ធ្ងរ។ រាយការណ៍
// ប្រភពនៃកំហុសចំពោះអ្នកប្រើប្រាស់។ ប្រសិនបើសំខាន់ Grbl បិទដោយការបញ្ចូលគ្មានកំណត់
// រង្វិលជុំរហូតដល់ការកំណត់ប្រព័ន្ធឡើងវិញ / បោះបង់។

sys.state = STATE_ALARM; // កំណត់ស្ថានភាពរោទិ៍ប្រព័ន្ធ

report_alarm_message(rt_exec);

ទៅនេះ៖

// ប្រតិបត្តិពាក្យបញ្ជាពេលរត់តាមតម្រូវការ។ មុខងារនេះដំណើរការជាចម្បងជាស្ថានភាពរបស់ Grbl
// ម៉ាស៊ីននិងគ្រប់គ្រងមុខងារពេលវេលាជាក់ស្តែងផ្សេងៗដែល Grbl មានផ្តល់ជូន។
// ចំណាំ៖ កុំ​កែប្រែ​លុះត្រា​តែ​អ្នក​ដឹង​ច្បាស់​ថា​អ្នក​កំពុង​ធ្វើ​អ្វី!
void protocol_exec_rt_system()
{

uint8_t rt_exec; // Temp variable ដើម្បីជៀសវាងការហៅងាយនឹងបង្កជាហេតុច្រើនដង។
rt_exec = sys_rt_exec_alarm; // ចម្លង sys_rt_exec_alarm ។

////////////////////////

// កំណត់ការជូនដំណឹង LED OUTPUT
signal_light_init; // ចាប់ផ្តើម LED នៅក្នុងស្ថានភាពបិទ
ប្រសិនបើ (sys.state==STATE_ALARM) {signal_light_on;}
ផ្សេងទៀតប្រសិនបើ (sys.state!=STATE_ALARM) {signal_light_off;}
// else {signal_light_off;}

////////////////////////

ប្រសិនបើ (rt_exec) { // បញ្ចូលតែប្រសិនបើទង់ប៊ីតណាមួយគឺពិត
// ប្រព័ន្ធរោទិ៍។ អ្វី​គ្រប់​យ៉ាង​ត្រូវ​បាន​បិទ​ដោយ​អ្វី​ដែល​ខុស​យ៉ាង​ធ្ងន់ធ្ងរ។ រាយការណ៍
// ប្រភពនៃកំហុសចំពោះអ្នកប្រើប្រាស់។ ប្រសិនបើសំខាន់ Grbl បិទដោយការបញ្ចូលគ្មានកំណត់
// រង្វិលជុំរហូតដល់ការកំណត់ប្រព័ន្ធឡើងវិញ / បោះបង់។
sys.state = STATE_ALARM; // កំណត់ស្ថានភាពរោទិ៍ប្រព័ន្ធ
report_alarm_message(rt_exec);

អ្វី​ដែល​យើង​ទើប​តែ​បាន​ធ្វើ​គឺ​ការ​ផ្លាស់​ប្តូរ​មុខងារ​ដែល​បាន​កំណត់​របស់ Analog 4 (A4) ពី​ការ​ធ្វើ​ជា​ម៉ាស៊ីន​ត្រជាក់​តាម​ជម្រើស​ទៅ​ជា​អំពូល LED របស់​យើង។ បន្ទាប់មកយើងសរសេរកូដក្នុង C ដើម្បីអាចសរសេរ (PC4) Port C 4 (Analog4) ខ្ពស់ឬទាបអាស្រ័យលើថាតើវាត្រូវបានប្រាប់ឱ្យបើកឬបិទ។ បន្ទាប់មកយើងសរសេរសេចក្តីថ្លែងការណ៍ if-else សាមញ្ញមួយដើម្បីពិនិត្យមើលម៉ាស៊ីនរដ្ឋ GRBL ហើយប្រាប់យើងថាតើយើងស្ថិតនៅក្នុង ALARM_STATE សកម្មហើយនៅពេលណាដែលយើងត្រូវបើក ​​LED ។

ប្រសិនបើអ្វីៗដំណើរការបានល្អ យើងអាចចងក្រងនៅក្នុង Arduino IDE បង្ហោះកូដ ហើយឥឡូវនេះយើងនឹងមានអំពូល LED វិនិច្ឆ័យ ALARM_STATE ដែលកំពុងដំណើរការ! យើងអាចភ្ជាប់ភ្លើង LED Beacon ខាងក្រៅជាជម្រើស ដើម្បីដាក់ខ្ពស់ពីលើម៉ាស៊ីន ដែលអាចមើលឃើញពេញបន្ទប់។

បញ្ហាដែលអាចកើតមាន

តាមឧត្ដមគតិការផ្លាស់ប្តូរទាំងនេះនឹងត្រូវធ្វើឡើងជាមួយនឹងកូដប្រភព grbl បច្ចុប្បន្នបំផុតដែលមាន ហើយត្រូវបានធ្វើឡើងមុននឹងបន្ថែម "បណ្ណាល័យ" grbl ទៅ Arduino IDE ។ ប្រសិនបើអ្នកមាន grbl នៅក្នុងថតឯកសារ Arduino របស់អ្នករួចហើយ អ្នកនឹងត្រូវរុករកដោយដៃ ហើយលុបថត grbl ឬកែសម្រួល files នៅក្នុងបណ្ណាល័យ arduino ។ នៅលើម៉ាស៊ីនលីនុចរបស់ខ្ញុំ “បណ្ណាល័យ” ត្រូវបានរកឃើញនៅ៖ /home/andrew/Arduino/libraries/grbl. ការចេញផ្សាយ grbl ថ្មីបំផុតអាចរកបាននៅ https://github.com/gnea/grbl/releases. មនុស្សម្នាក់អាចទាញយក zip ដែលមាន file ហើយថតមួយដែលមានឈ្មោះថា grbl-1.1h.20190825 អាចត្រូវបានរកឃើញនៅខាងក្នុង។ នៅក្នុងថតនេះ ថតមួយដែលមានឈ្មោះថា grbl នឹងក្លាយជាឯកសារដែលអ្នកនឹងចង់បន្ថែមទៅ Arduino IDE ជា "library" "zip file”។ ត្រូវប្រាកដថាធ្វើការផ្លាស់ប្តូររបស់អ្នកចំពោះ cpu_map.h និង protocol.c files មុនពេលអ្នកបន្ថែមវាទៅ Arduino IDE ។ បើមិនដូច្នោះទេអ្នកនឹងត្រូវកែសម្រួល files នៅក្នុងបណ្ណាល័យ/ថតឯកសារ grbl របស់អ្នក។ មានកំហុសដែលគេស្គាល់សម្រាប់មុខងារអ័ក្សពីរនៅក្នុង zip grbl-1.1h fileវាត្រូវបានជួសជុលប្រសិនបើអ្នកទាញយកសាខា grbl សំខាន់ជំនួសវិញ។ https://github.com/gnea/grbl

បច្ចុប្បន្នភាព និងកំហុស CNDY Shield

*V1.1: មានកំហុសអេក្រង់សូត្រតូចមួយដែល Spindle PWM និង Spindle Direction ត្រូវបានប្តូរ។ នេះត្រូវបានកែតំរូវក្នុង V1.2.

V1.2 លែងមានឧបករណ៍កាត់បន្ថយសំលេងរំខានស្រេចចិត្តនៅលើបន្ទាត់ 5v ហើយមានឧបករណ៍ថ្មីនៅលើបន្ទាត់ប៊ូតុងបញ្ចូលផ្សេងទៀត។ V1.2 មានខ្សែ LED ស្រេចចិត្ត ស្របទៅនឹង Spindle PWM ។ វាអាចមានប្រយោជន៍សម្រាប់ការដំឡើងឡាស៊ែរសម្រាប់សុវត្ថិភាព។

បានធ្វើបច្ចុប្បន្នភាពខែសីហា-28-2021

ព័ត៌មានបន្ថែមអាចរកបាននៅ RabbitMountainResearch.com.

ឯកសារ/ធនធាន

CNDY Shield GRBL CNC Arduino UNO [pdf] ការណែនាំអ្នកប្រើប្រាស់
GRBL CNC, Arduino UNO

ឯកសារយោង

ទុកមតិយោបល់

អាសយដ្ឋានអ៊ីមែលរបស់អ្នកនឹងមិនត្រូវបានផ្សព្វផ្សាយទេ។ វាលដែលត្រូវការត្រូវបានសម្គាល់ *