ជាមួយនឹងម្ជុលឌីជីថលនិងអាណាឡូកដែលអ្នកអាចប្រើនៅលើក្តារអារីដូណូរបស់អ្នកអ្នកអាចទទួលឬបញ្ជូនសញ្ញាអគ្គិសនីដើម្បីគ្រប់គ្រងឬទទួលទិន្នន័យពីគម្រោងអេឡិចត្រូនិចរបស់អ្នក។ លើសពីនេះទៀតមានសញ្ញាគួរឱ្យចាប់អារម្មណ៍ខ្លាំងណាស់នៅក្នុងចានប្រភេទនេះហើយសញ្ញាទាំងនោះគឺជាសញ្ញា PWM, ដែលអាចធ្វើត្រាប់តាមសញ្ញាអាណាឡូកដោយមិនមានអាណាឡូក។ នោះគឺពួកគេគឺជាម្ជុលឌីជីថលដែលអាចធ្វើសកម្មភាពតាមរបៀប (មិនដូចគ្នា) ជាសញ្ញាអាណាឡូក។
ប្រភេទនៃសញ្ញាទាំងនេះគឺមានប្រយោជន៍ខ្លាំងណាស់សម្រាប់ពេលដែលអ្នកមិនត្រឹមតែចង់ប្រើសញ្ញាឌីជីថល HIGH និង LOW នោះទេពោលគឺ ១ រឺ ០, ON និងបិទប៉ុន្តែអ្នកចង់បន្តនិងពិពណ៌នាបន្ថែមទៀត។ សញ្ញាស្មុគស្មាញបន្ថែមទៀត។ ឧទាហរណ៍វាអាចធ្វើទៅបានដើម្បីសំរួលល្បឿនរបស់ក ម៉ូទ័រ DCឬអាំងតង់ស៊ីតេពន្លឺនៃពន្លឺសម្រាប់សូឡែន។ ល។
លិបិក្រម
អាណាឡូកទល់នឹងប្រព័ន្ធឌីជីថល
សៀគ្វីអេឡិចត្រូនិចអាចត្រូវបានបែងចែកជាពីរក្រុមធំឬពីរប្រភេទ៖ ឌីជីថលនិងអាណាឡូក។ នៅពេលនិយាយអំពីអេឡិចត្រូនិចឌីជីថលយើងកំពុងប្រើបរិមាណដែលមានតម្លៃដាច់ពីគ្នាពោលគឺប្រព័ន្ធគោលពីរតំណាងដោយសញ្ញាអគ្គិសនីនៃវ៉ុលទាបឬខ្ពស់ដើម្បីបកស្រាយស្ថានភាពនៃប៊ីតទាំងនោះដែលត្រូវបានដោះស្រាយ។ ម៉្យាងទៀតនៅពេលវាជាសៀគ្វីអាណាឡូកបរិមាណដែលមានតម្លៃជាបន្តបន្ទាប់កំពុងត្រូវបានប្រើប្រាស់។
នៅក្នុងប្រព័ន្ធឌីជីថលអាចត្រូវបានរកឃើញនៅក្នុងវេន នៃប្រភេទផ្សំនិងប្រភេទនៃលំដាប់បន្តបន្ទាប់។ នោះគឺអតីតគឺជាអ្នកដែលលទ្ធផលនៃប្រព័ន្ធពឹងផ្អែកតែលើស្ថានភាពនៃធាតុចូល។ ម៉្យាងទៀតនៅក្នុងធាតុបន្តបន្ទាប់ធាតុនៃអង្គចងចាំត្រូវបានរាប់បញ្ចូលហើយលទ្ធផលនឹងអាស្រ័យលើស្ថានភាពបច្ចុប្បន្ននៃធាតុចូលនិងរដ្ឋមុនដែលបានរក្សាទុក។
ក្នុងករណីដែលមានអាណាឡូកមិនមានក្រុមធំឬវ៉ារ្យ៉ង់ទាំងពីរនេះទេពីព្រោះនៅទីនេះពួកគេជាសញ្ញាបន្តដែលនឹងពឹងផ្អែកជានិច្ច សញ្ញា ប្រព័ន្ធបច្ចុប្បន្ន។ ឧទាហរណ៍នៅក្នុងឧបករណ៍បំពងសម្លេងសញ្ញាដែលត្រូវបានផ្គត់ផ្គង់ទៅវានឹងអាស្រ័យលើសម្លេងដែលអ្នកចង់បង្កើតឡើងវិញ។ ដូចគ្នាជាមួយមីក្រូហ្វូនដែលនឹងបង្កើតសញ្ញាអាណាឡូកអាស្រ័យលើសម្លេងដែលវាកំពុងទទួល។ ប្រាកដណាស់អ្នកបានឃើញវាជាមួយឧបករណ៍ចាប់សញ្ញាជាច្រើនទៀតដែលយើងបានពិពណ៌នានៅក្នុងប្លក់នេះហើយដែលដើរតួជាមួយសញ្ញាអាណាឡូក (ហេតុដូច្នេះរូបមន្តត្រូវបង្កើតដូច្នេះក្រោយមកតម្លៃអាចត្រូវបានគណនាឬមានលក្ខខណ្ឌនៅក្នុងគំនូសព្រាង Arduino IDE ។ ) ...
ចរិតទាំងនេះរបស់មួយនិងមួយទៀតធ្វើឱ្យខ្លះមានរបស់វា គុណសម្បត្តិនិងគុណវិបត្តិដូចធម្មតានៅស្ទើរតែអ្វីៗទាំងអស់។ ឧទាហរណ៍ឌីជីថលមានទំនោរទៅរកតម្លៃថោកលឿនជាងមុនងាយស្រួលក្នុងការអភិវឌ្ឍព័ត៌មានអាចត្រូវបានរក្សាទុកកាន់តែងាយស្រួលពួកគេមានភាពត្រឹមត្រូវជាងមុនពួកគេអាចត្រូវបានគេរៀបចំកម្មវិធីពួកគេមិនងាយរងគ្រោះដោយសារឥទ្ធិពលនៃសំលេងរំខាន។ ល។ ប៉ុន្តែវាក៏ជាការពិតដែលថាជាមួយអាណាឡូកអ្នកអាចដំណើរការជាមួយសញ្ញាស្មុគស្មាញជាងនេះ។
ដោយ ejemploឧបករណ៍ចាប់សញ្ញាបែបផែន Hall ប្រភេទឌីជីថលអាចដឹងតែវត្តមានឬអវត្តមាននៃដែនម៉ាញេទិកដែលនៅក្បែរនោះ។ ផ្ទុយទៅវិញឧបករណ៍ចាប់សញ្ញាបែបផែនអាណាឡូកអាចធ្វើបានហើយក៏កំណត់ដង់ស៊ីតេនៃដែនម៉ាញេទិកដែលបានថ្លែងអរគុណចំពោះសញ្ញាអាណាឡូកដែលវាបង្កើតនៅទិន្នផលរបស់វា។ ដោយដឹងពីរបៀបបកស្រាយសញ្ញានៃវ៉ុលធំជាងឬតិចជាងអណ្តូងអ្នកអាចដឹងអំពីទំហំនោះ។ អ្នកមានឧទាហរណ៍ផ្សេងទៀតនៅក្នុងធម្មជាតិជាច្រើនដែលអ្នកអាចវាស់បរិមាណជាមួយនឹងប្រព័ន្ធអាណាឡូកដូចជាសីតុណ្ហភាពពេលវេលាសម្ពាធចម្ងាយសំឡេង។ ល។
អាណាឡូកទល់នឹងសញ្ញាឌីជីថល
ដែលត្រូវបានគេនិយាយ, ក សញ្ញាអាណាឡូក វានឹងជាវ៉ុលឬចរន្តអគ្គិសនីដែលប្រែប្រួលទៅតាមពេលវេលានិងជាបន្តបន្ទាប់។ ប្រសិនបើគូសនៅលើក្រាហ្វិចសញ្ញាអាណាឡូកនឹងក្លាយជារលកស៊ីនុសតែមួយ។
ដូចជាសម្រាប់ សញ្ញាឌីជីថល, គឺជាវ៉ុលដែលប្រែប្រួលតាមទ្រនិចនាឡិកាទាក់ទងនឹងពេលវេលា។ នោះគឺប្រសិនបើវាត្រូវបានតំណាងនៅលើក្រាហ្វវានឹងជាសញ្ញាជំហានមួយដែលមិនខុសគ្នាជាបន្តបន្ទាប់ទេប៉ុន្តែការផ្លាស់ប្តូរជំហានឬការបង្កើនចំនួនខុសគ្នា។
អ្នកគួរតែដឹងថាមានសៀគ្វីដើម្បីទៅពីសញ្ញាអាណាឡូកទៅឌីជីថលមួយឬផ្ទុយមកវិញ។ ទាំងនេះ ឧបករណ៍បំលែង ពួកគេត្រូវបានគេស្គាល់ថាជាឌីអេចឌី (កម្មវិធីបម្លែងឌីជីថលទៅអាណាឡូក) និងអេឌីស៊ី (អាណាឡូកទៅឌីជីថលបំលែង) ។ ហើយពួកវាជាញឹកញាប់ណាស់នៅក្នុងឧបករណ៍ជាច្រើនដែលយើងប្រើសព្វថ្ងៃដូចជាទូរទស្សន៍កុំព្យូទ័រជាដើម។ ជាមួយពួកគេអ្នកអាចប្តូរសញ្ញាឌីជីថលដែលប្រើដោយឧបករណ៍ទាំងនេះទៅកម្រិតអេឡិចត្រូនិចដើម្បីធ្វើការជាមួយគ្រឿងបន្លាស់ផ្សេងទៀតឬផ្នែកដែលធ្វើការក្នុងអាណាឡូក។
ដោយ ejemploវាគ្មិនឬមីក្រូហ្វូនដែលមានសញ្ញាអាណាឡូកដែលដំណើរការជាមួយកាតសំឡេងឬកាតក្រាហ្វិកឌីជីថលដែលមានបន្ទះឈីប RAMDAC ដ៏ល្បីល្បាញសម្រាប់កំពង់ផែម៉ូនីទ័រអាណាឡូក ... នៅ Arduino ឧបករណ៍បំលែងប្រភេទនេះត្រូវបានប្រើសម្រាប់គម្រោងជាច្រើនដូចដែលយើងនឹងឃើញ ...
តើ PWM ជាអ្វី?
ទោះបីជា PWM (ការវាស់ស្ទង់ជីពចរ - ទទឹង) ឬការវាស់ទទឹងជីពចរ, មានមូលដ្ឋានឌីជីថលរូបរាងនៃសញ្ញារបស់វាប្រហាក់ប្រហែលនឹងសញ្ញាអាណាឡូក "ការ៉េ" ។ វាអនុញ្ញាតដោយមធ្យោបាយនៃជីពចរឌីជីថលដើម្បីផ្លាស់ប្តូរសញ្ញាដើម្បីធ្វើត្រាប់តាមប្រព័ន្ធអាណាឡូកដូចដែលខ្ញុំបានអត្ថាធិប្បាយរួចហើយ។ តាមពិតប្រសិនបើអ្នកក្រឡេកមើលឈ្មោះវាផ្តល់ឱ្យអ្នកនូវតម្រុយរួចហើយនូវអ្វីដែលវាធ្វើតាមរយៈទទឹងជីពចរឌីជីថល។
នេះមានប្រយោជន៍សម្រាប់ Arduino ដោយសារតែមានស្វ័យប្រវត្តិកម្មជាច្រើនឬសមាសធាតុអេឡិចត្រូនិចដែលអ្នកអាចបន្ថែមទៅគម្រោងរបស់អ្នកហើយនោះ មិនមានសមត្ថភាពក្នុងការផ្តល់សញ្ញាអាណាឡូកពិតទេប៉ុន្តែពួកគេប្រើ PWM នេះដើម្បីប្រតិបត្តិការ។ ហើយពួកគេក៏មិនអាចប្រើសញ្ញាអាណាឡូកដែលត្រូវបានគេធ្វើនោះដែរគឺលោតទៅវ៉ុលដើម្បីស្រដៀងនឹងឌីជីថល។ អ្វីដែលពួកគេអាចធ្វើបានគឺប្រើលទ្ធផលឌីជីថល -Vcc ឬ Vcc នៃប្រភេទឌីជីថលដើម្បីបង្កើតសញ្ញាបារម្ភនេះ ...
ដូច្នេះ PWM គឺជាប្រភេទនៃ "កលល្បិច" ដែល Arduino និងប្រព័ន្ធផ្សេងទៀតអាចធ្វើអន្តរកម្មជាមួយសញ្ញាប្រភេទនេះដែល ពួកគេមិនក្លាយជាអាណាឡូកឬឌីជីថលធម្មតាទេ។ ដើម្បីធ្វើឱ្យវាអាចធ្វើទៅបានពួកគេរក្សាលទ្ធផលឌីជីថលឱ្យសកម្មសម្រាប់ពេលវេលាជាក់លាក់ឬបិទអាស្រ័យលើចំណាប់អារម្មណ៍គ្រប់ពេល។ នេះគឺនៅឆ្ងាយពីអ្វីដែលជានាឡិកាឌីជីថលឬលេខកូដប្រព័ន្ធគោលពីរដែលជីពចរមានទទឹងដូចគ្នា។
នៅក្នុងគម្រោងរបស់អ្នកជាមួយ Arduino អ្នកអាចពិនិត្យមើលសញ្ញា PWM ប្រភេទនេះដែលក្នុងនោះភាពញឹកញាប់នៃជីពចរថេរត្រូវបានរក្សាទុកតាមពេលវេលាប៉ុន្តែ ទទឹងជីពចរទាំងនេះមានលក្ខណៈខុសគ្នា។ តាមពិតវដ្តកាតព្វកិច្ចត្រូវបានគេហៅថាពេលវេលាដែលសញ្ញាត្រូវបានរក្សាទុកខ្ពស់ដោយគោរពតាមចំនួនសរុបនៃវដ្ត។ ដូច្នេះវដ្តកាតព្វកិច្ចត្រូវបានផ្តល់ជា% ។
ចងចាំថានៅក្នុង PWM អ្នកមិនដំណើរការដូចនៅក្នុងសញ្ញាអាណាឡូករវាងតម្លៃវ៉ុលផ្សេងៗគ្នាហើយវាប្រែប្រួលរវាងពួកវា។ ក្នុងករណី PWM វាគឺជាសញ្ញាការ៉េនៅក្នុងរចនាប័ទ្មឌីជីថលនិង តម្លៃអតិបរមារបស់វាគឺវីស៊ី។ ឧទាហរណ៍ប្រសិនបើអ្នកធ្វើការជាមួយការផ្គត់ផ្គង់ថាមពល 3V អ្នកអាចផ្តល់ឱ្យជីពចរ 3V ឬ 0V ប៉ុន្តែមិនមែន 1V ឬតម្លៃមធ្យមផ្សេងទៀតដូចដែលនឹងកើតឡើងនៅក្នុងអាណាឡូកពិតប្រាកដ។ អ្វីដែលនឹងប្រែប្រួលក្នុងករណីនោះគឺទទឹងជីពចរដែលយើងអាចរក្សា ៣០% នៃតម្លៃ Vcc ខ្ពស់ឬ ៦០% ដើម្បីផ្តល់ថាមពលបន្ថែមទៀត។ ល។
ប៉ុន្តែត្រូវប្រុងប្រយ័ត្នព្រោះប្រសិនបើឧបករណ៍គាំទ្រដែនកំណត់ Vcc ហើយលើសពី PWM វាអាចខូច។ ដូច្នេះវាចាំបាច់ត្រូវគោរពតម្លៃនៃសំណុំទិន្នន័យដែលផ្តល់ដោយក្រុមហ៊ុនផលិត។ ដូចគ្នានេះផងដែរនៅក្នុងឧបករណ៍មួយចំនួនដូចជាម៉ូទ័រ DC ។ បញ្ជូនតអេឡិចត្រូម៉ាញេទិកជាដើមការដកវ៉ុលបន្ទាប់ពីវដ្តកាតព្វកិច្ចអាចមានន័យថាបន្ទុកបន្ទុកអាចបណ្តាលឱ្យខូចខាត។ នោះហើយជាមូលហេតុដែល ការការពារ ទាន់ពេលវេលា។
PWM លើ Arduino
ឥឡូវអ្នកដឹងពីរបៀបដែលវាដំណើរការសូមមើលករណីជាក់លាក់នៃ PWM នៅក្នុងពិភព Arduino ...
PWM៖ ផ្ចុងលើ Arduino
នៅលើក្តារ Arduino អ្នកអាចរកឃើញម្ជុលជាច្រើនដែលអនុវត្ត PWM ផ្នែករឹង។ អ្នកអាចកំណត់អត្តសញ្ញាណពួកគេនៅលើអេសអេសដោយខ្លួនឯងព្រោះពួកគេមាន និមិត្តសញ្ញា ~ (ក្បាលតូច) រួមជាមួយនឹងលេខកូដសម្គាល់។ វាក៏អាចត្រូវបានធ្វើដោយសូហ្វវែរនៅក្នុងកូដអាឌូរីណូប៉ុន្តែនោះនឹងផ្ទុកមេក្រូត្រួតពិនិត្យជាមួយការងារអ្វីមួយដែលមិនសមហេតុផលនៅពេលដែលវាអាចធ្វើបានពីកំណើតនិងផ្នែករឹង ...
- Arduino UNO, មីនីនិងណាណូ- អ្នកមាន PWM ចំនួន ៨ ៨ ប៊ីតនៅលើសសរ ៣, ៥, ៦, ៩, ១០ និង ១១ ដែលនឹងមាននោះនៅខាងចុងលេខ។
- Arduino មេហ្គា- នៅលើក្តារ Arduino ដែលមានឥទ្ធិពលបំផុតនេះអ្នកមានទិន្នផល PWM ១៥ ៨ ប៊ីត។ ពួកវាស្ថិតនៅលើសសរលេខ ២ ដល់ ១៣ និង ៤៤ ដល់ ៤៦ ។
- Arduino ដល់កំណត់៖ ក្នុងករណីនេះមានទិន្នផល PWM ១៣ ៨ ប៊ីត។ ពួកវាស្ថិតនៅលើសសរលេខ ២ ដល់ ១៣ បូកនឹងលទ្ធផលអាណាឡូកពីរផ្សេងទៀតដែលឌីឌីអេសបានកែសំរួលដោយដំណោះស្រាយ ១២ ប៊ីត។
នៅពេលអ្នកនិយាយអំពីដំណោះស្រាយនៃ 8 ប៊ីតឬ 12 ប៊ីត។ លនៅក្នុងលទ្ធផលនៃ PWM ប្រភេទនេះអ្នកកំពុងសំដៅទៅលើបន្ទប់សម្រាប់សមិទ្ធិផលដែលអ្នកមាន។ ជាមួយ ៨ ប៊ីតមាន ២៥៦ កំរិត រវាងអ្វីដែលអ្នកអាចផ្លាស់ប្តូរនិង ១២ ប៊ីតឡើងដល់ ៤០៩៦ កំរិត។
ត្រួតពិនិត្យជាមួយឧបករណ៍កំណត់ពេលវេលា
សម្រាប់ការគ្រប់គ្រង PWM ផ្នែករឹង, Arduino នឹងប្រើកម្មវិធីកំណត់ពេលវេលា សម្រាប់វា។ កម្មវិធីកំណត់ពេលបច្ចុប្បន្ននីមួយៗអាចបម្រើលទ្ធផល ២ ឬ ៣ PWM ។ បញ្ជីប្រៀបធៀបសម្រាប់លទ្ធផលនីមួយៗបំពេញបន្ថែមប្រព័ន្ធនេះដូច្នេះនៅពេលដែលពេលវេលាឈានដល់តម្លៃនៃការចុះឈ្មោះស្ថានភាពឬតម្លៃនៃលទ្ធផលត្រូវបានផ្លាស់ប្តូរដើម្បីបញ្ឈប់វដ្តកាតព្វកិច្ចទាំងនោះ។ ទោះបីជាមានលទ្ធផលពីរដែលគ្រប់គ្រងដោយកម្មវិធីកំណត់ពេលវេលាដូចគ្នាក៏ដោយវាទាំងពីរអាចមានវដ្តកាតព្វកិច្ចខុសគ្នាទោះបីវាចែករំលែកប្រេកង់ដូចគ្នាក៏ដោយ។
ក្នុងករណីឧបករណ៍កំណត់ពេលវេលាដែលភ្ជាប់ជាមួយម្ជុល PWM នីមួយៗវានឹងខុសគ្នា អាស្រ័យលើប្រភេទក្រុមប្រឹក្សា Arduino ដែលអ្នកមាន៖
- Arduino UNO, មីនីនិងណាណូ:
- Timer0 - 5 និង 6
- Timer1 - 9 និង 10
- Timer2 - 3 និង 11
- Arduino មេហ្គា:
- Timer0 - 4 និង 13
- Timer1 - 11 និង 12
- Timer2 - 9 និង 10
- កម្មវិធីកំណត់ម៉ោង ៣ - ២, ៣ និង ៥
- កម្មវិធីកំណត់ម៉ោង ៣ - ២, ៣ និង ៥
- កម្មវិធីកំណត់ម៉ោង ៣ - ២, ៣ និង ៥
ការចុះឈ្មោះដែលបានកំណត់ទុកជាមុននឹងបែងចែកពេលវេលាដោយចំនួនគត់ហើយកម្មវិធីកំណត់ពេលវេលានៅសល់ដើម្បីគ្រប់គ្រងលទ្ធផលដែលទាក់ទងនឹង PWM នីមួយៗ។ ការកែប្រែតម្លៃបញ្ជីឈ្មោះអាចផ្លាស់ប្តូរប្រេកង់។ នេះ ប្រេកង់ ពួកគេក៏នឹងខុសគ្នាអាស្រ័យលើកម្មវិធីកំណត់ពេលវេលានិងចាន៖
- Arduino UNO, មីនីនិងណាណូ:
- Timer0: អនុញ្ញាតឱ្យចាក់សំរាមពី 1, 8, 64, 256 និង 1024។ ប្រេកង់គឺ 62.5 Khz ។
- កម្មវិធីកំណត់ពេលវេលាទី ១៖ ជាមួយការកំណត់ឡើងវិញ ១, ៨, ៦៤, ២៥៦ និង ១០២៤។ ជាមួយនឹងប្រេកង់ ៣១,២៥ ឃី។
- Timer2: ស្មើនឹង Timer1 មានតែវាបន្ថែមការការពារជាមុន ៣២ និង ១២៨ បន្ថែមលើរបស់មុន។
- Arduino មេហ្គា:
- Timer0, 1, 2: ដូចគ្នានឹងខាងលើ។
- Timer3, 4, និង 5: ដោយមានប្រេកង់ 31.25 Khz និងបានបោសសំអាត 1, 8, 64, 256 និង 1024 ។
ភាពមិនស៊ីគ្នានិងជម្លោះ
ឧបករណ៍កំណត់ពេលវេលា ភ្ជាប់ជាមួយលទ្ធផលគឺមិនត្រឹមតែសំរាប់មុខងារនោះទេ, ក៏ត្រូវបានប្រើដោយអ្នកដទៃផងដែរ។ ដូច្នេះប្រសិនបើពួកវាត្រូវបានប្រើដោយមុខងារផ្សេងទៀតអ្នកត្រូវតែជ្រើសរើសរវាងមួយឬផ្សេងទៀតអ្នកមិនអាចប្រើទាំងពីរក្នុងពេលតែមួយបានទេ។ ឧទាហរណ៍ទាំងនេះគឺជាភាពមិនត្រូវគ្នាមួយចំនួនដែលអ្នកអាចរកបាននៅក្នុងគម្រោងរបស់អ្នក៖
- បណ្ណាល័យ servoៈនៅពេលដែលអ្នកប្រើម៉ូទ័រ servo, Timers ត្រូវបានប្រើយ៉ាងខ្លាំងដែលអាចនាំឱ្យមានជម្លោះ។ ជាពិសេសប្រើ Timer1 សំរាប់យូអិនអេណូណូនិងមីនីមានន័យថាអ្នកមិនអាចប្រើម្ជុល ៩ និង ១០ បានទេពេលអ្នកកំពុងប្រើគំនូរព្រាងជាមួយបណ្ណាល័យនោះ។ នៅក្នុងមេហ្គាវានឹងពឹងផ្អែកលើចំនួន servos ...
- SPIៈប្រសិនបើការទំនាក់ទំនង SPI ត្រូវបានប្រើនៅលើក្តារ Arduino នោះម្ជុល ១១ កំពុងត្រូវបានប្រើសម្រាប់មុខងារ MOSI ។ នោះហើយជាមូលហេតុដែលម្ជុល PWM មិនអាចប្រើបាន។
- សម្លេង៖ មុខងារនេះប្រើ Timer2 ដើម្បីប្រតិបត្តិការ។ ដូច្នេះប្រសិនបើវាត្រូវបានប្រើអ្នកកំពុងធ្វើឱ្យម្ជុល 3 និង 11 (ឬ 9 និង 10 សម្រាប់មេហ្គា) គ្មានប្រយោជន៍។
ការធ្វើតេស្តដោយដៃជាមួយ Arduino
ប្រសិនបើអ្នកចង់ឃើញកន្លែងដែល PWM ដំណើរការលើ Arduino អ្វីដែលល្អបំផុតដែលអ្នកអាចធ្វើបានគឺភ្ជាប់ការវាស់រង្វាស់ voltmeter ឬ multimeter (នៅក្នុងមុខងារដើម្បីវាស់វ៉ុល) រវាងម្ជុល PWM ដែលអ្នកបានជ្រើសរើសប្រើនិងម្ជុលដីឬ GND នៃក្តារ Arduino ។ ដោយវិធីនេះនៅលើអេក្រង់នៃឧបករណ៍វាស់អ្នកនឹងអាចមើលឃើញពីរបៀបដែលវ៉ុលកំពុងផ្លាស់ប្តូរជាមួយនឹងទិន្នផលដែលជាឌីជីថលអរគុណចំពោះល្បិច PWM ។
អ្នកអាចជំនួស voltmeter / multimeter ដោយប្រើអំពូល LED ដើម្បីមើលថាតើអាំងតង់ស៊ីតេនៃពន្លឺខុសគ្នាយ៉ាងម៉េចជាមួយនឹងម៉ូទ័រ DC ឬជាមួយធាតុផ្សេងទៀតដែលអ្នកចង់បាន។ ខ្ញុំបានធ្វើឱ្យវាសាមញ្ញក្នុងដ្យាក្រាមជាមួយ Fritzing ជាមួយ LED ដោយមិនចាំបាច់ទៀតទេប៉ុន្តែអ្នកដឹងថាវាក៏អាចតំណាងឱ្យគន្លឹះនៃមីលីម៉ែត្រផងដែរ។
ប្រសិនបើអ្នកប្រើអំពូល LED សូមចាំពីភាពធន់ទ្រាំនៅ cathode និង GND ។
para កូដប្រភព ដើម្បីគ្រប់គ្រង microcontroller board របស់ Arduino ដើម្បីធ្វើអ្វីៗគ្រប់យ៉ាងអ្នកគួរតែបញ្ចូលវាទៅក្នុង Arduino IDE (ក្នុងករណីនេះខ្ញុំបានប្រើ PWM pin 6 នៃ Arduino UNO):
const int analogOutPin = 6; byte outputValue = 0; void setup() { Serial.begin(9600); pinMode(ledPIN , OUTPUT); bitSet(DDRB, 5); // LED o voltímetro bitSet(PCICR, PCIE0); bitSet(PCMSK0, PCINT3); } void loop() { if (Serial.available()>0) { if(outputValue >= '0' && outputValue <= '9') { outputValue = Serial.read(); // Leemos la opción outputValue -= '0'; // Restamos '0' para convertir a un número outputValue *= 25; // Multiplicamos x25 para pasar a una escala 0 a 250 analogWrite(ledPIN , outputValue); } } } ISR(PCINT0_vect) { if(bitRead(PINB, 3)) { bitSet(PORTB, 5); // LED on } else { bitClear(PORTB, 5); // LED off } }
ជំរាបសួរថ្ងៃល្អ។ ដំបូងខ្ញុំសូមថ្លែងអំណរគុណចំពោះពេលវេលាដែលបានឧទ្ទិសដល់ការពន្យល់នេះថ្មីបំផុត។
ខ្ញុំចង់ធ្វើឱ្យអ្នកសំណួរមួយ។ ខ្ញុំកំពុងព្យាយាមដំណើរការលេខកូដនៅលើកម្មវិធីត្រាប់តាមប្រូតូស ៨ សម្រាប់អាហ្គូរីណូមេហ្គា។ ខ្ញុំភ្ជាប់វ៉ុលទ័រទៅនឹងម្ជុលទី ៦ ប្រូតេសឺសត្រូវបានភ្ជាប់ទៅនឹងច្រកសៀរៀលប៉ុន្តែខ្ញុំមិនដឹងពីរបៀបឬអ្វីដែលត្រូវផ្លាស់ប្តូរដូច្នេះវ៉ុលខុសគ្នាគឺជាលទ្ធផល។ ខ្ញុំត្រូវធ្វើការកែតម្រូវបន្តិចបន្តួចចំពោះកូដដើម្បីធ្វើឱ្យវាចងក្រង។ សូមអរគុណខ្លាំងណាស់សម្រាប់ជំនួយរបស់អ្នក