2 changed files with 65 additions and 22 deletions
@ -1,39 +1,82 @@ |
|||||||
// https://www.youtube.com/watch?v=M-UKXCUI0rE&list=PLGs0VKk2DiYw-L-RibttcvK-WBZm8WLEP&index=53
|
// https://www.youtube.com/watch?v=A6kEroT-g2o&list=PLGs0VKk2DiYw-L-RibttcvK-WBZm8WLEP&index=60
|
||||||
// https://www.youtube.com/watch?v=BTMMNsL0_b0&list=PLGs0VKk2DiYw-L-RibttcvK-WBZm8WLEP&index=54
|
|
||||||
// https://www.youtube.com/watch?v=2hwrDSVHQ-E&list=PLGs0VKk2DiYw-L-RibttcvK-WBZm8WLEP&index=55
|
|
||||||
|
|
||||||
|
|
||||||
#include <Arduino.h> |
#include <Arduino.h> |
||||||
|
#include <LiquidCrystal.h> |
||||||
|
|
||||||
int trigPin = 12; |
const int rs = 7, en = 8, d4 = 9, d5 = 10, d6 = 11, d7 = 12; |
||||||
int echoPin = 11; |
LiquidCrystal lcd(rs, en, d4, d5, d6, d7); |
||||||
|
|
||||||
|
|
||||||
|
int trigPin = 2; |
||||||
|
int echoPin = 3; |
||||||
int pingTravleTime; |
int pingTravleTime; |
||||||
float distance; |
float distance; |
||||||
const int pulsTime = 40; // uS
|
const int pulsTime = 40; // uS
|
||||||
const float pingTimeToDistance = 0.017; // uS to cm, travletime[s] * 340 m/s / 2
|
const float pingTimeToDistance = 0.017; // uS to cm, travletime[s] * 340 m/s / 2
|
||||||
|
|
||||||
|
int buttonPin = A0; |
||||||
|
int buttomState; |
||||||
|
|
||||||
|
int setTime = 500; |
||||||
|
int dt = 1000; |
||||||
|
|
||||||
void setup() { |
void setup() { |
||||||
// put your setup code here, to run once:
|
// put your setup code here, to run once:
|
||||||
Serial.begin(9600); |
Serial.begin(9600); |
||||||
|
Serial.println("Measurring Distance"); |
||||||
|
|
||||||
|
delay(setTime); |
||||||
|
|
||||||
|
lcd.begin(16, 2); |
||||||
|
lcd.print("Hello, World!"); |
||||||
|
|
||||||
pinMode(trigPin, OUTPUT); |
pinMode(trigPin, OUTPUT); |
||||||
pinMode(echoPin, INPUT); |
pinMode(echoPin, INPUT); |
||||||
|
pinMode(buttonPin, INPUT); |
||||||
|
digitalWrite(buttonPin, HIGH); |
||||||
} |
} |
||||||
|
|
||||||
void loop() { |
void loop() { |
||||||
// put your main code here, to run repeatedly:
|
// put your main code here, to run repeatedly
|
||||||
digitalWrite(trigPin, LOW); |
buttomState = digitalRead(buttonPin); |
||||||
delayMicroseconds(pulsTime); |
while (buttomState == HIGH) |
||||||
digitalWrite(trigPin, HIGH); |
{ |
||||||
delayMicroseconds(pulsTime); |
lcd.setCursor(0, 0); |
||||||
digitalWrite(trigPin, LOW); |
lcd.print("Place the Target"); |
||||||
pingTravleTime = pulseIn(echoPin, HIGH); |
lcd.setCursor(0, 1); |
||||||
delay(25); |
lcd.print("Press the Button");
|
||||||
Serial.print("Ping Time: "); |
buttomState = digitalRead(buttonPin); |
||||||
Serial.print(pingTravleTime); |
} |
||||||
|
{ |
||||||
distance = pingTravleTime * pingTimeToDistance; |
digitalWrite(trigPin, LOW); |
||||||
Serial.print(" Distance: "); |
delayMicroseconds(pulsTime); |
||||||
Serial.print(distance); |
digitalWrite(trigPin, HIGH); |
||||||
Serial.println(" cm"); |
delayMicroseconds(pulsTime); |
||||||
|
digitalWrite(trigPin, LOW); |
||||||
|
pingTravleTime = pulseIn(echoPin, HIGH); |
||||||
|
delay(25); |
||||||
|
|
||||||
|
distance = pingTravleTime * pingTimeToDistance; // Travel time to distance in cm
|
||||||
|
|
||||||
|
Serial.print("Ping Time and Distance:"); |
||||||
|
Serial.print("Ping Time: "); |
||||||
|
Serial.print(pingTravleTime); |
||||||
|
Serial.print(" Distance: "); |
||||||
|
Serial.print(distance); |
||||||
|
Serial.println(" cm"); |
||||||
|
|
||||||
|
// Display on LCD
|
||||||
|
lcd.clear(); |
||||||
|
lcd.setCursor(0, 0); |
||||||
|
lcd.print("Ping Time: "); |
||||||
|
lcd.print(pingTravleTime); |
||||||
|
lcd.print("us"); |
||||||
|
lcd.setCursor(0, 1); |
||||||
|
lcd.print("Distance: "); |
||||||
|
lcd.print(distance); |
||||||
|
lcd.print("cm"); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
} |
} |
||||||
|
|||||||
Loading…
Reference in new issue