大昔の超音波センサプログラム

Dependencies:   TextLCD mbed

Revision:
0:f43a798a392d
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Sat Jul 14 02:10:51 2018 +0000
@@ -0,0 +1,45 @@
+/*
+    ちょうおんぱせんさHC-SR04をしよう
+    LCDにきょりをひょうじ
+    30cmいかのきょりならばLEDがひかる
+*/
+#include "mbed.h"
+#include "TextLCD.h"
+
+TextLCD lcd(D12, D11, D10, D9, D8, D7, TextLCD::LCD20x2); // rs, e, d4-d7 
+DigitalOut trigger(D15);
+DigitalOut myled(LED1);
+DigitalIn  echo(D14);
+int distance = 0;
+int correction = 0;
+Timer sonar;
+ 
+int main()
+{
+    sonar.reset();
+    while(1) {
+// trigger sonar to send a ping
+        trigger = 1;
+        sonar.reset();
+        wait_us(10.0);
+        trigger = 0;
+//wait for echo high
+        while (echo==0) {};
+//echo high, so start timer
+        sonar.start();
+//wait for echo low
+        while (echo==1) {};
+//stop timer and read value
+        sonar.stop();
+//subtract software overhead timer delay and scale to cm
+        distance = (sonar.read_us()-correction)/58.0;
+        if(distance <= 30){
+            myled = 1;
+        } else {
+            myled = 0;
+        }
+        lcd.printf("%d cm \n\r",distance);
+//wait so that any echo(s) return before sending another ping
+        wait(0.2);
+    }
+}
\ No newline at end of file