6.4 Motor mittels Tasten vor-, rückwärts, Stop laufen lassen und Poti benützen um die Geschwindigkeit einzustellen. Erweitert um Abstandssensor wo vor einem Hindernis stoppt.

Dependencies:   HC_SR04_Ultrasonic_Library mbed

Fork of 1-06-03-Uebung by smd.iotkit1.ch

Files at this revision

API Documentation at this revision

Comitter:
stefan1691
Date:
Wed Apr 29 18:38:30 2015 +0000
Parent:
1:128f2b08a419
Commit message:
6.4 Motor mittels Tasten vor-, r?ckw?rts, Stop laufen lassen und Poti ben?tzen um die Geschwindigkeit einzustellen.; Erweitert um Abstandssensor wo vor einem Hindernis stoppt.

Changed in this revision

HC_SR04_Ultrasonic_Library.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.bld Show annotated file Show diff for this revision Revisions of this file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/HC_SR04_Ultrasonic_Library.lib	Wed Apr 29 18:38:30 2015 +0000
@@ -0,0 +1,1 @@
+http://developer.mbed.org/users/ejteb/code/HC_SR04_Ultrasonic_Library/#e0f9c9fb4cf3
--- a/main.cpp	Wed Apr 29 18:27:11 2015 +0000
+++ b/main.cpp	Wed Apr 29 18:38:30 2015 +0000
@@ -1,8 +1,10 @@
-/** 6.3 Motor mittels Tasten vor-, rückwärts, Stop laufen lassen und Poti benützen um die Geschwindigkeit einzustellen.
+/** 6.4 Motor mittels Tasten vor-, rückwärts, Stop laufen lassen und Poti benützen um die Geschwindigkeit einzustellen.
+    Erweitert um Abstandssensor wo vor einem Hindernis stoppt.
 */
 
 #include "mbed.h"
 #include "Motor.h"
+#include "ultrasonic.h"
 
 // vor-/rueckwaerts - beide = Notstop
 DigitalIn button1( A1 );
@@ -14,8 +16,25 @@
 // Motor an M01
 Motor m1(D3, D2, D4); // PWM, Vorwaerts, Rueckwarts
 
+// aktueller Abstand                                        
+int distance;                                                                                
+
+void dist(int d)
+{
+    // Abhandlung der Entfernung
+    printf("Entfernung %dmm\n", d);
+    distance = d;
+}
+
+ultrasonic mu(D5, D6, .1, 1, &dist);    // setzt den Trigger Pin auf D5, den Echo Pin auf D6
+                                        // liefert all 0.1 Sekunden einen neuen Wert mit einem
+                                        // Timeout von 1 Sekunden. Fuer die Ausgabe des Wertes
+                                        // wird die Funktion dist aufgerufen.
+
+/** Hauptprogramm */
 int main()
 {
+    mu.startUpdates();                  // Start der Abstandsmessung
     while (true) 
     {
         if  ( button1 == 0 && button2 == 0 )
@@ -24,6 +43,12 @@
             m1.speed( poti );
         else if ( button2 == 0 )
             m1.speed( poti * -1.0f );
+
+        mu.checkDistance();             // Pooling vom Distanzmesser, sollte moeglichst oft erfolgen
+        // 70 mm vor einem Hindernis - Stopp!
+        if  ( distance < 70 )
+            m1.speed( 0.0f );
+                       
         wait(0.2f);
     }
 }
\ No newline at end of file
--- a/mbed.bld	Wed Apr 29 18:27:11 2015 +0000
+++ b/mbed.bld	Wed Apr 29 18:38:30 2015 +0000
@@ -1,1 +1,1 @@
-http://mbed.org/users/mbed_official/code/mbed/builds/7e07b6fb45cf
\ No newline at end of file
+http://mbed.org/users/mbed_official/code/mbed/builds/433970e64889
\ No newline at end of file