/* * created by Rui Santos, https://randomnerdtutorials.com * * Complete Guide for Ultrasonic Sensor HC-SR04 * Ultrasonic sensor Pins: VCC: +5VDC Trig : Trigger (INPUT) - Pin11 Echo: Echo (OUTPUT) - Pin 12 GND: GND */ int motorPin = 7; // Motor int trigPin = 11; // Trigger int echoPin = 12; // Echo long duration, cm, inches; void setup() { //Serial Port begin Serial.begin (9600); //Define inputs and outputs pinMode(trigPin, OUTPUT); pinMode(motorPin, OUTPUT); pinMode(echoPin, INPUT); digitalWrite(motorPin, HIGH); } void loop() { // The sensor is triggered by a HIGH pulse of 10 or more microseconds. // Give a short LOW pulse beforehand to ensure a clean HIGH pulse: digitalWrite(trigPin, LOW); delayMicroseconds(5); digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW); // Read the signal from the sensor: 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(echoPin, INPUT); duration = pulseIn(echoPin, HIGH); // Convert the time into a distance cm = (duration/2) / 29.1; // Divide by 29.1 or multiply by 0.0343 Serial.print(cm); Serial.print("cm"); Serial.println(); if(cm <= 10){ Serial.println("ATTENTION"); //digitalWrite(motorPin, LOW); //delayMicroseconds(5); digitalWrite(motorPin, HIGH); delay(2000); digitalWrite(motorPin, LOW); } if(cm <= 5){ Serial.println("ATTENTION ATTENTION ATTENTION ATTENTION"); digitalWrite(motorPin, HIGH); delay(500); digitalWrite(motorPin, LOW); } delay(250); }