Untuk Kontrol Atas
Dependencies: Motor mRotaryEncoder mbed
main.cpp@0:bfd2ba3d4b66, 2016-09-19 (annotated)
- Committer:
- danielgoodies
- Date:
- Mon Sep 19 15:38:00 2016 +0000
- Revision:
- 0:bfd2ba3d4b66
Kontrol Atas Muncrat
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
danielgoodies | 0:bfd2ba3d4b66 | 1 | #include "mbed.h" |
danielgoodies | 0:bfd2ba3d4b66 | 2 | #include "Motor.h" |
danielgoodies | 0:bfd2ba3d4b66 | 3 | |
danielgoodies | 0:bfd2ba3d4b66 | 4 | /* Pin Declaration */ |
danielgoodies | 0:bfd2ba3d4b66 | 5 | Motor Motor1(D6,D7,D8); |
danielgoodies | 0:bfd2ba3d4b66 | 6 | DigitalIn encoderpin1(D4); /*Encoder punya 2 buah pin input, 1 Vcc, 1 Ground */ |
danielgoodies | 0:bfd2ba3d4b66 | 7 | DigitalIn encoderpin2(D5); |
danielgoodies | 0:bfd2ba3d4b66 | 8 | |
danielgoodies | 0:bfd2ba3d4b66 | 9 | |
danielgoodies | 0:bfd2ba3d4b66 | 10 | /* Variable Declaration */ |
danielgoodies | 0:bfd2ba3d4b66 | 11 | int encoder0Pos = 0; |
danielgoodies | 0:bfd2ba3d4b66 | 12 | int encoder0PinALast = 0; |
danielgoodies | 0:bfd2ba3d4b66 | 13 | int n = 0; |
danielgoodies | 0:bfd2ba3d4b66 | 14 | int i = 0; |
danielgoodies | 0:bfd2ba3d4b66 | 15 | int boolean = 0; |
danielgoodies | 0:bfd2ba3d4b66 | 16 | |
danielgoodies | 0:bfd2ba3d4b66 | 17 | /* Main Program */ |
danielgoodies | 0:bfd2ba3d4b66 | 18 | int main() { |
danielgoodies | 0:bfd2ba3d4b66 | 19 | Serial pc(USBTX,USBRX); |
danielgoodies | 0:bfd2ba3d4b66 | 20 | pc.baud(9600); |
danielgoodies | 0:bfd2ba3d4b66 | 21 | |
danielgoodies | 0:bfd2ba3d4b66 | 22 | pc.printf(" Test Serial Monitor"); |
danielgoodies | 0:bfd2ba3d4b66 | 23 | while (1) { |
danielgoodies | 0:bfd2ba3d4b66 | 24 | /*if(i>=0 && i<=100 && boolean == 0) { |
danielgoodies | 0:bfd2ba3d4b66 | 25 | i++; |
danielgoodies | 0:bfd2ba3d4b66 | 26 | if(i==100) { |
danielgoodies | 0:bfd2ba3d4b66 | 27 | boolean = 1; |
danielgoodies | 0:bfd2ba3d4b66 | 28 | } |
danielgoodies | 0:bfd2ba3d4b66 | 29 | } |
danielgoodies | 0:bfd2ba3d4b66 | 30 | |
danielgoodies | 0:bfd2ba3d4b66 | 31 | if (i<=100 && i>=0 && boolean == 1) { |
danielgoodies | 0:bfd2ba3d4b66 | 32 | i--; |
danielgoodies | 0:bfd2ba3d4b66 | 33 | if(i==0) { |
danielgoodies | 0:bfd2ba3d4b66 | 34 | boolean = 0; |
danielgoodies | 0:bfd2ba3d4b66 | 35 | } |
danielgoodies | 0:bfd2ba3d4b66 | 36 | } */ |
danielgoodies | 0:bfd2ba3d4b66 | 37 | for (i = 100; i >= 0 ; i--) { |
danielgoodies | 0:bfd2ba3d4b66 | 38 | Motor1.speed(i*0.01); |
danielgoodies | 0:bfd2ba3d4b66 | 39 | wait_ms(20); |
danielgoodies | 0:bfd2ba3d4b66 | 40 | } |
danielgoodies | 0:bfd2ba3d4b66 | 41 | for (i = 0; i <= 100 ; i++) { |
danielgoodies | 0:bfd2ba3d4b66 | 42 | Motor1.speed(i*0.01); |
danielgoodies | 0:bfd2ba3d4b66 | 43 | wait_ms(20); |
danielgoodies | 0:bfd2ba3d4b66 | 44 | } |
danielgoodies | 0:bfd2ba3d4b66 | 45 | //Motor1.speed(0.5); |
danielgoodies | 0:bfd2ba3d4b66 | 46 | |
danielgoodies | 0:bfd2ba3d4b66 | 47 | n = encoderpin1; |
danielgoodies | 0:bfd2ba3d4b66 | 48 | if ((encoder0PinALast == 0) && (n == 1)) { |
danielgoodies | 0:bfd2ba3d4b66 | 49 | if ((encoderpin2) == 0) { |
danielgoodies | 0:bfd2ba3d4b66 | 50 | encoder0Pos--; |
danielgoodies | 0:bfd2ba3d4b66 | 51 | } else { |
danielgoodies | 0:bfd2ba3d4b66 | 52 | encoder0Pos++; |
danielgoodies | 0:bfd2ba3d4b66 | 53 | } |
danielgoodies | 0:bfd2ba3d4b66 | 54 | wait_ms(20); |
danielgoodies | 0:bfd2ba3d4b66 | 55 | pc.printf("%d/n", encoder0Pos); |
danielgoodies | 0:bfd2ba3d4b66 | 56 | } |
danielgoodies | 0:bfd2ba3d4b66 | 57 | encoder0PinALast = n; |
danielgoodies | 0:bfd2ba3d4b66 | 58 | } |
danielgoodies | 0:bfd2ba3d4b66 | 59 | } |