PARALLAX sonar threaded

Dependencies:   C12832_lcd Pulse RangeFinder mbed-rtos mbed

Fork of rtos_basic by mbed official

Files at this revision

API Documentation at this revision

Comitter:
hervel90
Date:
Mon Mar 23 14:58:40 2015 +0000
Parent:
6:209f4db62daf
Commit message:
PARALLAX sonar threaded

Changed in this revision

C12832_lcd.lib Show annotated file Show diff for this revision Revisions of this file
Pulse.lib Show annotated file Show diff for this revision Revisions of this file
RangeFinder.lib Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed-rtos.lib 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
diff -r 209f4db62daf -r cb446dbb54d9 C12832_lcd.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/C12832_lcd.lib	Mon Mar 23 14:58:40 2015 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/dreschpe/code/C12832_lcd/#8f86576007d6
diff -r 209f4db62daf -r cb446dbb54d9 Pulse.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Pulse.lib	Mon Mar 23 14:58:40 2015 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/NickRyder/code/Pulse/#fb79a4637a64
diff -r 209f4db62daf -r cb446dbb54d9 RangeFinder.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/RangeFinder.lib	Mon Mar 23 14:58:40 2015 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/NickRyder/code/RangeFinder/#05c9036328ee
diff -r 209f4db62daf -r cb446dbb54d9 main.cpp
--- a/main.cpp	Tue Jun 04 16:01:32 2013 +0100
+++ b/main.cpp	Mon Mar 23 14:58:40 2015 +0000
@@ -1,21 +1,78 @@
+#include "rtos.h"
 #include "mbed.h"
-#include "rtos.h"
- 
-DigitalOut led1(LED1);
-DigitalOut led2(LED2);
- 
-void led2_thread(void const *args) {
+#include "C12832_lcd.h"
+#include "RangeFinder.h"
+
+// Seeed ultrasound range finder
+RangeFinder rf(p21, 10, 5800.0, 100000);
+BusOut myleds(LED1, LED2, LED3, LED4);
+C12832_LCD lcd;
+
+float sonar_data;
+
+
+void lcd_display(void const *args) {
     while (true) {
-        led2 = !led2;
-        Thread::wait(1000);
+        lcd.locate(0,0);
+        if (sonar_data == -1.0)  {
+            lcd.printf("Timeout Error.\n");   
+        } else if (sonar_data > 5.0) {  
+            lcd.printf("No object within detection range.\n");         
+        } else  {
+            lcd.printf("Distance = %f m.\n", sonar_data);
+        }
+        Thread::wait(250);
     }
 }
- 
-int main() {
-    Thread thread(led2_thread);
+
+void led_display(void const *args) {
+    while (true) {
+            float led_m = 0.790474;
+        if (sonar_data <= led_m)  
+            {
+             myleds = 15;
+             }
+        else if (sonar_data > led_m && sonar_data <= 2*led_m ) 
+            {
+            myleds = 7;      
+            }
+        else if (sonar_data > 2*led_m && sonar_data <= 3*led_m )  
+            {
+            myleds = 3;      
+            }
+        else  
+            {
+            myleds = 1;      
+            }
     
-    while (true) {
-        led1 = !led1;
-        Thread::wait(500);
+        Thread::wait(250);
     }
 }
+
+void serial_display(void const *args) {
+    while (true) {
+        lcd.locate(0,0);
+        if (sonar_data == -1.0)  {
+            printf("Timeout Error.\n");   
+        } else if (sonar_data > 5.0) {  
+            printf("No object within detection range.\n");         
+        } else  {
+            printf("Distance = %f m.\n", sonar_data);
+        }
+        Thread::wait(250);
+    }
+}
+
+
+int main()  {    
+    lcd.cls();
+        
+    Thread thread1(led_display);
+    Thread thread2(lcd_display);
+    Thread thread3(serial_display);
+    
+    while (1)   {
+        sonar_data = rf.read_m();
+        Thread::wait(250);
+    }
+}     
\ No newline at end of file
diff -r 209f4db62daf -r cb446dbb54d9 mbed-rtos.lib
--- a/mbed-rtos.lib	Tue Jun 04 16:01:32 2013 +0100
+++ b/mbed-rtos.lib	Mon Mar 23 14:58:40 2015 +0000
@@ -1,1 +1,1 @@
-https://mbed.org/users/mbed_official/code/mbed-rtos/
\ No newline at end of file
+https://mbed.org/users/mbed_official/code/mbed-rtos/#d3d0e710b443
diff -r 209f4db62daf -r cb446dbb54d9 mbed.bld
--- a/mbed.bld	Tue Jun 04 16:01:32 2013 +0100
+++ b/mbed.bld	Mon Mar 23 14:58:40 2015 +0000
@@ -1,1 +1,1 @@
-http://mbed.org/users/mbed_official/code/mbed/builds/
\ No newline at end of file
+http://mbed.org/users/mbed_official/code/mbed/builds/487b796308b0
\ No newline at end of file