Pulse-width modulation (PWM) គឺជាពាក្យល្អសម្រាប់ប្រភេទនៃសញ្ញាឌីជីថល។ PWMs ត្រូវបានប្រើក្នុងកម្មវិធីជាច្រើន រួមទាំងសៀគ្វីត្រួតពិនិត្យស្មុគស្មាញ។ វិធីធម្មតាដែលយើងប្រើពួកវានៅ SparkFun គឺបន្ថយភ្លើង RGB LED ឬគ្រប់គ្រងទិសដៅរបស់ servo ។ យើងអាចសម្រេចបាននូវលទ្ធផលជាច្រើននៅក្នុងកម្មវិធីទាំងពីរនេះ ដោយសារ PWM អនុញ្ញាតឱ្យយើងផ្លាស់ប្តូររយៈពេលដែលសញ្ញាមានកម្រិតខ្ពស់តាមវិធីអាណាឡូក។ ខណៈពេលដែលសញ្ញាអាចត្រឹមតែខ្ពស់ (ជាធម្មតា 5V) ឬទាប (ដី) នៅពេលណាមួយ យើងអាចផ្លាស់ប្តូរសមាមាត្រនៃពេលវេលាដែលសញ្ញាគឺខ្ពស់ធៀបនឹងកម្រិតទាបក្នុងចន្លោះពេលស្របគ្នា។
នៅពេលដែលសញ្ញាខ្ពស់ យើងហៅវាថា "ទាន់ពេល"។ ដើម្បីពិពណ៌នាអំពីចំនួន "ទាន់ពេល" យើងប្រើគំនិតនៃវដ្តកាតព្វកិច្ច។ វដ្តកាតព្វកិច្ចត្រូវបានវាស់ជាភាគរយ។ ភាគរយនៃវដ្តកាតព្វកិច្ចពិពណ៌នាយ៉ាងជាក់លាក់អំពីភាគរយនៃពេលវេលាដែលសញ្ញាឌីជីថលបើកក្នុងចន្លោះពេល ឬរយៈពេលមួយ។ កំឡុងពេលគឺជាការបញ្ច្រាសនៃប្រេកង់នៃទម្រង់រលក។ ប្រសិនបើសញ្ញាឌីជីថលស្ថិតនៅពាក់កណ្តាលម៉ោង និងពាក់កណ្តាលទៀត យើងនិយាយថា សញ្ញាឌីជីថលមានវដ្តកាតព្វកិច្ច 50% ដែលស្រដៀងនឹងរលកការ៉េដ៏ល្អ។ ប្រសិនបើភាគរយខ្ពស់ជាង 50% សញ្ញាឌីជីថលចំណាយពេលច្រើនក្នុងស្ថានភាពខ្ពស់ជាងស្ថានភាពទាប ហើយផ្ទុយទៅវិញប្រសិនបើវដ្តកាតព្វកិច្ចមានតិចជាង 50% ។ ដ្យាក្រាមខាងក្រោមបង្ហាញពីករណីទាំងបីនេះ៖

វដ្តកាតព្វកិច្ច 100% គឺដូចគ្នានឹងការកំណត់វ៉ុលទៅ 5 វ៉ុល (ខ្ពស់) ។ វដ្តកាតព្វកិច្ច 0% គឺដូចគ្នានឹងការភ្ជាប់សញ្ញាទៅដី។
ឧទាហរណ៍
អ្នកអាចគ្រប់គ្រងពន្លឺរបស់ LED ដោយកែតម្រូវវដ្តកាតព្វកិច្ច។

ជាមួយនឹង LEDs RGB (ក្រហម បៃតង និងខៀវ) អ្នកអាចគ្រប់គ្រងបរិមាណនៃពណ៌នីមួយៗនៃពណ៌ទាំងបីដែលលាយបញ្ចូលគ្នាដោយបន្ថយពួកវាដោយបរិមាណខុសៗគ្នា។

ប្រសិនបើទាំងបីត្រូវបានបើកក្នុងបរិមាណស្មើគ្នានោះលទ្ធផលនឹងមានភាពខុសគ្នានៃពន្លឺពណ៌ស។ ការលាយពណ៌ខៀវ និងពណ៌បៃតងដូចគ្នានឹងបង្កើតជាពណ៌ខៀវបៃតង។ សម្រាប់ឧទាហរណ៍ស្មុគ្រស្មាញជាងនេះបន្តិច សូមសាកល្បងបើកពណ៌ក្រហមទាំងស្រុង ពណ៌បៃតងយ៉ាងពេញលេញនៅវដ្តកាតព្វកិច្ច 50% និងពណ៌ខៀវទាំងស្រុងដើម្បីបង្កើតពណ៌ទឹកក្រូច។

នៅពេលគ្រប់គ្រង LEDs ប្រេកង់នៃរលកការ៉េត្រូវតែខ្ពស់គ្រប់គ្រាន់ដើម្បីសម្រេចបាននូវប្រសិទ្ធិភាពស្រអាប់ត្រឹមត្រូវ។ រលកនៃវដ្តកាតព្វកិច្ច 20% នៅ 1 Hz នឹងបង្ហាញយ៉ាងច្បាស់ថាវាបើក និងបិទដល់ភ្នែករបស់អ្នក ខណៈពេលដែលវដ្តកាតព្វកិច្ច 100% នៅ 20 Hz ឬខ្ពស់ជាងនេះនឹងបង្ហាញភាពស្រអាប់ជាងពេលដែលបើកពេញ។ ជាការសំខាន់ ប្រសិនបើគោលដៅរបស់អ្នកគឺដើម្បីសម្រេចបាននូវប្រសិទ្ធិភាពស្រអាប់ជាមួយនឹង LEDs នោះរយៈពេលមិនអាចធំពេកនោះទេ។ អ្នកក៏អាចប្រើម៉ូឌុលទទឹងជីពចរ ដើម្បីគ្រប់គ្រងមុំនៃម៉ូទ័រ servo ដែលភ្ជាប់ទៅនឹងឧបករណ៍មេកានិចដូចជាដៃមនុស្សយន្ត។ servo មានអ័ក្សដែលប្រែទៅជាទីតាំងជាក់លាក់មួយដោយផ្អែកលើបន្ទាត់បញ្ជារបស់វា។ ម៉ូទ័រ servo របស់យើងមានជួរប្រហែល 180 ដឺក្រេ។
ប្រេកង់/រយៈពេលគឺជាក់លាក់ចំពោះការគ្រប់គ្រង servo ជាក់លាក់មួយ។ ម៉ូទ័រ servo ធម្មតារំពឹងថានឹងមានការធ្វើបច្ចុប្បន្នភាពរៀងរាល់ 20 ms ជាមួយនឹងជីពចរចន្លោះពី 1 ms និង 2 ms — និយាយម្យ៉ាងទៀត វដ្តកាតព្វកិច្ចចន្លោះពី 5% ទៅ 10% នៅលើទម្រង់រលក 50 Hz ។ ជាមួយនឹងជីពចរ 1.5 ms ម៉ូទ័រ servo នឹងស្ថិតនៅក្នុងទីតាំង 90 ដឺក្រេធម្មជាតិរបស់វា។ នៅជីពចរ 1ms servo នឹងនៅ 0 ដឺក្រេ ហើយនៅជីពចរ 2ms servo នឹងនៅ 180 ដឺក្រេ។ អ្នកអាចទទួលបានជួរពេញលេញនៃចលនាដោយធ្វើបច្ចុប្បន្នភាព servo ទៅតម្លៃនៅចន្លោះ។
ម៉ូឌុលទទឹងជីពចរត្រូវបានប្រើនៅក្នុងកម្មវិធីផ្សេងៗ ជាពិសេសការគ្រប់គ្រង។ ឥឡូវនេះអ្នកដឹងថាវាអាចត្រូវបានប្រើដើម្បីបន្ថយ LEDs និងគ្រប់គ្រងមុំនៃម៉ូទ័រ servo អ្នកអាចចាប់ផ្តើមស្វែងយល់ពីការប្រើប្រាស់ដែលអាចធ្វើបានផ្សេងទៀត។ ប្រសិនបើអ្នកមានអារម្មណ៍ថាបាត់បង់ មានអារម្មណ៍ដោយឥតគិតថ្លៃដើម្បីពិនិត្យមើល SparkFun Inventor's Kit ដែលរួមបញ្ចូលឧទាហរណ៍ដោយប្រើម៉ូឌុលទទឹងជីពចរ។ ប្រសិនបើអ្នកត្រៀមខ្លួនរួចរាល់ដើម្បីចាប់ផ្តើមសរសេរកូដភ្លាមៗ ហើយមាន Arduino សូមពិនិត្យមើលឧទាហរណ៍ការសរសេរកូដ PWM នៅទីនេះ។
ពេលវេលាបង្ហោះ៖ ថ្ងៃទី៣១ ខែកក្កដា ឆ្នាំ២០២៥


