Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
main.cpp@2:f381fc3a8eaf, 2020-02-26 (annotated)
- Committer:
- wengefa1
- Date:
- Wed Feb 26 14:20:16 2020 +0000
- Revision:
- 2:f381fc3a8eaf
- Parent:
- 1:8b600c187fe6
Motor Controller added
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| wengefa1 | 0:c88f41ac2cb7 | 1 | #include "mbed.h" |
| wengefa1 | 0:c88f41ac2cb7 | 2 | #include "IRSensor.h" |
| wengefa1 | 2:f381fc3a8eaf | 3 | #include "Controller.h" |
| wengefa1 | 0:c88f41ac2cb7 | 4 | |
| wengefa1 | 0:c88f41ac2cb7 | 5 | DigitalOut myled(LED1); |
| wengefa1 | 0:c88f41ac2cb7 | 6 | DigitalIn mybutton(BUTTON1); |
| wengefa1 | 0:c88f41ac2cb7 | 7 | |
| wengefa1 | 0:c88f41ac2cb7 | 8 | AnalogIn v_distance(PA_0); // Kreieren der Ein- und Ausgangsobjekte |
| wengefa1 | 0:c88f41ac2cb7 | 9 | DigitalOut enable(PG_1); |
| wengefa1 | 0:c88f41ac2cb7 | 10 | DigitalOut bit0(PF_0); |
| wengefa1 | 0:c88f41ac2cb7 | 11 | DigitalOut bit1(PF_1); |
| wengefa1 | 0:c88f41ac2cb7 | 12 | DigitalOut bit2(PF_2); |
| wengefa1 | 0:c88f41ac2cb7 | 13 | |
| wengefa1 | 0:c88f41ac2cb7 | 14 | DigitalOut led0(PD_4); |
| wengefa1 | 0:c88f41ac2cb7 | 15 | DigitalOut led1(PD_3); |
| wengefa1 | 0:c88f41ac2cb7 | 16 | DigitalOut led2(PD_6); |
| wengefa1 | 0:c88f41ac2cb7 | 17 | DigitalOut led3(PD_2); |
| wengefa1 | 0:c88f41ac2cb7 | 18 | DigitalOut led4(PD_7); |
| wengefa1 | 0:c88f41ac2cb7 | 19 | DigitalOut led5(PD_5); |
| wengefa1 | 0:c88f41ac2cb7 | 20 | |
| wengefa1 | 1:8b600c187fe6 | 21 | DigitalOut en_Motor(PG_0); |
| wengefa1 | 1:8b600c187fe6 | 22 | DigitalIn Error_Motor(PD_1); |
| wengefa1 | 1:8b600c187fe6 | 23 | DigitalIn Warn_Motor(PD_0); |
| wengefa1 | 2:f381fc3a8eaf | 24 | PwmOut MotorPWMLeft(PF_9); |
| wengefa1 | 2:f381fc3a8eaf | 25 | PwmOut MotorPWMRight(PF_8); |
| wengefa1 | 2:f381fc3a8eaf | 26 | EncoderCounter cnt_Left(PD_12,PD_13); |
| wengefa1 | 2:f381fc3a8eaf | 27 | EncoderCounter cnt_Right(PB_4, PC_7); |
| wengefa1 | 0:c88f41ac2cb7 | 28 | |
| wengefa1 | 0:c88f41ac2cb7 | 29 | IRSensor S_hinten(v_distance, bit0 , bit1, bit2, 0); |
| wengefa1 | 0:c88f41ac2cb7 | 30 | IRSensor S_hinten_links(v_distance, bit0 , bit1, bit2, 1); |
| wengefa1 | 0:c88f41ac2cb7 | 31 | IRSensor S_vorne_links(v_distance, bit0 , bit1, bit2, 2); |
| wengefa1 | 0:c88f41ac2cb7 | 32 | IRSensor S_vorne(v_distance, bit0 , bit1, bit2, 3); |
| wengefa1 | 0:c88f41ac2cb7 | 33 | IRSensor S_vorne_rechts(v_distance, bit0 , bit1, bit2, 4); |
| wengefa1 | 0:c88f41ac2cb7 | 34 | IRSensor S_hinten_rechts(v_distance, bit0 , bit1, bit2, 5); |
| wengefa1 | 0:c88f41ac2cb7 | 35 | |
| wengefa1 | 2:f381fc3a8eaf | 36 | Controller controller(MotorPWMLeft, MotorPWMRight, cnt_Left, cnt_Right); |
| wengefa1 | 0:c88f41ac2cb7 | 37 | int main() { |
| wengefa1 | 1:8b600c187fe6 | 38 | //Set Motor Settings |
| wengefa1 | 1:8b600c187fe6 | 39 | en_Motor = 1; |
| wengefa1 | 1:8b600c187fe6 | 40 | |
| wengefa1 | 2:f381fc3a8eaf | 41 | //Set IR Settings |
| wengefa1 | 0:c88f41ac2cb7 | 42 | enable = 1; |
| wengefa1 | 1:8b600c187fe6 | 43 | |
| wengefa1 | 1:8b600c187fe6 | 44 | |
| wengefa1 | 0:c88f41ac2cb7 | 45 | while(1) { |
| wengefa1 | 2:f381fc3a8eaf | 46 | float dist_hinten = S_hinten.read(); // gibt die Distanz in [m] zurueck |
| wengefa1 | 2:f381fc3a8eaf | 47 | float dist_hinten_links = S_hinten_links.read(); |
| wengefa1 | 2:f381fc3a8eaf | 48 | float dist_vorne_links= S_vorne_links.read(); |
| wengefa1 | 2:f381fc3a8eaf | 49 | float dist_vorne = S_vorne.read(); |
| wengefa1 | 2:f381fc3a8eaf | 50 | float dist_vorne_rechts = S_vorne_rechts.read(); |
| wengefa1 | 2:f381fc3a8eaf | 51 | float dist_hinten_rechts = S_hinten_rechts.read(); |
| wengefa1 | 2:f381fc3a8eaf | 52 | |
| wengefa1 | 0:c88f41ac2cb7 | 53 | |
| wengefa1 | 2:f381fc3a8eaf | 54 | if(dist_hinten < 0.2f){ |
| wengefa1 | 0:c88f41ac2cb7 | 55 | led0 = 1; |
| wengefa1 | 0:c88f41ac2cb7 | 56 | }else{ |
| wengefa1 | 0:c88f41ac2cb7 | 57 | led0 = 0; |
| wengefa1 | 0:c88f41ac2cb7 | 58 | } |
| wengefa1 | 2:f381fc3a8eaf | 59 | if(dist_hinten_links < 0.2f){ |
| wengefa1 | 0:c88f41ac2cb7 | 60 | led1 = 1; |
| wengefa1 | 0:c88f41ac2cb7 | 61 | }else{ |
| wengefa1 | 0:c88f41ac2cb7 | 62 | led1 = 0; |
| wengefa1 | 0:c88f41ac2cb7 | 63 | } |
| wengefa1 | 2:f381fc3a8eaf | 64 | if(dist_vorne_links < 0.2f){ |
| wengefa1 | 0:c88f41ac2cb7 | 65 | led2 = 1; |
| wengefa1 | 0:c88f41ac2cb7 | 66 | }else{ |
| wengefa1 | 0:c88f41ac2cb7 | 67 | led2 = 0; |
| wengefa1 | 0:c88f41ac2cb7 | 68 | } |
| wengefa1 | 2:f381fc3a8eaf | 69 | if(dist_vorne < 0.2f){ |
| wengefa1 | 0:c88f41ac2cb7 | 70 | led3 = 1; |
| wengefa1 | 0:c88f41ac2cb7 | 71 | }else{ |
| wengefa1 | 0:c88f41ac2cb7 | 72 | led3 = 0; |
| wengefa1 | 0:c88f41ac2cb7 | 73 | } |
| wengefa1 | 2:f381fc3a8eaf | 74 | if(dist_vorne_rechts < 0.2f){ |
| wengefa1 | 0:c88f41ac2cb7 | 75 | led4 = 1; |
| wengefa1 | 0:c88f41ac2cb7 | 76 | }else{ |
| wengefa1 | 0:c88f41ac2cb7 | 77 | led4 = 0; |
| wengefa1 | 0:c88f41ac2cb7 | 78 | } |
| wengefa1 | 2:f381fc3a8eaf | 79 | if(dist_hinten_rechts < 0.2f){ |
| wengefa1 | 0:c88f41ac2cb7 | 80 | led5 = 1; |
| wengefa1 | 0:c88f41ac2cb7 | 81 | }else{ |
| wengefa1 | 0:c88f41ac2cb7 | 82 | led5 = 0; |
| wengefa1 | 0:c88f41ac2cb7 | 83 | } |
| wengefa1 | 2:f381fc3a8eaf | 84 | |
| wengefa1 | 2:f381fc3a8eaf | 85 | controller.setDesiredSpeedLeft(50.0); |
| wengefa1 | 2:f381fc3a8eaf | 86 | controller.setDesiredSpeedRight(-50.0); |
| wengefa1 | 2:f381fc3a8eaf | 87 | |
| wengefa1 | 2:f381fc3a8eaf | 88 | printf("Soll Links:%f Ist Links%f Soll Rechts:%f Ist Rechts:%f \n\r",controller.getDesSpeedLeft(),controller.getSpeedLeft(),controller.getDesSpeedRight(),controller.getSpeedRight()); |
| wengefa1 | 2:f381fc3a8eaf | 89 | |
| wengefa1 | 0:c88f41ac2cb7 | 90 | } |
| wengefa1 | 0:c88f41ac2cb7 | 91 | } |