Demo 5 for EE2M02A/CSM213A Fall 2010

Revision:
0:467a1af48585
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Fri Oct 22 19:56:41 2010 +0000
@@ -0,0 +1,51 @@
+#include "mbed.h"
+
+DigitalOut myled1(LED1);
+DigitalOut myled2(LED2);
+DigitalOut myled3(LED3);
+Serial bt(p9, p10); // tx, rx
+AnalogIn light(p20);
+PwmOut servo(p21);
+
+void servoMove(float pos);
+void progressiveLights(float val);
+
+int main() {
+    float val;
+    servo.period(0.020);          // servo requires a 20ms period
+    while(1) {
+        val = light.read()*5;
+        if (val < 0) val=0;
+        if (val > 1) val=1;
+        bt.printf("Hello World - %f !\r\n", val);
+        progressiveLights(val);
+        servoMove(val);
+        wait(0.01);
+    }
+
+}
+
+void servoMove(float pos)
+{
+    servo.pulsewidth(0.001 + pos/1000); // servo position determined by a pulsewidth between 1-2ms
+//    wait(0.25);
+}
+
+void progressiveLights(float val)
+{
+        if (val > 0.2) {
+            myled1 = 1;
+        } else {
+            myled1 = 0;
+        }
+        if (val > 0.4) {
+            myled2 = 1;
+        } else {
+            myled2 = 0;
+        }
+        if (val > 0.6) {
+            myled3 = 1;
+        } else {
+            myled3 = 0;
+        }
+}
\ No newline at end of file