potmeter motor aansturing

Dependencies:   MODSERIAL mbed Project_script_encoder QEI

Fork of Project_script by Marijke Zondag

Revision:
6:f4bbb73f3989
Parent:
5:107eb09fb095
Child:
7:f32005d13749
diff -r 107eb09fb095 -r f4bbb73f3989 main.cpp
--- a/main.cpp	Sun Sep 16 13:50:44 2018 +0000
+++ b/main.cpp	Mon Oct 01 11:42:25 2018 +0000
@@ -1,24 +1,71 @@
 #include "mbed.h"
 #include "MODSERIAL.h"
 
-DigitalOut gpo(D0);
-DigitalOut myled(LED_GREEN);
+DigitalOut directionpin1(D4);
+PwmOut pwmpin1(D5);
+AnalogIn potmetervalue1(A1);
+DigitalIn button2(D9);          //klopt dit?
+
+DigitalOut directionpin2(D7);
+PwmOut pwmpin2(D6);
+AnalogIn potmetervalue2(A2);
+DigitalIn button1(D10);          //klopt dit?
+
 MODSERIAL pc(USBTX, USBRX);
-DigitalIn button(PTA4);
 
 int main()
 { 
     pc.baud(115200);
-    pc.printf("Hello World!\r\n");
-    char c;
-    c = pc.getc();
-    pc.printf(" %c \n",c);
+    pc.printf("hello\n\r");
+    pwmpin1.period_us(60); //60 microseconds PWM period, 16.7 kHz 
+
     
     while (true)
     {
-            gpo     = !gpo;
-            myled   = !myled; // toggle a led
-            wait (0.5f);
+          
+          float u1 = potmetervalue1;
+          float u2 = potmetervalue2;
+          
+          float m1 = ((u1*2.0f)-1.0f);
+          float m2 = ((u2*2.0f)-1.0f);
+          
+         // pc.printf("Motor value is %f\n\r",m);
+
+          /*if (m <= -0.005) 
+            {
+                directionpin.write(0);
+                pwmpin = fabs(m); //pwm duty cycle can only be positive, floating 
+                pwmpin.period_us(60); //60 microseconds PWM period, 16.7 kHz 
+                pc.printf("Motor draait naar A\n\r");
+            }
+            
+          else if (m >= 0.005)
+            { 
+                directionpin.write(1);
+                pwmpin = fabs(m);
+                pwmpin.period_us(60); //60 microseconds PWM period, 16.7 kHz
+                pc.printf("Motor draait naar B\n\r");
+
+            }
+        
+          else if (-0.4 < m && m < 0.)
+            {
+                //pwmpin = 0.0;
+                pwmpin.period_us(60); //60 microseconds PWM period, 16.7 kHz
+                pc.printf("Motor zou moeten stoppen.\n\r");
+            }
+            
+            Met deze code kunnen we serial communication gebruiken. Als we dit niet nodig hebben en alleen de motor willen aansturen, dan gebruiken we de code hieronder.
+            */
+        
+        pwmpin1 = fabs(m1*0.6f)+0.4f;     //pwm duty cycle can only be positive, floating, 0.4f is "inefficiënt", dit tellen we erbij op, en keer 0.6 om te corrigeren voor de helling.
+        directionpin1.write(m1>0);        //Indien waar, motor draait rechtsom. Indien niet waar, motor draait linksom. 
+        wait(0.001f);                   //zodat de code niet oneindig doorgaat.
+
+        pwmpin2 = fabs(m2*0.6f)+0.4f;    
+        directionpin2.write(m2>0);        
+        wait(0.001f);
+            
     }
 }