Numero Uno / Mbed 2 deprecated MotorDriver

Dependencies:   HIDScope QEI mbed

Fork of BMT-K9_potmeter_fade by First Last

Files at this revision

API Documentation at this revision

Comitter:
ewoud
Date:
Wed Sep 23 09:44:06 2015 +0000
Parent:
2:6a4a2e355cd9
Child:
4:e481566a5b54
Commit message:
potmeter controls position without any control tricks

Changed in this revision

QEI.lib Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/QEI.lib	Wed Sep 23 09:44:06 2015 +0000
@@ -0,0 +1,1 @@
+http://developer.mbed.org/users/aberk/code/QEI/#5c2ad81551aa
--- a/main.cpp	Thu Sep 17 08:38:02 2015 +0000
+++ b/main.cpp	Wed Sep 23 09:44:06 2015 +0000
@@ -1,13 +1,13 @@
 #include "mbed.h"
 #include "HIDScope.h"
-
+#include "QEI.h"
 
 // myled is an object of class PwmOut. It uses the LED_RED pin
 // in human speech: myled is an output that can be controlled with PWM. LED_RED is the pin which is connected to the output
 PwmOut myled2(D5);
 PwmOut myled1(D6);
 
-//DigitalOut motor1(D4);
+DigitalOut motor1direction(D7);
 // pot is an object of class AnalogIn. It uses the PTB0 pin
 // in human speech: pot is an analog input. You can read the voltage on pin PTB0
 AnalogIn pot1(A0);
@@ -15,7 +15,11 @@
 
 //HIDScope scope(1);
 Serial pc(USBTX, USBRX);
-
+QEI wheel (D12, D13, NC, 624);
+float lastpotread = 0;
+int countsPerRound = 32*131;
+float gototick;
+int currentpulses;
 //start 'main' function. Should be done once in every C(++) program
 int main()
 {
@@ -23,13 +27,30 @@
     //period of PWM signal is 10kHz. Every 100 microsecond a new PWM period is started
     myled1.period_ms(0.1);
     myled2.period_ms(0.1);
+    myled1=0.5;
     //motor1=1;
     //while 1 is unequal to zero. For humans: loop forever
     while(1) {
-        pc.printf("potvalue: %f \n",pot1.read());
+        currentpulses=wheel.getPulses();
+        gototick = pot1.read()*countsPerRound;
+        if (lastpotread != pot1.read()){
+            lastpotread=pot1.read();
+            pc.printf("potvalue: %f, position: %d \n\r",gototick,currentpulses);
+        }
         
-        myled1.write(pot1.read());
-        myled2.write(pot2.read());
+        if (gototick > wheel.getPulses())
+        {
+            motor1direction=0;
+            
+        }
+        else
+        {
+            motor1direction=1;
+        }
+        
+        
+        //myled1.write(pot1.read());
+        //myled2.write(pot2.read());
         //wait some time to give the LED output a few PWM cycles. Otherwise a new value is written before the previously set PWM period (of 100microseconds) is finished
         //This loop executes at roughly 100Hz (1/0.01s)
         wait(0.01);