
### 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