Silahkan dibaca ^_^
Dependencies: Motor mbed millis PID
main.cpp@0:24cb158c4064, 2016-09-22 (annotated)
- Committer:
- gustavaditya
- Date:
- Thu Sep 22 15:14:41 2016 +0000
- Revision:
- 0:24cb158c4064
- Child:
- 1:8d4fab4e069c
Coba Hitung RPM...Atas Bergairah
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
gustavaditya | 0:24cb158c4064 | 1 | #include "mbed.h" |
gustavaditya | 0:24cb158c4064 | 2 | #include "millis.h" |
gustavaditya | 0:24cb158c4064 | 3 | |
gustavaditya | 0:24cb158c4064 | 4 | int val; |
gustavaditya | 0:24cb158c4064 | 5 | |
gustavaditya | 0:24cb158c4064 | 6 | int encoder0Pos = 0; |
gustavaditya | 0:24cb158c4064 | 7 | int encoder0PinALast = 0; |
gustavaditya | 0:24cb158c4064 | 8 | int n = 0; |
gustavaditya | 0:24cb158c4064 | 9 | float rpm; |
gustavaditya | 0:24cb158c4064 | 10 | int start = 1; |
gustavaditya | 0:24cb158c4064 | 11 | unsigned long int previousMillis = 0; |
gustavaditya | 0:24cb158c4064 | 12 | |
gustavaditya | 0:24cb158c4064 | 13 | int main(void) { |
gustavaditya | 0:24cb158c4064 | 14 | |
gustavaditya | 0:24cb158c4064 | 15 | DigitalIn encoder0PinA(D3); |
gustavaditya | 0:24cb158c4064 | 16 | DigitalIn encoder0PinB(D4); |
gustavaditya | 0:24cb158c4064 | 17 | Serial pc(USBTX,USBRX); |
gustavaditya | 0:24cb158c4064 | 18 | pc.baud(9600); |
gustavaditya | 0:24cb158c4064 | 19 | startMillis(); |
gustavaditya | 0:24cb158c4064 | 20 | while(1){ |
gustavaditya | 0:24cb158c4064 | 21 | |
gustavaditya | 0:24cb158c4064 | 22 | // AnalogIn(A0); |
gustavaditya | 0:24cb158c4064 | 23 | |
gustavaditya | 0:24cb158c4064 | 24 | |
gustavaditya | 0:24cb158c4064 | 25 | unsigned long int currentMillis = millis(); |
gustavaditya | 0:24cb158c4064 | 26 | // int counter; |
gustavaditya | 0:24cb158c4064 | 27 | // counter=currentMillis/100; |
gustavaditya | 0:24cb158c4064 | 28 | |
gustavaditya | 0:24cb158c4064 | 29 | if (currentMillis-previousMillis==500) |
gustavaditya | 0:24cb158c4064 | 30 | { |
gustavaditya | 0:24cb158c4064 | 31 | previousMillis = currentMillis; |
gustavaditya | 0:24cb158c4064 | 32 | rpm = 120.0/7.0*encoder0Pos; |
gustavaditya | 0:24cb158c4064 | 33 | pc.printf ("Dalam 500 ms = %d ",encoder0Pos); |
gustavaditya | 0:24cb158c4064 | 34 | pc.printf ("rpm = %.0f \n",rpm); |
gustavaditya | 0:24cb158c4064 | 35 | encoder0Pos = 0; |
gustavaditya | 0:24cb158c4064 | 36 | } |
gustavaditya | 0:24cb158c4064 | 37 | |
gustavaditya | 0:24cb158c4064 | 38 | else |
gustavaditya | 0:24cb158c4064 | 39 | { |
gustavaditya | 0:24cb158c4064 | 40 | n = encoder0PinA; |
gustavaditya | 0:24cb158c4064 | 41 | if ((!encoder0PinALast) && (n)) |
gustavaditya | 0:24cb158c4064 | 42 | { |
gustavaditya | 0:24cb158c4064 | 43 | if (!encoder0PinB) |
gustavaditya | 0:24cb158c4064 | 44 | { |
gustavaditya | 0:24cb158c4064 | 45 | encoder0Pos--; |
gustavaditya | 0:24cb158c4064 | 46 | } else { |
gustavaditya | 0:24cb158c4064 | 47 | encoder0Pos++; |
gustavaditya | 0:24cb158c4064 | 48 | } |
gustavaditya | 0:24cb158c4064 | 49 | //pc.printf ("%d \n",encoder0Pos); |
gustavaditya | 0:24cb158c4064 | 50 | } |
gustavaditya | 0:24cb158c4064 | 51 | encoder0PinALast = n; |
gustavaditya | 0:24cb158c4064 | 52 | } |
gustavaditya | 0:24cb158c4064 | 53 | } |
gustavaditya | 0:24cb158c4064 | 54 | } |