Browse Source

lesson 60 finished

master
Tom Nordal 2 years ago
parent
commit
87f21e8563
  1. 4
      Sensors/platformio.ini
  2. 83
      Sensors/src/main.cpp

4
Sensors/platformio.ini

@ -12,8 +12,8 @@
platform = atmelavr platform = atmelavr
board = uno board = uno
framework = arduino framework = arduino
; lib_deps = lib_deps =
; # RECOMMENDED ; # RECOMMENDED
; # Accept new functionality in a backwards compatible manner and patches ; # Accept new functionality in a backwards compatible manner and patches
; adafruit/DHT sensor library @ ^1.4.6 ; adafruit/DHT sensor library @ ^1.4.6
; arduino-libraries/LiquidCrystal @ ^1.0.7 arduino-libraries/LiquidCrystal @ ^1.0.7

83
Sensors/src/main.cpp

@ -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…
Cancel
Save