11.06 - Versie beide motors draaien afhankelijk van potmeter
Dependencies: FastPWM MODSERIAL mbed
main.cpp@1:621c4bb5301d, 2018-09-28 (annotated)
- Committer:
- laurencebr
- Date:
- Fri Sep 28 09:05:37 2018 +0000
- Revision:
- 1:621c4bb5301d
- Parent:
- 0:dacd23e75c5c
Versie_beidemotorsdraaien
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
laurencebr | 0:dacd23e75c5c | 1 | #include "mbed.h" |
laurencebr | 0:dacd23e75c5c | 2 | #include "FastPWM.h" |
laurencebr | 0:dacd23e75c5c | 3 | #include "MODSERIAL.h" |
laurencebr | 0:dacd23e75c5c | 4 | |
laurencebr | 0:dacd23e75c5c | 5 | FastPWM motor1_pwm(D5); |
laurencebr | 0:dacd23e75c5c | 6 | DigitalOut motor1_richting(D4); |
laurencebr | 1:621c4bb5301d | 7 | FastPWM motor2_pwm(D6); |
laurencebr | 1:621c4bb5301d | 8 | DigitalOut motor2_richting(D7); |
laurencebr | 0:dacd23e75c5c | 9 | |
laurencebr | 0:dacd23e75c5c | 10 | AnalogIn pot1(A1); |
laurencebr | 0:dacd23e75c5c | 11 | AnalogIn pot2(A0); |
laurencebr | 0:dacd23e75c5c | 12 | MODSERIAL pc(USBTX, USBRX); |
laurencebr | 0:dacd23e75c5c | 13 | |
laurencebr | 0:dacd23e75c5c | 14 | |
laurencebr | 0:dacd23e75c5c | 15 | |
laurencebr | 0:dacd23e75c5c | 16 | int main() |
laurencebr | 0:dacd23e75c5c | 17 | { |
laurencebr | 0:dacd23e75c5c | 18 | int frequency_pwm = 16700; //16.7 kHz PWM |
laurencebr | 0:dacd23e75c5c | 19 | |
laurencebr | 0:dacd23e75c5c | 20 | |
laurencebr | 0:dacd23e75c5c | 21 | motor1_pwm.period(1.0/frequency_pwm); // T = 1/f |
laurencebr | 0:dacd23e75c5c | 22 | |
laurencebr | 0:dacd23e75c5c | 23 | while(true){ |
laurencebr | 0:dacd23e75c5c | 24 | |
laurencebr | 0:dacd23e75c5c | 25 | pc.baud(115200); |
laurencebr | 0:dacd23e75c5c | 26 | |
laurencebr | 0:dacd23e75c5c | 27 | float AnalogVoltage1 = pot1.read()*2 - 1; |
laurencebr | 0:dacd23e75c5c | 28 | float AnalogVoltage2 = pot2.read()*2 - 1; |
laurencebr | 0:dacd23e75c5c | 29 | pc.printf("pot1 = %f \t pot2 = %f \r\n", AnalogVoltage1, AnalogVoltage2); |
laurencebr | 0:dacd23e75c5c | 30 | |
laurencebr | 1:621c4bb5301d | 31 | //Motor1 |
laurencebr | 1:621c4bb5301d | 32 | |
laurencebr | 0:dacd23e75c5c | 33 | if (AnalogVoltage1 <= 0) { |
laurencebr | 0:dacd23e75c5c | 34 | motor1_richting = 0; |
laurencebr | 0:dacd23e75c5c | 35 | motor1_pwm.write(-AnalogVoltage1); //write Duty cycle |
laurencebr | 0:dacd23e75c5c | 36 | } |
laurencebr | 0:dacd23e75c5c | 37 | if (AnalogVoltage1 >= 0) { |
laurencebr | 0:dacd23e75c5c | 38 | motor1_richting = 1; |
laurencebr | 0:dacd23e75c5c | 39 | motor1_pwm.write(AnalogVoltage1); //write Duty cycle |
laurencebr | 0:dacd23e75c5c | 40 | } |
laurencebr | 0:dacd23e75c5c | 41 | |
laurencebr | 1:621c4bb5301d | 42 | //Motor 2 |
laurencebr | 1:621c4bb5301d | 43 | |
laurencebr | 1:621c4bb5301d | 44 | if (AnalogVoltage2 <= 0) { |
laurencebr | 1:621c4bb5301d | 45 | motor2_richting = 0; |
laurencebr | 1:621c4bb5301d | 46 | motor2_pwm.write(-AnalogVoltage2); //write Duty cycle |
laurencebr | 1:621c4bb5301d | 47 | } |
laurencebr | 1:621c4bb5301d | 48 | if (AnalogVoltage2 >= 0) { |
laurencebr | 1:621c4bb5301d | 49 | motor2_richting = 1; |
laurencebr | 1:621c4bb5301d | 50 | motor2_pwm.write(AnalogVoltage2); //write Duty cycle |
laurencebr | 1:621c4bb5301d | 51 | } |
laurencebr | 1:621c4bb5301d | 52 | |
laurencebr | 0:dacd23e75c5c | 53 | |
laurencebr | 0:dacd23e75c5c | 54 | |
laurencebr | 0:dacd23e75c5c | 55 | } |
laurencebr | 0:dacd23e75c5c | 56 | } |