### Karena pakai simulator tinkercad.com, library harus disesuaikan ###



// Ambil dari contoh : (karena simulasi tidak bisa langsung ambil 

// Ignore this first bit but don't delete or change it
// this bit is usually hidden inside 
// #import 
// But I can't hide it in TinkerCad. 
class NewPing {
  public:
    NewPing(int TRIGGER_PIN, int ECHO_PIN, int MAX_DISTANCE ){
      trigPin=TRIGGER_PIN;
      echoPin=ECHO_PIN;
      maxDistance=MAX_DISTANCE;

      pinMode(trigPin,OUTPUT);
      pinMode(echoPin,INPUT);
    }

    int ping_cm(){
      // Clears the trigPin
      digitalWrite(trigPin, LOW);
      delayMicroseconds(2);
      // Sets the trigPin on HIGH state for 10 micro seconds
      digitalWrite(trigPin, HIGH);
      delayMicroseconds(10);
      digitalWrite(trigPin, LOW);
      // Reads the echoPin, returns the sound wave travel time in microsecond
      long duration = pulseIn(echoPin, HIGH);
      // Calculating the distance
      int distance =  duration*0.034/2;
      // Checks out of range
      if (distance>maxDistance){
        //distance=0;
        distance=maxDistance;
      }
      return(distance);
    }

  private:
    int trigPin;
    int echoPin;
    int maxDistance;
};
// this is the bit you can modify

const int TRIGGER_PIN=4;
const int ECHO_PIN=3;
const int MAX_DISTANCE=100;

NewPing sensor(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);

// #include(NewPing.h>

const int relay=5;
int bacaSensor;

void setup()
{
	Serial.begin(9600);
	pinMode(relay,OUTPUT);
}

void loop()
{
  delay(50);                     // Wait 50ms between pings (about 20 pings/sec). 29ms should be the shortest delay between pings.
  Serial.print("Ping: ");
  Serial.print(sensor.ping_cm()); // Send ping, get distance in cm and print result (0 = outside set distance range)
  Serial.println("cm");
  bacaSensor=sensor.ping_cm();
  Serial.println(bacaSensor);
  if(bacaSensor<=50){
    digitalWrite(relay,LOW);
  }else{
    digitalWrite(relay,HIGH);
  }
}

 

Source : Youtube Life Tech