មើល៖ 164 អ្នកនិពន្ធ៖ Grace ពេលវេលាបោះពុម្ព៖ 2021-07-26 ប្រភពដើម៖ គេហទំព័រ
នេះ។ ឧបករណ៍ចាប់សញ្ញា ultrasonic HC-SR04 គឺជាម៉ូឌុលវាស់ចម្ងាយដ៏ពេញនិយមបំផុតមួយសម្រាប់គម្រោង Arduino ។ វាត្រូវបានគេប្រើយ៉ាងទូលំទូលាយនៅក្នុងមនុស្សយន្តបញ្ចៀសឧបសគ្គ ឧបករណ៍ចាប់សញ្ញាកន្លែងចតរថយន្ត ការរកឃើញកម្រិត ធុងសំរាមឆ្លាតវៃ ឧបករណ៍វាស់ចម្ងាយ និងកម្មវិធីចាប់សញ្ញាមិនទាក់ទងផ្សេងទៀត។
ម៉ូឌុលបញ្ចេញរលក ultrasonic 40kHz តាមរយៈឧបករណ៍បញ្ជូន។ នៅពេលដែលរលកសំឡេងជួបនឹងវត្ថុមួយ វាឆ្លុះបញ្ចាំងត្រឡប់ទៅអ្នកទទួលវិញ។ ដោយការវាស់ស្ទង់ម៉ោងអេកូ និងប្រើល្បឿនសំឡេង Arduino អាចគណនាចម្ងាយរវាងឧបករណ៍ចាប់សញ្ញា និងវត្ថុ។
| ប៉ារ៉ាម៉ែត្រ | តម្លៃ |
| វ៉ុលធ្វើការធម្មតា។ | 5V DC |
| ចរន្តដំណើរការឋិតិវន្ត | តិចជាង 5mA នៅលើកំណែម៉ូឌុលមួយចំនួន |
| ប្រេកង់ប្រតិបត្តិការ | រលក ultrasonic 40kHz |
| ចម្ងាយរាវរក | ជួរធម្មតា: 2cm ទៅ 400cm; កំណែដែលបានកែសម្រួលមួយចំនួនអាចគាំទ្រជួរវែងជាងនេះ។ |
| មុំរាវរក | ជាធម្មតានៅក្នុង 15 ដឺក្រេ; កំណែមួយចំនួនដែលមានការកើនឡើងខ្ពស់អាចឡើងដល់ 30 ដឺក្រេ។ |
| ភាពជាក់លាក់ | រហូតដល់ប្រហែល 0.3cm ក្រោមលក្ខខណ្ឌសាកល្បងសមស្រប |
| តំបន់ពិការភ្នែក | ចម្ងាយវាស់អប្បបរមាប្រហែល 2 សង់ទីម៉ែត្រ |
ម៉ូឌុល ultrasonic HC-SR04 មានម្ជុលចំនួនបួន៖ VCC, TRIG, អេកូ និង GND ។ Arduino បញ្ជូនជីពចរខ្លីទៅម្ជុល TRIG បន្ទាប់មកអានជីពចរត្រឡប់មកវិញពីម្ជុលអេកូ។
| HC-SR04 ម្ជុល | ការតភ្ជាប់ Arduino | មុខងារ |
| វី.ស៊ី.ស៊ី | 5V | ការផ្គត់ផ្គង់ថាមពលសម្រាប់ម៉ូឌុល ultrasonic ។ |
| ទ្រីក | ម្ជុលឌីជីថល ៩ | ការបញ្ចូលគន្លឹះ។ Arduino ប្រើជីពចរ 10us ដើម្បីចាប់ផ្តើមជួរ។ |
| អេកូ | ម្ជុលឌីជីថល ១០ | ទិន្នផលអេកូ។ Arduino អានទទឹងជីពចរដើម្បីគណនាចម្ងាយ។ |
| GND | GND | ការតភ្ជាប់ដី។ |
HC-SR04 ដំណើរការដោយការវាស់វែងពេលវេលានៃការហោះហើរ។ Arduino បញ្ជូនសញ្ញាកេះកម្រិតខ្ពស់យ៉ាងហោចណាស់ 10 មីក្រូវិនាទីទៅម្ជុល TRIG ។ បន្ទាប់មក ម៉ូឌុលបញ្ជូនជីពចរ ultrasonic 40kHz ចំនួនប្រាំបីដោយស្វ័យប្រវត្តិ ហើយរង់ចាំអេកូដែលឆ្លុះបញ្ចាំង។
នៅពេលដែលសញ្ញា ultrasonic ដែលឆ្លុះបញ្ចាំងត្រូវបានរកឃើញ ម្ជុលអេកូនឹងបញ្ចេញជីពចរកម្រិតខ្ពស់។ រយៈពេលនៃជីពចរនេះគឺជាពេលវេលាធ្វើដំណើរទៅមកនៃរលក ultrasonic ។
ចម្ងាយ = អេកូពេលវេលាកម្រិតខ្ពស់ × ល្បឿនសំឡេង / ២
នៅក្នុងកូដ Arduino រូបមន្តសាមញ្ញធម្មតាគឺ៖
ចម្ងាយគិតជាសង់ទីម៉ែត្រ = រយៈពេល × 0.0343 / 2
ដំណើរការកំណត់ពេលវេលាគឺសាមញ្ញ៖ Arduino រក្សា TRIG ទាបដោយសង្ខេប បញ្ជូនជីពចរខ្ពស់ 10us បន្ទាប់មកត្រឡប់ TRIG ទៅទាប។ HC-SR04 បញ្ជូនការផ្ទុះ ultrasonic និងកំណត់អេកូខ្ពស់រហូតដល់សញ្ញាដែលឆ្លុះបញ្ចាំងត្រឡប់មកវិញ ឬអស់ពេលរង្វាស់។
ដើម្បីជៀសវាងការអានមិនស្ថិតស្ថេរ សូមទុកការពន្យាពេលខ្លីរវាងការវាស់វែង។ វដ្តរង្វាស់ប្រហែល 60ms ត្រូវបានគេប្រើជាទូទៅ ដូច្នេះអេកូអ៊ុលត្រាសោនពីមុនមានពេលបាត់មុនពេលកេះបន្ទាប់។
មុខងារ Arduino pulseIn() ត្រូវបានប្រើដើម្បីវាស់វែងរយៈពេលដែលម្ជុលឌីជីថលនៅខ្ពស់ឬទាប។ សម្រាប់ HC-SR04 Arduino ប្រើ pulseIn(echoPin, HIGH) ដើម្បីអានទទឹងជីពចរកម្រិតខ្ពស់ពីម្ជុលអេកូ។
| វាក្យសម្ពន្ធ | អត្ថន័យ |
| PulseIn(pin, តម្លៃ) | អានរយៈពេលនៃជីពចរខ្ពស់ ឬទាប។ |
| PulseIn(pin, តម្លៃ, អស់ពេល) | អានជីពចរជាមួយនឹងតម្លៃអស់ពេលគិតជាមីក្រូវិនាទី។ |
ការប្រើការអស់ពេលត្រូវបានណែនាំ។ ប្រសិនបើមិនមានអេកូត្រលប់មកវិញទេ មុខងារអាចបញ្ឈប់ការរង់ចាំ ហើយត្រឡប់ 0 ជំនួសឱ្យការទប់ស្កាត់កម្មវិធីយូរពេក។
ខ្សែភ្លើងគឺត្រង់។ ភ្ជាប់ VCC ទៅ 5V, GND ទៅ GND, TRIG ទៅកាន់ pin ទិន្នផលឌីជីថល Arduino និង ECHO ទៅ pin input ឌីជីថល Arduino ។ ឧទាហរណ៍ខាងក្រោមប្រើ Arduino Uno, TRIG នៅលើ pin 9 និង ECHO នៅលើ pin 10។
កម្មវិធី Arduino ធម្មតាខាងក្រោមបញ្ជូនជីពចរ 10us អានទទឹងជីពចរអេកូ គណនាចម្ងាយគិតជាសង់ទីម៉ែត្រ និងបោះពុម្ពលទ្ធផលនៅក្នុង Serial Monitor ។
const int trigPin = 9; const int echoPin = 10; រយៈពេលវែង; ចម្ងាយអណ្តែតCm; ការដំឡើងចាត់ទុកជាមោឃៈ () { pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT); Serial.begin(9600); } void loop() { digitalWrite(trigPin, LOW); ពន្យារពេលមីក្រូវិនាទី (2); digitalWrite(trigPin, HIGH); ពន្យារពេលមីក្រូវិនាទី (10); digitalWrite(trigPin, LOW); រយៈពេល = pulseIn(echoPin, HIGH, 30000); ប្រសិនបើ (រយៈពេល == 0) { Serial.println('ក្រៅជួរ'); } else { distanceCm = រយៈពេល * 0.0343 / 2; Serial.print('ចម្ងាយ៖ '); Serial.print(ចម្ងាយCm); Serial.println('cm'); } ការពន្យាពេល (60); }
ប្រសិនបើអ្នកឃើញតម្លៃចម្ងាយនៅក្នុង Serial Monitor នោះឧបករណ៍ចាប់សញ្ញា ultrasonic HC-SR04 និងខ្សែភ្លើង Arduino កំពុងដំណើរការត្រឹមត្រូវ។ បន្ទាប់មកអ្នកអាចប្រើទិន្នន័យពីចម្ងាយសម្រាប់ការរកឃើញឧបសគ្គ ការគ្រប់គ្រងចលនារបស់មនុស្សយន្ត ទ្វារស្វ័យប្រវត្តិ ការរំលឹកកន្លែងចតរថយន្ត ឬគម្រោងកម្រិតរាវ។
រក្សាវត្ថុដែលបានវាស់នៅក្នុងជួរចម្ងាយដែលបានណែនាំ និងនៅខាងក្រៅតំបន់ពិការភ្នែក 2 សង់ទីម៉ែត្រ។
ប្រើផ្ទៃគោលដៅរាបស្មើ និងរឹងសម្រាប់ការឆ្លុះបញ្ចាំង ultrasonic កាន់តែប្រសើរ។
ជៀសវាងការវាស់សម្ភារៈទន់ មុំ រន្ធ ឬស្រូបសំឡេង។
ប្រើការផ្គត់ផ្គង់ថាមពល 5V ដែលមានស្ថេរភាព និងរក្សាខ្សែឱ្យខ្លី និងមានសុវត្ថិភាព។
បន្ថែមការអស់ពេលទៅ pulseIn() ដើម្បីការពារការទប់ស្កាត់រយៈពេលយូរនៅពេលដែលមិនមានអេកូត្រឡប់មកវិញ។
តម្រងមធ្យម ឬមធ្យម - ការអានជាច្រើនដើម្បីកាត់បន្ថយសំលេងរំខាន។
សម្រាប់ភាពត្រឹមត្រូវខ្ពស់ ទូទាត់សងសម្រាប់សីតុណ្ហភាព ព្រោះល្បឿនសំឡេងប្រែប្រួលជាមួយនឹងសីតុណ្ហភាពខ្យល់។
| ការដាក់ពាក្យ | របៀបដែល HC-SR04 ត្រូវបានប្រើ |
| មនុស្សយន្តបញ្ចៀសឧបសគ្គ | រកឃើញវត្ថុនៅក្បែរ និងជួយមនុស្សយន្តផ្លាស់ប្តូរទិសដៅ។ |
| ឧបករណ៍ចាប់សញ្ញាចម្ងាយចតរថយន្ត | វាស់ចម្ងាយរវាងយានជំនិះ និងឧបសគ្គ។ |
| ការរកឃើញកម្រិតរាវ | វាស់ចម្ងាយពីឧបករណ៍ចាប់សញ្ញាទៅផ្ទៃរាវដោយគ្មានទំនាក់ទំនង។ |
| ធុងសំរាមឆ្លាតវៃ | រកឃើញដៃ ឬវត្ថុនៅក្បែរនោះ ហើយបើកគម្របដោយស្វ័យប្រវត្តិ។ |
ដើម្បីប្រើឧបករណ៍ចាប់សញ្ញា ultrasonic HC-SR04 ជាមួយ Arduino សូមភ្ជាប់ VCC ទៅ 5V, GND ទៅ GND, TRIG ទៅម្ជុលបញ្ចេញឌីជីថល និងអេកូទៅម្ជុលបញ្ចូលឌីជីថល។ ផ្ញើជីពចរគន្លឹះ 10us អានរយៈពេលអេកូជាមួយ pulseIn() និងគណនាចម្ងាយជាមួយរូបមន្តពេលវេលានៃការហោះហើរ។
HC-SR04 មានតម្លៃថោក ងាយស្រួលប្រើ និងសមរម្យសម្រាប់គម្រោងវាស់ចម្ងាយ Arduino ជាច្រើន។ ដើម្បីទទួលបានលទ្ធផលល្អបំផុត សូមយកចិត្តទុកដាក់លើផ្ទៃគោលដៅ មុំវាស់ តំបន់ពិការភ្នែក ថាមពលមានស្ថេរភាព ការគ្រប់គ្រងអស់ពេល និងឥទ្ធិពលសីតុណ្ហភាព។
Arduino បញ្ជូនជីពចរ 10us ទៅម្ជុល TRIG ។ HC-SR04 បញ្ចេញជីពចរ ultrasonic ចំនួនប្រាំបី 40kHz ហើយកំណត់ម្ជុលអេកូខ្ពស់រហូតដល់សំឡេងដែលឆ្លុះបញ្ចាំងត្រឡប់មកវិញ។ Arduino វាស់ពេលវេលាជីពចរនេះ និងគណនាចម្ងាយ។
រូបមន្តគឺចម្ងាយ = រយៈពេល × ល្បឿនសំឡេង / 2. គិតជាសង់ទីម៉ែត្រ រូបមន្ត Arduino ទូទៅគឺ distanceCm = រយៈពេល × 0.0343 / 2 ដែលរយៈពេលត្រូវបានវាស់ជាមីក្រូវិនាទី។
ពេលវេលាអេកូដែលបានវាស់វែងគឺជាពេលវេលាធ្វើដំណើរទៅមកពីឧបករណ៍ចាប់សញ្ញាទៅវត្ថុ និងត្រឡប់ទៅឧបករណ៍ចាប់សញ្ញាវិញ។ ការបែងចែកដោយ 2 ផ្តល់ចំងាយមួយផ្លូវរវាងឧបករណ៏ និងវត្ថុ។
អ្នកអាចប្រើម្ជុលឌីជីថល Arduino ភាគច្រើន។ នៅក្នុងឧទាហរណ៍ជាច្រើន TRIG ត្រូវបានភ្ជាប់ទៅលេខ 9 ឌីជីថល ហើយអេកូត្រូវបានភ្ជាប់ទៅលេខ 10 ឌីជីថល។ លេខកូដត្រូវតែផ្គូផ្គងម្ជុលដែលប្រើក្នុងខ្សែរបស់អ្នក។
មូលហេតុទូទៅរួមមាន ខ្សែរលុង ថាមពល 5V មិនស្ថិតស្ថេរ លេខ TRIG ខុស ឬលេខម្ជុលអេកូ គ្មានវត្ថុក្នុងជួរ ផ្ទៃគោលដៅមុំ សម្ភារៈទន់ ក្បាលឧបករណ៍ចាប់សញ្ញាត្រូវបានរារាំង ឬអស់ពេលនៅក្នុងមុខងារ pulseIn()។
តំបន់ពិការភ្នែកគឺជាចម្ងាយអប្បបរមាដែលម៉ូឌុលមិនអាចវាស់បានដែលអាចទុកចិត្តបាន។ សម្រាប់ HC-SR04 តំបន់ពិការភ្នែកជាធម្មតាមានប្រហែល 2 សង់ទីម៉ែត្រ។ វត្ថុដែលនៅជិតជាងនេះអាចបង្កើតការអានមិនស្ថិតស្ថេរ។
បាទ/ចាស៎ HC-SR04 អាចត្រូវបានប្រើសម្រាប់គម្រោងកម្រិតទឹកធម្មតាដែលមិនប៉ះពាល់ ប្រសិនបើឧបករណ៍ចាប់សញ្ញាត្រូវបានការពារពីសំណើម និងបានម៉ោនពីលើផ្ទៃរាវ។ សម្រាប់ធុងសើម ខាងក្រៅ ឬធុងឧស្សាហកម្ម ឧបករណ៍ចាប់សញ្ញា ultrasonic មិនជ្រាបទឹកត្រូវបានណែនាំ។
ប្រើការផ្គត់ផ្គង់ថាមពលដែលមានស្ថេរភាព រក្សាឧបករណ៍ចាប់សញ្ញាឱ្យកាត់កែងទៅនឹងគោលដៅ ជៀសវាងផ្ទៃទន់ ឬមុំ បន្ថែមជីពចរក្នុងពេលវេលាអស់ ធ្វើការអានច្រើន ប្រើការច្រោះមធ្យម និងអនុញ្ញាតប្រហែល 60ms រវាងការវាស់វែង។