Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Diff: main.cpp
- Revision:
- 0:f4862c7fd394
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp Tue Feb 28 15:28:07 2017 +0000
@@ -0,0 +1,67 @@
+#include "mbed.h"
+#include "IRSensor.h"
+
+DigitalOut led(LED1);
+
+//Perophery for distance sensors
+AnalogIn distance(PB_1);
+DigitalOut enable(PC_1);
+DigitalOut bit0(PH_1);
+DigitalOut bit1(PC_2);
+DigitalOut bit2(PC_3);
+IRSensor sensors[6];
+
+//indicator leds arround robot
+DigitalOut leds[] = { PC_8, PC_6, PB_12, PA_7, PC_0, PC_9 };
+
+//timer object for ledshow and distance sensor
+Ticker t1;
+
+//motor stuff
+DigitalOut enableMotorDriver(PB_2);
+PwmOut pwmL(PA_8);
+PwmOut pwmR(PA_9);
+
+//lights up the led according to the sensor signal
+void ledDistance()
+{
+ for( int ii = 0; ii<6; ++ii)
+ sensors[ii]< 0.1f ? leds[ii] = 1 : leds[ii] = 0;
+}
+
+//blinks at startup and starts ledDistance task
+void ledShow()
+{
+ static int timer = 0;
+ for( int ii = 0; ii<6; ++ii)
+ leds[ii] = !leds[ii];
+
+ //quit ticker and start led distance show
+ if( ++timer > 10) {
+ t1.detach();
+ t1.attach( &ledDistance, 0.01f );
+ }
+}
+
+int main()
+{
+ pwmL.period(0.00005f); // Setzt die Periode auf 50 μs
+ pwmR.period(0.00005f);
+
+ pwmL = 0.5f; // Setzt die Duty-Cycle auf 50%
+ pwmR = 0.5f;
+ enableMotorDriver = 0;
+
+ t1.attach( &ledShow, 0.05f );
+
+ //init distance sensors
+ for( int ii = 0; ii<6; ++ii)
+ sensors[ii].init(&distance, &bit0, &bit1, &bit2, ii);
+
+ enable = 1;
+
+ while(1) {
+ wait( 0.2f );
+ }
+}
+