Zainul Charbiwala
/
202_05_LightServo
Demo 5 for EE2M02A/CSM213A Fall 2010
Embed:
(wiki syntax)
Show/hide line numbers
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 }
Generated on Fri Aug 26 2022 16:38:17 by 1.7.2