this simple program makes the outputshaft follow the position of the potmeter

Dependencies:   Encoder HIDScope MODSERIAL mbed

Files at this revision

API Documentation at this revision

Comitter:
Gerth
Date:
Tue Sep 22 11:52:38 2015 +0000
Commit message:
with this simple program the outputshaft follows the potmeter;

Changed in this revision

Encoder.lib Show annotated file Show diff for this revision Revisions of this file
HIDScope.lib Show annotated file Show diff for this revision Revisions of this file
MODSERIAL.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
mbed.bld Show annotated file Show diff for this revision Revisions of this file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Encoder.lib	Tue Sep 22 11:52:38 2015 +0000
@@ -0,0 +1,1 @@
+http://developer.mbed.org/users/vsluiter/code/Encoder/#18b000b443af
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/HIDScope.lib	Tue Sep 22 11:52:38 2015 +0000
@@ -0,0 +1,1 @@
+http://developer.mbed.org/users/tomlankhorst/code/HIDScope/#5020a2c0934b
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/MODSERIAL.lib	Tue Sep 22 11:52:38 2015 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/Sissors/code/MODSERIAL/#8ef4f91813fd
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Tue Sep 22 11:52:38 2015 +0000
@@ -0,0 +1,91 @@
+#include "mbed.h"
+#include "HIDScope.h"
+#include "encoder.h"
+
+//hidscope met gewenst aantal kanalen
+HIDScope scope(2);
+
+//analoog in van potmeter 1
+AnalogIn pot1(A0);
+
+//signaal naar motor uit
+DigitalOut motor1_direction(D7);// draairichting motor 1 (1 is CW )
+PwmOut motor1_speed_control(D6);//aanstuursnelheid motor 1
+//PwmOut motor2_speed_control(D5);
+//DigitalOut motor2_direction(D4);
+
+//encoders
+Encoder motor1_encoder(D13,D12);
+//Encoder motor2_encoder(D11,D10);
+
+//tickers
+Ticker scopedataticker;
+Ticker adjust_positionticker;
+
+//frequenties
+const float motor_frequency_pwm = 1000; //1kHz PWM
+const float scopedatafrequency=50;// frequentie waarmee informatie naar de scope gestuurd wordt
+const float adjust_position_frequency=8; // frequentie waarmee de motorpositie aangepast wordt
+
+//constanten
+const float cpr=4200;
+
+
+//go flags
+bool scopedata_go=false;
+bool adjust_position_go=false;
+
+//activators
+void scopedata_activate()
+{
+    scopedata_go=true;
+}
+void adjust_position_activate()
+{
+    adjust_position_go=true;
+}
+
+//scopefunctie
+void scopedata()
+{
+    scope.set(0,pot1.read());
+    scope.set(1,motor1_encoder.getPosition());
+    scope.send();
+}
+
+//adjust position
+void adjust_position()
+{
+    float wantedposition=cpr*(pot1.read());
+    int actualposition=(motor1_encoder.getPosition());
+    if (wantedposition<=actualposition) {
+        motor1_direction=0;
+        motor1_speed_control=0.5;
+    } else if (wantedposition>=actualposition) {
+        motor1_direction=1;
+        motor1_speed_control=0.5;
+    } else {
+        motor1_direction=1;
+        motor1_speed_control=0;
+    }
+}
+
+int main ()
+{
+    motor1_speed_control.period(1/motor_frequency_pwm);
+
+    scopedataticker.attach(&scopedata_activate,1/scopedatafrequency);
+    adjust_positionticker.attach(&adjust_position_activate,1/adjust_position_frequency);
+
+    while(1) {
+        if (scopedata_go==true) {
+            scopedata();
+            scopedata_go=false;
+        }
+        if (adjust_position_go==true) {
+            adjust_position();
+            adjust_position_go=false;
+
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Tue Sep 22 11:52:38 2015 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/mbed_official/code/mbed/builds/4f6c30876dfa
\ No newline at end of file