Range Finder (Version 1) - Indicator LEDs at 50cm and 70cm

Dependencies:   mbed

Fork of MaxSonar_EZ1_Analog by Michael Shimniok

Files at this revision

API Documentation at this revision

Comitter:
wadh4587
Date:
Tue Jun 14 11:12:17 2016 +0000
Parent:
0:9dfac5da16a9
Commit message:
Version 1 LV-MaxSonar-EZ1 range finder with indicators at 50cm and 70cm

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
--- a/main.cpp	Tue Jan 25 00:05:16 2011 +0000
+++ b/main.cpp	Tue Jun 14 11:12:17 2016 +0000
@@ -1,38 +1,34 @@
+/* Arthur Spencer 14/06/16
+LV-MaxSonar-EZ1 Range Finder
+Indicator LED at D0 (always on), Range indicators that come on at 70cm and 50cm
+
+*/
 #include "mbed.h"
 
-// MaxSonar EZ1 test program
-// by Michael Shimniok http://www.bot-thoughts.com/
-//
-// Based on datasheet here: http://www.maxbotix.com/uploads/LV-MaxSonar-EZ1-Datasheet.pdf
-// Reads from AN (analog) pin connected to mbed p20, assumes 3.3V supply to EZ1 module.
-//
-// mbed -> EZ1
-// -----------
-// VOUT -> +5
-// GND  -> GND
-// p20  -> AN
-//
+AnalogIn ain(A0);           //Receives analogue signal from range finder
+//Serial pc(USBTX, USBRX);
 
-AnalogIn ain(p20);
-Serial pc(USBTX, USBRX); // tx, rx
+DigitalOut far(D0);
+DigitalOut mid(D1);
+DigitalOut near(D2);
+
+int main()
+{
+    float  volts, distance;
 
-int main() {
-    float adc, volts, inches;
-    int feet, in;
-    
-    pc.baud(115200);
-    
-    while (1){
-        adc = ain.read();           // read analog as a float
-        volts = adc * 3.3;          // convert to volts
-        inches = volts / 0.0064;    // 3.3V supply: 6.4mV per inch
-        feet = (int) inches / 12;   // inches to feet (trunc)
-        in = (int) inches % 12;     // remainder -> in(ches)
-        
-        pc.printf("%8.2f adc %8.2fV %8.2f in %d'%d\"\n", adc, volts, inches, feet, in);
-
-        wait(0.05);                 // 20Hz update rate ; note we aren't truly synchronized to the device or anything...   
+    while (1) {
+        volts = ain.read();
+        distance = volts*600;        //cm
+//        pc.printf("V =  %f Distance = %f\n\n", volts, distance);          //Prints voltage and distance
+//        wait(0.5);
+        if (distance<30) {
+            near = 1, mid = 1, far = 1;
+        } else {
+            if (distance<50) {
+            near = 0, mid = 1, far = 1;
+        } else {
+            near = 0, mid = 0, far = 1;
+        }
     }
 }
-
-
+}
\ No newline at end of file
--- a/mbed.bld	Tue Jan 25 00:05:16 2011 +0000
+++ b/mbed.bld	Tue Jun 14 11:12:17 2016 +0000
@@ -1,1 +1,1 @@
-http://mbed.org/users/mbed_official/code/mbed/builds/e2ac27c8e93e
+http://mbed.org/users/mbed_official/code/mbed/builds/6c34061e7c34
\ No newline at end of file