-
Notifications
You must be signed in to change notification settings - Fork 0
/
ultrasonic_sensor.ino
65 lines (53 loc) · 1.4 KB
/
ultrasonic_sensor.ino
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
/*
* Created by ArduinoGetStarted, https://arduinogetstarted.com
*
* Arduino - Ultrasonic Sensor HC-SR04
*
* Wiring: Ultrasonic Sensor -> Arduino:
* - VCC -> 5VDC
* - TRIG -> Pin 9
* - ECHO -> Pin 8
* - GND -> GND
*
* Tutorial is available here: https://arduinogetstarted.com/tutorials/arduino-ultrasonic-sensor
*/
int trigPin = 9; // TRIG pin
int echoPin = 8; // ECHO pin
int ledPin = 13; // transmit LED
int redLed = 12;
int greenLed = 11;
int threshold_distance = 20;
float duration_us, distance_cm;
void setup() {
// begin serial port
Serial.begin(9600);
// configure the trigger pin to output mode
pinMode(trigPin, OUTPUT);
pinMode(ledPin, OUTPUT);
pinMode(greenLed, OUTPUT);
pinMode(redLed, OUTPUT);
// configure the echo pin to input mode
pinMode(echoPin, INPUT);
}
void loop() {
// generate 10-microsecond pulse to TRIG pin
digitalWrite(trigPin, HIGH);
digitalWrite(ledPin, HIGH);
delay(100);
digitalWrite(trigPin, LOW);
digitalWrite(ledPin, LOW);
// measure duration of pulse from ECHO pin
duration_us = pulseIn(echoPin, HIGH);
// calculate the distance
distance_cm = 0.017 * duration_us;
// print the value to Serial Monitor
Serial.println(distance_cm);
if (distance_cm < threshold_distance) {
digitalWrite(redLed, LOW);
digitalWrite(greenLed, HIGH);
} else {
digitalWrite(greenLed, LOW);
digitalWrite(redLed, HIGH);
}
delay(100);
}