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.
Dependencies: Encoder HIDScope MODSERIAL mbed
Fork of TotalCodegr13V2 by
main.cpp@0:65ab9f79a4cc, 2015-10-19 (annotated)
- Committer:
- arunr
- Date:
- Mon Oct 19 09:31:16 2015 +0000
- Revision:
- 0:65ab9f79a4cc
- Child:
- 1:7d5e6bc2b314
Home position;
Who changed what in which revision?
| User | Revision | Line number | New contents of line | 
|---|---|---|---|
| arunr | 0:65ab9f79a4cc | 1 | #include "mbed.h" | 
| arunr | 0:65ab9f79a4cc | 2 | #include "encoder.h" | 
| arunr | 0:65ab9f79a4cc | 3 | #include "HIDScope.h" | 
| arunr | 0:65ab9f79a4cc | 4 | |
| arunr | 0:65ab9f79a4cc | 5 | DigitalOut motor1_direction(D4); | 
| arunr | 0:65ab9f79a4cc | 6 | PwmOut motor1_speed(D5); | 
| arunr | 0:65ab9f79a4cc | 7 | PwmOut led(D9); | 
| arunr | 0:65ab9f79a4cc | 8 | DigitalIn button_1(PTC6); //counterclockwise | 
| arunr | 0:65ab9f79a4cc | 9 | DigitalIn button_2(PTA4); //clockwise | 
| arunr | 0:65ab9f79a4cc | 10 | Encoder motor1(D12,D13); | 
| arunr | 0:65ab9f79a4cc | 11 | HIDScope scope(1); | 
| arunr | 0:65ab9f79a4cc | 12 | |
| arunr | 0:65ab9f79a4cc | 13 | |
| arunr | 0:65ab9f79a4cc | 14 | const int pressed = 0; | 
| arunr | 0:65ab9f79a4cc | 15 | |
| arunr | 0:65ab9f79a4cc | 16 | double H; | 
| arunr | 0:65ab9f79a4cc | 17 | double P; | 
| arunr | 0:65ab9f79a4cc | 18 | double D; | 
| arunr | 0:65ab9f79a4cc | 19 | |
| arunr | 0:65ab9f79a4cc | 20 | |
| arunr | 0:65ab9f79a4cc | 21 | void sethome(){ | 
| arunr | 0:65ab9f79a4cc | 22 | motor1.setPosition(0); | 
| arunr | 0:65ab9f79a4cc | 23 | H = motor1.getPosition(); | 
| arunr | 0:65ab9f79a4cc | 24 | } | 
| arunr | 0:65ab9f79a4cc | 25 | |
| arunr | 0:65ab9f79a4cc | 26 | void move_motor1_ccw (){ | 
| arunr | 0:65ab9f79a4cc | 27 | motor1_direction = 0; | 
| arunr | 0:65ab9f79a4cc | 28 | motor1_speed = 0.8; | 
| arunr | 0:65ab9f79a4cc | 29 | } | 
| arunr | 0:65ab9f79a4cc | 30 | |
| arunr | 0:65ab9f79a4cc | 31 | void move_motor1_cw (){ | 
| arunr | 0:65ab9f79a4cc | 32 | motor1_direction = 1; | 
| arunr | 0:65ab9f79a4cc | 33 | motor1_speed = 0.8; | 
| arunr | 0:65ab9f79a4cc | 34 | } | 
| arunr | 0:65ab9f79a4cc | 35 | |
| arunr | 0:65ab9f79a4cc | 36 | void movetohome(){ | 
| arunr | 0:65ab9f79a4cc | 37 | P = motor1.getPosition(); | 
| arunr | 0:65ab9f79a4cc | 38 | D = (P - H); | 
| arunr | 0:65ab9f79a4cc | 39 | |
| arunr | 0:65ab9f79a4cc | 40 | if (D == 0){ | 
| arunr | 0:65ab9f79a4cc | 41 | motor1_speed = 0; | 
| arunr | 0:65ab9f79a4cc | 42 | } | 
| arunr | 0:65ab9f79a4cc | 43 | else if (D > 0){ | 
| arunr | 0:65ab9f79a4cc | 44 | move_motor1_cw(); | 
| arunr | 0:65ab9f79a4cc | 45 | } | 
| arunr | 0:65ab9f79a4cc | 46 | else if (D < 0){ | 
| arunr | 0:65ab9f79a4cc | 47 | move_motor1_ccw(); | 
| arunr | 0:65ab9f79a4cc | 48 | } | 
| arunr | 0:65ab9f79a4cc | 49 | } | 
| arunr | 0:65ab9f79a4cc | 50 | |
| arunr | 0:65ab9f79a4cc | 51 | void move_motor1() | 
| arunr | 0:65ab9f79a4cc | 52 | { | 
| arunr | 0:65ab9f79a4cc | 53 | if (button_1 == pressed) { | 
| arunr | 0:65ab9f79a4cc | 54 | move_motor1_cw (); | 
| arunr | 0:65ab9f79a4cc | 55 | } | 
| arunr | 0:65ab9f79a4cc | 56 | else if (button_2 == pressed) { | 
| arunr | 0:65ab9f79a4cc | 57 | move_motor1_ccw (); | 
| arunr | 0:65ab9f79a4cc | 58 | } | 
| arunr | 0:65ab9f79a4cc | 59 | else movetohome(); | 
| arunr | 0:65ab9f79a4cc | 60 | } | 
| arunr | 0:65ab9f79a4cc | 61 | |
| arunr | 0:65ab9f79a4cc | 62 | void read_encoder1 () // aflezen van encoder via hidscope?? | 
| arunr | 0:65ab9f79a4cc | 63 | { | 
| arunr | 0:65ab9f79a4cc | 64 | scope.set(0,motor1.getPosition()); | 
| arunr | 0:65ab9f79a4cc | 65 | led.write(motor1.getPosition()/100.0); | 
| arunr | 0:65ab9f79a4cc | 66 | scope.send(); | 
| arunr | 0:65ab9f79a4cc | 67 | wait(0.2f); | 
| arunr | 0:65ab9f79a4cc | 68 | } | 
| arunr | 0:65ab9f79a4cc | 69 | |
| arunr | 0:65ab9f79a4cc | 70 | int main() | 
| arunr | 0:65ab9f79a4cc | 71 | { | 
| arunr | 0:65ab9f79a4cc | 72 | |
| arunr | 0:65ab9f79a4cc | 73 | sethome(); | 
| arunr | 0:65ab9f79a4cc | 74 | while (true) { | 
| arunr | 0:65ab9f79a4cc | 75 | read_encoder1(); | 
| arunr | 0:65ab9f79a4cc | 76 | move_motor1(); | 
| arunr | 0:65ab9f79a4cc | 77 | } | 
| arunr | 0:65ab9f79a4cc | 78 | } | 
