potmeter motor aansturing

Dependencies:   MODSERIAL mbed Project_script_encoder QEI

Fork of Project_script by Marijke Zondag

Committer:
MarijkeZondag
Date:
Fri Nov 02 07:58:12 2018 +0000
Revision:
24:b995fff06d4e
Parent:
23:d8ab6dcc48ec
blabla

Who changed what in which revision?

UserRevisionLine numberNew contents of line
vsluiter 0:c8f15874531b 1 #include "mbed.h"
vsluiter 0:c8f15874531b 2 #include "MODSERIAL.h"
vsluiter 0:c8f15874531b 3
MarijkeZondag 9:c722418997b5 4 AnalogIn potmetervalue1 (A1);
MarijkeZondag 9:c722418997b5 5 AnalogIn potmetervalue2 (A2);
MarijkeZondag 9:c722418997b5 6 DigitalIn button2 (D10); //Let op, is deze niet bezet?
MarijkeZondag 9:c722418997b5 7 InterruptIn encoderA (D9);
MarijkeZondag 9:c722418997b5 8 InterruptIn encoderB (D8);
MarijkeZondag 6:f4bbb73f3989 9
MarijkeZondag 9:c722418997b5 10 DigitalOut directionpin1 (D4);
MarijkeZondag 9:c722418997b5 11 DigitalOut directionpin2 (D7);
MarijkeZondag 9:c722418997b5 12 PwmOut pwmpin1 (D5);
MarijkeZondag 9:c722418997b5 13 PwmOut pwmpin2 (D6);
MarijkeZondag 9:c722418997b5 14
MarijkeZondag 6:f4bbb73f3989 15
vsluiter 0:c8f15874531b 16 MODSERIAL pc(USBTX, USBRX);
vsluiter 0:c8f15874531b 17
MarijkeZondag 9:c722418997b5 18
MarijkeZondag 9:c722418997b5 19 //Global variables
MarijkeZondag 8:895d941a5910 20 int encoder = 0;
MarijkeZondag 8:895d941a5910 21
MarijkeZondag 9:c722418997b5 22
MarijkeZondag 9:c722418997b5 23 //Functions
MarijkeZondag 8:895d941a5910 24 void encoderA_rise()
MarijkeZondag 8:895d941a5910 25 {
MarijkeZondag 8:895d941a5910 26 if(encoderB==false)
MarijkeZondag 8:895d941a5910 27 {
MarijkeZondag 8:895d941a5910 28 encoder++;
MarijkeZondag 8:895d941a5910 29 }
MarijkeZondag 8:895d941a5910 30 else
MarijkeZondag 8:895d941a5910 31 {
MarijkeZondag 8:895d941a5910 32 encoder--;
MarijkeZondag 8:895d941a5910 33 }
MarijkeZondag 8:895d941a5910 34 }
MarijkeZondag 8:895d941a5910 35
MarijkeZondag 8:895d941a5910 36 void encoderA_fall()
MarijkeZondag 8:895d941a5910 37 {
MarijkeZondag 8:895d941a5910 38 if(encoderB==true)
MarijkeZondag 8:895d941a5910 39 {
MarijkeZondag 8:895d941a5910 40 encoder++;
MarijkeZondag 8:895d941a5910 41 }
MarijkeZondag 8:895d941a5910 42 else
MarijkeZondag 8:895d941a5910 43 {
MarijkeZondag 8:895d941a5910 44 encoder--;
MarijkeZondag 8:895d941a5910 45 }
MarijkeZondag 8:895d941a5910 46 }
MarijkeZondag 8:895d941a5910 47
MarijkeZondag 8:895d941a5910 48 void encoderB_rise()
MarijkeZondag 8:895d941a5910 49 {
MarijkeZondag 8:895d941a5910 50 if(encoderA==true)
MarijkeZondag 8:895d941a5910 51 {
MarijkeZondag 8:895d941a5910 52 encoder++;
MarijkeZondag 8:895d941a5910 53 }
MarijkeZondag 8:895d941a5910 54 else
MarijkeZondag 8:895d941a5910 55 {
MarijkeZondag 8:895d941a5910 56 encoder--;
MarijkeZondag 8:895d941a5910 57 }
MarijkeZondag 8:895d941a5910 58 }
MarijkeZondag 8:895d941a5910 59
MarijkeZondag 8:895d941a5910 60 void encoderB_fall()
MarijkeZondag 8:895d941a5910 61 {
MarijkeZondag 8:895d941a5910 62 if(encoderA==false)
MarijkeZondag 8:895d941a5910 63 {
MarijkeZondag 8:895d941a5910 64 encoder++;
MarijkeZondag 8:895d941a5910 65 }
MarijkeZondag 8:895d941a5910 66 else
MarijkeZondag 8:895d941a5910 67 {
MarijkeZondag 8:895d941a5910 68 encoder--;
MarijkeZondag 8:895d941a5910 69 }
MarijkeZondag 8:895d941a5910 70 }
MarijkeZondag 8:895d941a5910 71
MarijkeZondag 8:895d941a5910 72
MarijkeZondag 9:c722418997b5 73 // Main function start.
MarijkeZondag 8:895d941a5910 74
vsluiter 0:c8f15874531b 75 int main()
MarijkeZondag 3:a3ad58758696 76 {
vsluiter 0:c8f15874531b 77 pc.baud(115200);
MarijkeZondag 6:f4bbb73f3989 78 pc.printf("hello\n\r");
MarijkeZondag 6:f4bbb73f3989 79 pwmpin1.period_us(60); //60 microseconds PWM period, 16.7 kHz
MarijkeZondag 6:f4bbb73f3989 80
MarijkeZondag 8:895d941a5910 81 encoderA.rise(&encoderA_rise);
MarijkeZondag 8:895d941a5910 82 encoderA.fall(&encoderA_fall);
MarijkeZondag 8:895d941a5910 83 encoderB.rise(&encoderB_rise);
MarijkeZondag 8:895d941a5910 84 encoderB.fall(&encoderB_fall);
vsluiter 0:c8f15874531b 85
MarijkeZondag 2:2f4444f1504d 86 while (true)
MarijkeZondag 2:2f4444f1504d 87 {
MarijkeZondag 6:f4bbb73f3989 88
MarijkeZondag 6:f4bbb73f3989 89 float u1 = potmetervalue1;
MarijkeZondag 6:f4bbb73f3989 90 float u2 = potmetervalue2;
MarijkeZondag 6:f4bbb73f3989 91
MarijkeZondag 6:f4bbb73f3989 92 float m1 = ((u1*2.0f)-1.0f);
MarijkeZondag 6:f4bbb73f3989 93 float m2 = ((u2*2.0f)-1.0f);
MarijkeZondag 23:d8ab6dcc48ec 94
MarijkeZondag 23:d8ab6dcc48ec 95 //pc.printf("motorwaarde 1: %f en %f\n\r ",m1,m2);
MarijkeZondag 7:f32005d13749 96
MarijkeZondag 23:d8ab6dcc48ec 97 if(m1>0.5)
MarijkeZondag 23:d8ab6dcc48ec 98 {
MarijkeZondag 23:d8ab6dcc48ec 99 pc.printf("Ik heet Klaas\n\r");
MarijkeZondag 23:d8ab6dcc48ec 100 directionpin1.write(1); //Indien waar, motor draait rechtsom. Indien niet waar, motor draait linksom.
MarijkeZondag 23:d8ab6dcc48ec 101 pwmpin1 = fabs(m1);
MarijkeZondag 24:b995fff06d4e 102 //wait(1.0f); //zodat de code niet oneindig doorgaat.
MarijkeZondag 9:c722418997b5 103
MarijkeZondag 23:d8ab6dcc48ec 104 }
MarijkeZondag 23:d8ab6dcc48ec 105 else if(m1<-0.5)
MarijkeZondag 23:d8ab6dcc48ec 106 {
MarijkeZondag 23:d8ab6dcc48ec 107 pc.printf("Ik heet Bert\n\r");
MarijkeZondag 23:d8ab6dcc48ec 108 directionpin1.write(0); //Indien waar, motor draait rechtsom. Indien niet waar, motor draait linksom.
MarijkeZondag 23:d8ab6dcc48ec 109 pwmpin1 = fabs(m1);
MarijkeZondag 24:b995fff06d4e 110 //wait(1.0f); //zodat de code niet oneindig doorgaat.
MarijkeZondag 23:d8ab6dcc48ec 111 }
MarijkeZondag 23:d8ab6dcc48ec 112 else
MarijkeZondag 23:d8ab6dcc48ec 113 {
MarijkeZondag 23:d8ab6dcc48ec 114 pwmpin1 = 0;
MarijkeZondag 23:d8ab6dcc48ec 115 }
MarijkeZondag 23:d8ab6dcc48ec 116
MarijkeZondag 23:d8ab6dcc48ec 117 if(m2>0.5)
MarijkeZondag 23:d8ab6dcc48ec 118 {
MarijkeZondag 23:d8ab6dcc48ec 119 pc.printf("Ik heet Maria\n\r");
MarijkeZondag 23:d8ab6dcc48ec 120 directionpin2.write(1); //Indien waar, motor draait rechtsom. Indien niet waar, motor draait linksom.
MarijkeZondag 23:d8ab6dcc48ec 121 pwmpin2 = fabs(m2);
MarijkeZondag 24:b995fff06d4e 122 // wait(1.0f); //zodat de code niet oneindig doorgaat.
MarijkeZondag 23:d8ab6dcc48ec 123
MarijkeZondag 23:d8ab6dcc48ec 124 }
MarijkeZondag 23:d8ab6dcc48ec 125 else if(m2<-0.5)
MarijkeZondag 23:d8ab6dcc48ec 126 {
MarijkeZondag 23:d8ab6dcc48ec 127 pc.printf("Ik heet Ellis\n\r");
MarijkeZondag 23:d8ab6dcc48ec 128 directionpin2.write(0); //Indien waar, motor draait rechtsom. Indien niet waar, motor draait linksom.
MarijkeZondag 23:d8ab6dcc48ec 129 pwmpin2 = fabs(m2);
MarijkeZondag 24:b995fff06d4e 130 // wait(1.0f); //zodat de code niet oneindig doorgaat.
MarijkeZondag 23:d8ab6dcc48ec 131 }
MarijkeZondag 23:d8ab6dcc48ec 132 else
MarijkeZondag 23:d8ab6dcc48ec 133 {
MarijkeZondag 23:d8ab6dcc48ec 134 pwmpin2 = 0;
MarijkeZondag 23:d8ab6dcc48ec 135 }
MarijkeZondag 23:d8ab6dcc48ec 136 pc.printf("M1 waarde %f en M2 waarde %f \r\n",m1,m2);
MarijkeZondag 23:d8ab6dcc48ec 137
MarijkeZondag 23:d8ab6dcc48ec 138 //pc.printf("Encoder count: %i \n\r",encoder); //We moeten de encoder counts nog omzetten naar radialen of graden?
vsluiter 0:c8f15874531b 139 }
vsluiter 0:c8f15874531b 140 }
MarijkeZondag 4:fbea05c8fe2b 141