Zainul Charbiwala
/
202_05_LightServo
Demo 5 for EE2M02A/CSM213A Fall 2010
Diff: main.cpp
- 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