How HC-SR04 Ultrasonic Sensor Works & Interface It With Arduino

 Ultrasonic Sensors


         Ultrasonic Sensors គឺជា​ sensors 1 ប្រភេទដែលមានតួនាទីកំណត់ចម្ងាយនៃរត្តុណាមួយ ។

 វាក៏អាចកំណត់ចម្ងាយបានយ៉ាងល្អក្នុងចន្លោះពី​ 2cm – 400cm



Ultrasonic Sensors​ វាមាន Pin 4 :

·                       Vcc វាគឺជា Pin ដែលនិងត្រូវភ្ជាប់ទៅនិង​ 5v នៃ Arduino Board

·                       GND វាគឺជា Pin ដែលនិងត្រូវភ្ជាប់ទៅនិង​ GND នៃ Arduino Board

·                       TRIG វាគឺជា Pin ដែលនិងត្រូវភ្ជាប់ទៅនិង​ Digital Pin  ( ជាទូទៅ ៩ ឬ PIN ដ៏ទៃទៀត ) នៃ

                            Arduino Board

·                       ECHO វាគឺជា Pin ដែលនិងត្រូវភ្ជាប់ទៅនិង​ Digital Pin ( ជាទូទៅ ១០ ឬ PIN ដ៏ទៃទៀត ) នៃ

                           Arduino Board



របៀបដែលវាដំណើរការមានដូចជា :

            ដំបូង  Transmitter  ( trig pin ) ដែលបញ្ចូនទៅសញ្ញារលកប្រេកង់នៃសម្លេងចេញទៅ

 រហូតវាបានប៉ះវត្ថុណាមួយ ៕ រលកសញ្ញានោះក៏ទ្បងត្រទ្បប់មកវិញ ហើយវាត្រូវបានទទួលដោយ

Receiver ( echo pin ) បន្ទាប់មកវាក៏បង្កើតបានជាចម្ងាយពី sensors ទៅកាន់វត្ថុមួយនោះ ៕


យើងអាចគណនារកចម្ងាយបានតាមរូបមន្ត :

ចម្ងាយ ( distance ) = ល្បឿន ( speed ) * ​ រយ:ពេល ( time )

        ដោយល្បឿនសម្លេងគឺប្រហែល​ 0.0343 c/us ( centimeters per microsecond ) រួចចែកវានឹង

2 ( ដោយសាររលកធ្វើដំណើរទៅវត្ថុហើយក៏ត្រទ្បាប់មកវិញ )​ ៕

Distance =  ( duration * 0.0343 ) / 2 ;

        រៀងរាល់ទិន្នន័យនិងត្រូវបានបង្ហាញ​ចេញនៅកន្លែង output បាន ៕​

ខាងក្រោមនេះគឺជាការតភ្ជាប់រវាង Ultrasonic sensors ទៅនិង Arduino Uno ៕



ខាងក្រោមនេះគឺជា Library របស់វា : NewPing.h 
Link download : 

Code Ultrasonic sensors

#include "NewPing.h"
#define TRIGGER_PIN 9
#define ECHO_PIN 10
// Maximum distance we want to ping for (in centimeters).
#define MAX_DISTANCE 400  

// NewPing setup of pins and maximum distance.
NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);
float duration, distance;

void setup() 
{
  Serial.begin(9600);
}

void loop() 
{
  // Send ping, get distance in cm
  distance = sonar.ping_cm();
  
  // Send results to Serial Monitor
  Serial.print("Distance = ");
  
  if (distance >= 400 || distance <= 2) 
  {
    Serial.println("Out of range");
  }
  else 
  {
    Serial.print(distance);
    Serial.println(" cm");
  }
  delay(500);
}





Comments

Popular posts from this blog

Lesson Voltage Divider ( Khmer )

HOMEWORK OR AND GATE

Drive Test ( TELECOM ) Analysis in Actix