Come sfruttare una procedura per gestire un motore DC pilotato da due PWM

Dependencies:   mbed

Files at this revision

API Documentation at this revision

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