Come sfruttare una procedura per gestire un motore DC pilotato da due PWM
Dependencies: mbed
Revision 0:56dae31e7e04, committed 2016-12-03
- Comitter:
- FrancescoCaiazzo
- Date:
- Sat Dec 03 10:39:21 2016 +0000
- Commit message:
- Sfrutto una procedura per gestire un motore pilotato da 2 PWM
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 56dae31e7e04 main.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Sat Dec 03 10:39:21 2016 +0000 @@ -0,0 +1,57 @@ +/**************************************************** +* FAST PROTOTYPING WITH NUCLEO * +* Example Code 14: DC motor control con Procedura * +* Author: Francesco Caiazzo * +* Organization: Perlatecnica no-profit organization * +*****************************************************/ + +#include "mbed.h" +#define P 10000 // periodo + +PwmOut mB1(D10); +PwmOut mB2(D11); + +void motore(int speed) //funzione muove motore +{ + speed *= 100; //adatto il duty cycle + + if (speed > 0) //controllo se speed > 0 + { + // Avanti + mB1.pulsewidth_us(0); + mB2.pulsewidth_us(speed); + } + else if (speed < 0) + { + // Dietro + mB2.pulsewidth_us(0); + mB1.pulsewidth_us(-speed); // rendo positiva la velocità + } + else + { + // Stop + mB2.pulsewidth_us(0); + mB1.pulsewidth_us(0); + } + + +} + +int main() +{ + //setto il periodo per i due pin del motore B + mB1.period_us(P); + mB2.period_us(P); + + while(1) + { + motore(100); // avanti a v = 100 + wait(1); // aspetto 1s + motore(0); // mi fermo + wait(1); // aspetto 1s + motore(-100); // dietro a v = 100 + wait(1); // aspetto 1s + motore(0); // mi fermo + wait(1); // aspetto 1s + } +} \ No newline at end of file
diff -r 000000000000 -r 56dae31e7e04 mbed.bld --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed.bld Sat Dec 03 10:39:21 2016 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/mbed_official/code/mbed/builds/d75b3fe1f5cb \ No newline at end of file