Demo 5 for EE2M02A/CSM213A Fall 2010

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 #include "mbed.h"
00002 
00003 DigitalOut myled1(LED1);
00004 DigitalOut myled2(LED2);
00005 DigitalOut myled3(LED3);
00006 Serial bt(p9, p10); // tx, rx
00007 AnalogIn light(p20);
00008 PwmOut servo(p21);
00009 
00010 void servoMove(float pos);
00011 void progressiveLights(float val);
00012 
00013 int main() {
00014     float val;
00015     servo.period(0.020);          // servo requires a 20ms period
00016     while(1) {
00017         val = light.read()*5;
00018         if (val < 0) val=0;
00019         if (val > 1) val=1;
00020         bt.printf("Hello World - %f !\r\n", val);
00021         progressiveLights(val);
00022         servoMove(val);
00023         wait(0.01);
00024     }
00025 
00026 }
00027 
00028 void servoMove(float pos)
00029 {
00030     servo.pulsewidth(0.001 + pos/1000); // servo position determined by a pulsewidth between 1-2ms
00031 //    wait(0.25);
00032 }
00033 
00034 void progressiveLights(float val)
00035 {
00036         if (val > 0.2) {
00037             myled1 = 1;
00038         } else {
00039             myled1 = 0;
00040         }
00041         if (val > 0.4) {
00042             myled2 = 1;
00043         } else {
00044             myled2 = 0;
00045         }
00046         if (val > 0.6) {
00047             myled3 = 1;
00048         } else {
00049             myled3 = 0;
00050         }
00051 }