Thursday, September 19, 2019

ឧបករណ៍វាស់ចំងាយដែលប្រើរលកសម្លេង HC-SR04 ជាមួយ Arduino

           Ultrasonic Sensor ដែលយើងអាចស្គាល់បានថាជាឧបករណ៍សម្រាប់វាស់រយៈចំងាយខ្លីដោយប្រើរលកសម្លេងបាញ់ចេញ និងគណនាចំងាយនៃអនុគមន៍(ទាក់ទងគ្នា)នឹងរយៈពេលដែលសម្លេងផ្លាតមកវិញ។
   
            ជាធម្មតាឧបករណ៍ប្រភេទនេះមានពីរផ្នែកគឺ ផ្នែកបាញ់រលកសម្លេងចេញ និងផ្នែកទទួលរលកសម្លេងដែលផ្លាតពីរត្ថុនៅពីមុខវាមកវិញ ហើយករយៈពេលចន្លោះពេលដែលបាញ់ចេញនិងត្រលប់មកវិញមកគណនា ដោយប្រើរូបមកផ្សេងៗគ្នាទៅតាមប្រភេទម៉ូដែលរបស់ឧបករណ៍។

ឧទាហរណ៍៖ HC-SR04

            ដើម្បីងាយស្រួលយល់ យើងអាចលើកយកប្រភេទឧបករណ៍ដែលពេញនិយមក្នុងការប្រើប្រាស់មកពិភាក្សា។

លក្ខណៈរបស់ HC-SR04

- ភ្លើងសម្រាប់ដំណើរការ៖ 5V
- ចរន្តពេលដំណើរការ៖ 15mA
- មុំផ្លាត៖ 15°
- ចំងាយវាស់៖ 2cm – 400 cm/1″ – 13ft
- ប្រវែងផាល់៖ 10uS
- ហ្វ្រេកង់សម្លេង៖ 40kHz

ដំណើរការរបស់ HC-SR04

         ប្រភេទឧបករណ៍មានជើងបួនសម្រាប់ប្រើប្រាស់ និងភ្លើងសម្រាប់ដំណើរការឧបករណ៍។ ជើងទាំងបួនមានដូចខាងក្រោម៖



- VCC ៖ សម្រាប់ភ្លើងដែលដំណើរឧបករណ៍ 5V
- Trig ៖ សម្រាប់បញ្ជារអោយបាញ់សម្លេងចេញ
- Echo ៖ ជាអ្នកចាំទទួលសម្លេងដែលផ្លាតមកវិញ
- GNA ៖ ភ្ជាប់ទៅប៉ូលអវិជ្ជមាន (-)

ការគណនា

        ដោយសារតែឧបករណ៍ប្រើរលកសម្លេង ដូច្នេះការគណនាក៏ត្រូវការល្បឿរបស់សម្លេងជាចាំបាច់។ ដោយយើងអាចដឹងបានថាល្បឿននៃសម្លេងគឺ 340ម៉ែត្រក្នុងមួយវិនាទី(អានបន្ថែម)។


       យោងតាមរូបខាងលើ បើយើងធ្វើការរកបញ្ច្រាស់មកវិញដោយដាក់ឧបសគ្គមួយនៅពីមុខឧបករណ៍ចំងាយ 10សង់ទីម៉ែត្រ ហើយរករយៈពេលដែលរលក់សម្លេងផ្លាតត្រលប់មកឧបករណ៍ នោះយើងនឹងទទួលបានចំងាយស្មើនឹង 0.0032/2 គុណនឹងរយៈពេលដែលផ្លាតមកវិញ។ មូលហេតុដែលត្រូវចែកនឹង 2 ដោយសារតែចំងាយដែលរលក់សម្លេងត្រូវធ្វើដំណើរគឺ ទៅហើយត្រលប់មកវិញទៀត ដែលស្មើនឹង 2 ដងនៃចំងាយពិតប្រាកដ។

តេស្តជាមួយ Arduino

Image result for HC-SR04 arduino

  1. // defines pins numbers  
  2. const int trigPin = 12;  
  3. const int echoPin = 11;  
  4. // defines variables  
  5. long duration;  
  6. int distance;  
  7. void setup() {  
  8. pinMode(trigPin, OUTPUT); // Sets the trigPin as an Output  
  9. pinMode(echoPin, INPUT); // Sets the echoPin as an Input  
  10. Serial.begin(9600); // Starts the serial communication  
  11. }  
  12. void loop() {  
  13. // Clears the trigPin  
  14. digitalWrite(trigPin, LOW);  
  15. delayMicroseconds(2);  
  16.   
  17. // Sets the trigPin on HIGH state for 10 micro seconds  
  18. digitalWrite(trigPin, HIGH);  
  19. delayMicroseconds(10);  
  20. digitalWrite(trigPin, LOW);  
  21.   
  22. // Reads the echoPin, returns the sound wave travel time in microseconds  
  23. duration = pulseIn(echoPin, HIGH);  
  24.   
  25. // Calculating the distance  
  26. distance= duration*0.034/2;  
  27.   
  28. // Prints the distance on the Serial Monitor  
  29. Serial.print("Distance: ");  
  30. Serial.println(distance);  
  31. }