Esercitazione 2 - 6
Dependencies: mbed
Revision 0:b602ba967328, committed 2016-10-10
- Comitter:
- MDevolution
- Date:
- Mon Oct 10 09:37:52 2016 +0000
- Commit message:
- Esercitazione 2 - 6
Changed in this revision
main.cpp | Show annotated file Show diff for this revision Revisions of this file |
mbed.bld | Show annotated file Show diff for this revision Revisions of this file |
diff -r 000000000000 -r b602ba967328 main.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Mon Oct 10 09:37:52 2016 +0000 @@ -0,0 +1,56 @@ +#include "mbed.h" + +AnalogIn fotores_left(A0); +AnalogIn fotores_right(A1); +PwmOut PWM1(D5); +PwmOut PWM2(D6); + +const float Soglia_buio=0.40; +const float Soglia_uniformita=0.120; +const float alfa=5; + +void control_led(float val1, float val2); + +int main (){ + PWM1.period(0.001); + PWM2.period(0.001); + float val1=0; + float val2=0; + while (1){ + val1=fotores_left.read(); + val2=fotores_right.read(); + control_led(val1,val2); + wait(0.1); + } +} + +void control_led(float val1, float val2){ + if((val2>Soglia_buio)||(val1>Soglia_buio)){ + if(abs(val2-val1)<Soglia_uniformita) { // se la luce è uniforme su entrambe le fotoresistenze + PWM1=1; + PWM2=1; + }else{ + if((val1-val2)>0) { + float a=1-(alfa*(val1-val2)); + if (a<0){ + a=0; + } + PWM1=a; + PWM2=1; + //wait (0.1); + }else{ + PWM1=1; + float a=1-(alfa*(val2-val1)); + if (a<0){ + a=0; + } + PWM2=a; + //wait (0.1); + } + } + } else { + PWM1=0; + PWM2=0; + } +} + \ No newline at end of file
diff -r 000000000000 -r b602ba967328 mbed.bld --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed.bld Mon Oct 10 09:37:52 2016 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/mbed_official/code/mbed/builds/25aea2a3f4e3 \ No newline at end of file