![](/media/cache/group/ep_LV4vK4D.webp.50x50_q85.jpg)
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
Revision 2:e11bc343329d, committed 2015-04-29
- 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
diff -r 128f2b08a419 -r e11bc343329d HC_SR04_Ultrasonic_Library.lib --- /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
diff -r 128f2b08a419 -r e11bc343329d main.cpp --- 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
diff -r 128f2b08a419 -r e11bc343329d mbed.bld --- 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