Difference between revisions of "Arduino: Ping dengan hc sr04"
		
		
		
		
		
		Jump to navigation
		Jump to search
		
				
		
		
	
Onnowpurbo (talk | contribs)  (New page: Sumber: http://www.instructables.com/id/Easy-ultrasonic-4-pin-sensor-monitoring-hc-sr04/      ==Code==   int vcc = 2; //attach pin 2 to vcc  int trig = 3; // attach pin 3 to Trig  int echo...)  | 
				Onnowpurbo (talk | contribs)   (→Code)  | 
				||
| (2 intermediate revisions by the same user not shown) | |||
| Line 1: | Line 1: | ||
Sumber: http://www.instructables.com/id/Easy-ultrasonic-4-pin-sensor-monitoring-hc-sr04/  | Sumber: http://www.instructables.com/id/Easy-ultrasonic-4-pin-sensor-monitoring-hc-sr04/  | ||
| + | |||
| + | |||
| + | ==Diagram==  | ||
| + | |||
| + | [[Image:Ultrasound-hc-sr04-01.jpg|center|200px|thumb]]  | ||
| Line 7: | Line 12: | ||
==Code==  | ==Code==  | ||
| − |   int vcc = 2; //attach pin 2 to vcc  | + |   int vcc  = 2; //attach pin 2 to vcc  | 
  int trig = 3; // attach pin 3 to Trig  |   int trig = 3; // attach pin 3 to Trig  | ||
  int echo = 4; //attach pin 4 to Echo  |   int echo = 4; //attach pin 4 to Echo  | ||
| − |   int gnd = 5; //attach pin 5 to GND  | + |   int gnd  = 5; //attach pin 5 to GND  | 
  void setup() {    |   void setup() {    | ||
| − | + |      pinMode (vcc,OUTPUT);  | |
| − | + |      pinMode (gnd,OUTPUT);  | |
| − | + |      // initialize serial communication:  | |
| − | + |      Serial.begin(9600);  | |
| − | |||
  }  |   }  | ||
| − |   void loop()  | + |   void loop() {  | 
| − | + |      digitalWrite(vcc, HIGH);  | |
| − | + |      // establish variables for duration of the ping,  | |
| − | + |      // and the distance result in inches and centimeters:  | |
| − | + |      long duration, inches, cm;  | |
| − | + | ||
| + |      // The PING))) is triggered by a HIGH pulse of 2 or more microseconds.  | ||
| + |      // Give a short LOW pulse beforehand to ensure a clean HIGH pulse:  | ||
| + |      pinMode(trig, OUTPUT);  | ||
| + |      digitalWrite(trig, LOW);  | ||
| + |      delayMicroseconds(2);  | ||
| + |      digitalWrite(trig, HIGH);  | ||
| + |      delayMicroseconds(5);  | ||
| + |      digitalWrite(trig, LOW);    | ||
| + | |||
| + |      // The same pin is used to read the signal from the PING))): a HIGH  | ||
| + |      // pulse whose duration is the time (in microseconds) from the sending  | ||
| + |      // of the ping to the reception of its echo off of an object.  | ||
| + |      pinMode(echo,INPUT);  | ||
| + |      duration = pulseIn(echo, HIGH);   | ||
| + | |||
| + |      // convert the time into a distance  | ||
| + |      inches = microsecondsToInches(duration);  | ||
| + |      cm     = microsecondsToCentimeters(duration);    | ||
| − | + |      Serial.print(inches);  | |
| − | + |      Serial.print("in, ");  | |
| − | + |      Serial.print(cm);  | |
| − | + |      Serial.print("cm");  | |
| − | + |      Serial.println();    | |
| − | + | ||
| − | + |      delay(100);  | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
  }    |   }    | ||
  long microsecondsToInches(long microseconds)  |   long microsecondsToInches(long microseconds)  | ||
  {  |   {  | ||
| − | + |      // According to Parallax's datasheet for the PING))), there are  | |
| − | + |      // 73.746 microseconds per inch (i.e. sound travels at 1130 feet per  | |
| − | + |      // second). This gives the distance travelled by the ping, outbound  | |
| − | + |      // and return, so we divide by 2 to get the distance of the obstacle.  | |
| − | + |      // See: http://www.parallax.com/dl/docs/prod/acc/28015-PI...  | |
| − | + |      return microseconds / 74 / 2;  | |
  }  |   }  | ||
  long microsecondsToCentimeters(long microseconds)  |   long microsecondsToCentimeters(long microseconds)  | ||
  {  |   {  | ||
| − | + |      // The speed of sound is 340 m/s or 29 microseconds per centimeter.  | |
| − | + |      // The ping travels out and back, so to find the distance of the  | |
| − | + |      // object we take half of the distance travelled.  | |
| − | + |      return microseconds / 29 / 2;  | |
| − |   }    | + |   }  | 
| + | |||
| + | ==Monitor==  | ||
| + | |||
| + | Hasil monitor akan keluar, seperti,  | ||
| + | |||
| + | |||
| + |  1838in, 4691cm  | ||
| + |  3in, 9cm  | ||
| + |  4in, 12cm  | ||
| + |  4in, 12cm  | ||
| + |  1842in, 4701cm  | ||
| + |  3in, 8cm  | ||
| + |  1818in, 4639cm  | ||
| + |  3in, 8cm  | ||
| + |  1823in, 4654cm  | ||
| + |  3in, 9cm  | ||
| + |  1832in, 4675cm  | ||
| + | |||
| + | |||
Latest revision as of 15:47, 21 March 2022
Sumber: http://www.instructables.com/id/Easy-ultrasonic-4-pin-sensor-monitoring-hc-sr04/
Diagram
Code
int vcc  = 2; //attach pin 2 to vcc
int trig = 3; // attach pin 3 to Trig
int echo = 4; //attach pin 4 to Echo
int gnd  = 5; //attach pin 5 to GND
void setup() { 
    pinMode (vcc,OUTPUT);
    pinMode (gnd,OUTPUT);
    // initialize serial communication:
    Serial.begin(9600);
}
void loop() {
    digitalWrite(vcc, HIGH);
    // establish variables for duration of the ping,
    // and the distance result in inches and centimeters:
    long duration, inches, cm;
    
    // The PING))) is triggered by a HIGH pulse of 2 or more microseconds.
    // Give a short LOW pulse beforehand to ensure a clean HIGH pulse:
    pinMode(trig, OUTPUT);
    digitalWrite(trig, LOW);
    delayMicroseconds(2);
    digitalWrite(trig, HIGH);
    delayMicroseconds(5);
    digitalWrite(trig, LOW);  
    
    // The same pin is used to read the signal from the PING))): a HIGH
    // pulse whose duration is the time (in microseconds) from the sending
    // of the ping to the reception of its echo off of an object.
    pinMode(echo,INPUT);
    duration = pulseIn(echo, HIGH); 
     
    // convert the time into a distance
    inches = microsecondsToInches(duration);
    cm     = microsecondsToCentimeters(duration); 
    Serial.print(inches);
    Serial.print("in, ");
    Serial.print(cm);
    Serial.print("cm");
    Serial.println(); 
     
    delay(100);
} 
long microsecondsToInches(long microseconds)
{
    // According to Parallax's datasheet for the PING))), there are
    // 73.746 microseconds per inch (i.e. sound travels at 1130 feet per
    // second). This gives the distance travelled by the ping, outbound
    // and return, so we divide by 2 to get the distance of the obstacle.
    // See: http://www.parallax.com/dl/docs/prod/acc/28015-PI...
    return microseconds / 74 / 2;
}
long microsecondsToCentimeters(long microseconds)
{
    // The speed of sound is 340 m/s or 29 microseconds per centimeter.
    // The ping travels out and back, so to find the distance of the
    // object we take half of the distance travelled.
    return microseconds / 29 / 2;
}
Monitor
Hasil monitor akan keluar, seperti,
1838in, 4691cm 3in, 9cm 4in, 12cm 4in, 12cm 1842in, 4701cm 3in, 8cm 1818in, 4639cm 3in, 8cm 1823in, 4654cm 3in, 9cm 1832in, 4675cm