motor aansturing moet lineair zijn is het niet

Dependencies:   MODSERIAL Encoder mbed HIDScope

Committer:
Zeekat
Date:
Mon Sep 28 09:16:01 2015 +0000
Revision:
2:bcd68150136c
Parent:
1:8918d924f625
Child:
3:c9f9db6581bc
links vol-langzaam recht langzaam-vol

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Zeekat 0:5ea1875b307a 1 #include "mbed.h"
Zeekat 0:5ea1875b307a 2
Zeekat 0:5ea1875b307a 3 //MOTOR
Zeekat 0:5ea1875b307a 4 // motor 1 en 2 zijn omgedraait
Zeekat 0:5ea1875b307a 5 // pinnen motor 1 -> pinnen motor 2
Zeekat 0:5ea1875b307a 6
Zeekat 0:5ea1875b307a 7 //motor 1 gegevens
Zeekat 0:5ea1875b307a 8 PwmOut motor1_aan(D6); // PWM signaal motor 2 (uit sheets)
Zeekat 0:5ea1875b307a 9 DigitalOut motor1_rich(D7); // digitaal signaal voor richting
Zeekat 0:5ea1875b307a 10 // einde motor 1
Zeekat 0:5ea1875b307a 11
Zeekat 0:5ea1875b307a 12 //motor 2 gegevens
Zeekat 0:5ea1875b307a 13 PwmOut motor2_aan(D5); // PWM signaal motor 1 (uit sheets)
Zeekat 0:5ea1875b307a 14 DigitalOut motor2_rich(D4); // digitaal signaal voor richting
Zeekat 0:5ea1875b307a 15 // einde motor 1
Zeekat 0:5ea1875b307a 16 //EINDE MOTOR
Zeekat 0:5ea1875b307a 17
Zeekat 0:5ea1875b307a 18
Zeekat 0:5ea1875b307a 19 //POTMETERS
Zeekat 0:5ea1875b307a 20 AnalogIn potleft(A1);
Zeekat 0:5ea1875b307a 21 AnalogIn potright(A0);
Zeekat 0:5ea1875b307a 22
Zeekat 0:5ea1875b307a 23 void move_mot1(float left)
Zeekat 0:5ea1875b307a 24 {
Zeekat 0:5ea1875b307a 25 if(left < 0.4)
Zeekat 1:8918d924f625 26 {
Zeekat 1:8918d924f625 27 float leftin = left*2.5 ;
Zeekat 1:8918d924f625 28 motor1_aan.write(leftin);
Zeekat 0:5ea1875b307a 29 motor1_rich.write(0);
Zeekat 0:5ea1875b307a 30 }
Zeekat 0:5ea1875b307a 31 else if(left > 0.4 && left < 0.6)
Zeekat 0:5ea1875b307a 32 {
Zeekat 0:5ea1875b307a 33 motor1_aan.write(0);
Zeekat 0:5ea1875b307a 34 }
Zeekat 0:5ea1875b307a 35 else if(left > 0.6)
Zeekat 0:5ea1875b307a 36 {
Zeekat 2:bcd68150136c 37 float leftin = (left-0.6)*2.5;
Zeekat 1:8918d924f625 38 motor1_aan.write(leftin);
Zeekat 0:5ea1875b307a 39 motor1_rich.write(1);
Zeekat 0:5ea1875b307a 40 }
Zeekat 0:5ea1875b307a 41 }
Zeekat 0:5ea1875b307a 42
Zeekat 0:5ea1875b307a 43 void move_mot2(float right)
Zeekat 0:5ea1875b307a 44 {
Zeekat 0:5ea1875b307a 45 if(right < 0.4)
Zeekat 0:5ea1875b307a 46 {
Zeekat 1:8918d924f625 47 float rightin = right*2.5;
Zeekat 1:8918d924f625 48 motor2_aan.write(rightin);
Zeekat 0:5ea1875b307a 49 motor2_rich.write(0);
Zeekat 0:5ea1875b307a 50 }
Zeekat 0:5ea1875b307a 51 else if(right > 0.4 && right < 0.6)
Zeekat 0:5ea1875b307a 52 {
Zeekat 0:5ea1875b307a 53 motor2_aan.write(0);
Zeekat 0:5ea1875b307a 54 }
Zeekat 0:5ea1875b307a 55 else if(right > 0.6)
Zeekat 0:5ea1875b307a 56 {
Zeekat 2:bcd68150136c 57 float rightin = (right-0.6)*2.5;
Zeekat 1:8918d924f625 58 motor2_aan.write(rightin);
Zeekat 0:5ea1875b307a 59 motor2_rich.write(1);
Zeekat 0:5ea1875b307a 60 }
Zeekat 0:5ea1875b307a 61 }
Zeekat 0:5ea1875b307a 62
Zeekat 0:5ea1875b307a 63
Zeekat 0:5ea1875b307a 64
Zeekat 0:5ea1875b307a 65 int main()
Zeekat 0:5ea1875b307a 66 {
Zeekat 0:5ea1875b307a 67
Zeekat 0:5ea1875b307a 68 while(true)
Zeekat 0:5ea1875b307a 69 {
Zeekat 0:5ea1875b307a 70 float left = potleft.read();
Zeekat 0:5ea1875b307a 71 float right = potright.read();
Zeekat 0:5ea1875b307a 72 move_mot1(left);
Zeekat 0:5ea1875b307a 73 move_mot2(right);
Zeekat 0:5ea1875b307a 74 wait(0.01f);
Zeekat 0:5ea1875b307a 75 }
Zeekat 0:5ea1875b307a 76 }