okapia johnstoni
/
F303_urtraSonic
ultra-sonic-sensor
Revision 0:4240e36e1c38, committed 2019-04-05
- 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