ultra-sonic-sensor

Dependencies:   mbed

Files at this revision

API Documentation at this revision

Comitter:
okapi
Date:
Fri Apr 05 13:45:00 2019 +0000
Commit message:
chou-on-pa

Changed in this revision

main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Fri Apr 05 13:45:00 2019 +0000
@@ -0,0 +1,104 @@
+/*
+Ultrasonic Distance Sensor
+The Parallax PING)))
+
+error: +-1cm
+*/
+
+#include "mbed.h"
+#include "Serial.h"
+#include "math.h"
+
+#define TEMPERATURE 25
+
+Timer usTimer;
+
+int main() {
+    //シリアル設定
+//    Serial pc(D1, D0);
+        Serial pc(USBTX, USBRX); 
+    pc.baud(14400);
+    
+    double usCount, distance[4];
+    
+    while(1) {
+        //SIGピンに2-5usトリガ入力
+        DigitalOut sonicSensorOut0(A3);
+        sonicSensorOut0 = 1;
+        wait_us(5);
+        sonicSensorOut0 = 0;
+        wait_us(700);
+        //ホールドオフ時間750us,入力に切り替えて結果を待つ
+        DigitalIn   sonicSensorIn0(A3);
+        while(!sonicSensorIn0);
+        //測定開始
+        usTimer.start();
+        while(sonicSensorIn0);
+        usTimer.stop();
+        usCount = usTimer.read_us();
+        usTimer.reset();
+        distance[0] = (331.5+ 0.6*TEMPERATURE)*usCount*(1e-3)/2;
+        
+               //SIGピンに2-5usトリガ入力
+        DigitalOut  sonicSensorOut1(A6);
+        sonicSensorOut1 = 1;
+        wait_us(5);
+        sonicSensorOut1 = 0;
+        wait_us(700);
+        //ホールドオフ時間750us,入力に切り替えて結果を待つ
+        DigitalIn   sonicSensorIn1(A6);
+        while(!sonicSensorIn1);
+        //測定開始
+        usTimer.start();
+        while(sonicSensorIn1);
+        usTimer.stop();
+        usCount = usTimer.read_us();
+        usTimer.reset();
+        distance[1] = (331.5+ 0.6*TEMPERATURE)*usCount*(1e-3)/2;
+        
+                //SIGピンに2-5usトリガ入力
+        DigitalOut  sonicSensorOut2(A5);
+        sonicSensorOut2 = 1;
+        wait_us(5);
+        sonicSensorOut2 = 0;
+        wait_us(700);
+        //ホールドオフ時間750us,入力に切り替えて結果を待つ
+        DigitalIn   sonicSensorIn2(A5);
+        while(!sonicSensorIn2);
+        //測定開始
+        usTimer.start();
+        while(sonicSensorIn2);
+        usTimer.stop();
+        usCount = usTimer.read_us();
+        usTimer.reset();
+        distance[2] = (331.5+ 0.6*TEMPERATURE)*usCount*(1e-3)/2;
+                
+        //SIGピンに2-5usトリガ入力
+        DigitalOut  sonicSensorOut3(A4);
+        sonicSensorOut3 = 1;
+        wait_us(5);
+        sonicSensorOut3 = 0;
+        wait_us(700);
+        //ホールドオフ時間750us,入力に切り替えて結果を待つ
+        DigitalIn   sonicSensorIn3(A4);
+        while(!sonicSensorIn3);
+        //測定開始
+        usTimer.start();
+        while(sonicSensorIn3);
+        usTimer.stop();
+        usCount = usTimer.read_us();
+        usTimer.reset();
+        distance[3] = (331.5+ 0.6*TEMPERATURE)*usCount*(1e-3)/2;
+       // pc.printf("%lf m\n", usCount);
+        
+        //結果を送信
+   //     distance = (331.5+ 0.6*TEMPERATURE)*usCount*(1e-6)/2;
+        pc.printf("a%3.1lf", distance[0]);    
+        pc.printf("b%3.1lf", distance[1]);  
+        pc.printf("c%3.1lf", distance[2]);  
+       pc.printf("d%3.1lf", distance[3]);      
+        
+     //100mS待つ
+        wait_ms(10);
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Fri Apr 05 13:45:00 2019 +0000
@@ -0,0 +1,1 @@
+https://os.mbed.com/users/mbed_official/code/mbed/builds/a7c7b631e539
\ No newline at end of file