From 481b24d3794404dae8ecd9047cb7b9b5d0183795 Mon Sep 17 00:00:00 2001 From: daniel watson Date: Thu, 7 Nov 2013 21:35:28 -0800 Subject: [PATCH] add both sonars --- arduino-sketches/both_sonars/both-sonars.fzz | Bin 0 -> 36444 bytes arduino-sketches/both_sonars/both_sonars.ino | 70 +++++++++++++++++++ 2 files changed, 70 insertions(+) create mode 100644 arduino-sketches/both_sonars/both-sonars.fzz create mode 100644 arduino-sketches/both_sonars/both_sonars.ino diff --git a/arduino-sketches/both_sonars/both-sonars.fzz b/arduino-sketches/both_sonars/both-sonars.fzz new file mode 100644 index 0000000000000000000000000000000000000000..70765e3c5f58887580e7674df717fe131eb9bc21 GIT binary patch literal 36444 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 KEEAX?qkjR!SmNja literal 0 HcmV?d00001 diff --git a/arduino-sketches/both_sonars/both_sonars.ino b/arduino-sketches/both_sonars/both_sonars.ino new file mode 100644 index 0000000..2d850ff --- /dev/null +++ b/arduino-sketches/both_sonars/both_sonars.ino @@ -0,0 +1,70 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as + published by the Free Software Foundation, either version 3 of the + License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . + */ +int right_echo_pin = 6; +int right_trigger_pin = 7; + +int left_echo_pin = 11; +int left_trigger_pin = 12; + +int right_ping_microseconds = 0; +int left_ping_microseconds = 0; +double sound_cm_per_microsecond_at_sea_level = 0.034029; +int count = 0; + +void on(int pin){ + digitalWrite(pin, HIGH);} + +void off(int pin){ + digitalWrite(pin, LOW);} + +int ping(int trigger, int echo){ + int ping_time = 0; + // turn off trigger + off(trigger); + delayMicroseconds(2); + // turn on the trigger and leave it on long enough for the + // sonar sensor to notice + on(trigger); + delayMicroseconds(10); + off(trigger); + ping_time = pulseIn(echo, HIGH); + if(ping_time <= 0){ + ping_time = 3000;} + // sonar needs some time to recover before pinging again, + // so make sure it gets enough sleep right here. 50 milliseconds + delay(50); + return ping_time;} + +void setup(){ + Serial.begin(9600); + pinMode(right_echo_pin, INPUT); + pinMode(right_trigger_pin, OUTPUT); + pinMode(left_echo_pin, INPUT); + pinMode(left_trigger_pin, OUTPUT);} + +void loop(){ + right_ping_microseconds = ping(right_trigger_pin, right_echo_pin); + left_ping_microseconds = ping(left_trigger_pin, left_echo_pin); + // print out the pulse time + Serial.print(right_ping_microseconds); + Serial.print(" = right ping microseconds, "); + Serial.print(left_ping_microseconds); + Serial.print(" = left ping microseconds. #"); + Serial.println(count++); + + // wait so it's easier to read the serial monitor. + // change delay to 0 for fullspeed. + // default is 333, which is about 1/3 of a second + delay(333);} -- 2.30.2