Lu-Hsuan Chen
/
motorcar_pid
motor car with PID running feature
main.cpp@4:982dcc2390a2, 2018-08-01 (annotated)
- Committer:
- cudaChen
- Date:
- Wed Aug 01 08:24:24 2018 +0000
- Revision:
- 4:982dcc2390a2
- Parent:
- 3:4be8f486a120
[milestone] finish the first version of motor car with PID feature
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
cudaChen | 0:6fbf8bc664ee | 1 | #include "mbed.h" |
cudaChen | 0:6fbf8bc664ee | 2 | |
cudaChen | 3:4be8f486a120 | 3 | #include "motorcar.h" |
cudaChen | 0:6fbf8bc664ee | 4 | |
cudaChen | 0:6fbf8bc664ee | 5 | DigitalOut led1(LED1); // LED indicating car is running |
cudaChen | 3:4be8f486a120 | 6 | DigitalIn pb(USER_BUTTON); // car activate button |
cudaChen | 0:6fbf8bc664ee | 7 | int lastButtonState = 0; |
cudaChen | 0:6fbf8bc664ee | 8 | bool ledState = false; |
cudaChen | 0:6fbf8bc664ee | 9 | |
cudaChen | 0:6fbf8bc664ee | 10 | // main() runs in its own thread in the OS |
cudaChen | 0:6fbf8bc664ee | 11 | int main() { |
cudaChen | 2:1dcd81fdef9e | 12 | //init(); |
cudaChen | 0:6fbf8bc664ee | 13 | |
cudaChen | 0:6fbf8bc664ee | 14 | while (true) { |
cudaChen | 0:6fbf8bc664ee | 15 | int reading1 = pb.read(); |
cudaChen | 0:6fbf8bc664ee | 16 | |
cudaChen | 0:6fbf8bc664ee | 17 | if(reading1 != lastButtonState) { |
cudaChen | 0:6fbf8bc664ee | 18 | wait_ms(20); |
cudaChen | 0:6fbf8bc664ee | 19 | |
cudaChen | 0:6fbf8bc664ee | 20 | int reading2 = pb.read(); |
cudaChen | 0:6fbf8bc664ee | 21 | |
cudaChen | 0:6fbf8bc664ee | 22 | if(reading2 == reading1) { |
cudaChen | 0:6fbf8bc664ee | 23 | lastButtonState = reading2; |
cudaChen | 0:6fbf8bc664ee | 24 | } |
cudaChen | 0:6fbf8bc664ee | 25 | |
cudaChen | 0:6fbf8bc664ee | 26 | if(lastButtonState == 1) { |
cudaChen | 0:6fbf8bc664ee | 27 | ledState = !ledState; |
cudaChen | 0:6fbf8bc664ee | 28 | } |
cudaChen | 0:6fbf8bc664ee | 29 | } |
cudaChen | 0:6fbf8bc664ee | 30 | |
cudaChen | 0:6fbf8bc664ee | 31 | led1.write(ledState); |
cudaChen | 0:6fbf8bc664ee | 32 | |
cudaChen | 3:4be8f486a120 | 33 | if(ledState) { |
cudaChen | 2:1dcd81fdef9e | 34 | readSensorValue(); |
cudaChen | 2:1dcd81fdef9e | 35 | |
cudaChen | 4:982dcc2390a2 | 36 | runPID(); |
cudaChen | 3:4be8f486a120 | 37 | } |
cudaChen | 0:6fbf8bc664ee | 38 | } |
cudaChen | 0:6fbf8bc664ee | 39 | } |
cudaChen | 0:6fbf8bc664ee | 40 |