Sakis Kasampalis
/
human-detector
using just a pot and tinfoil
human_detector.cpp@0:6e8da69e6440, 2016-11-19 (annotated)
- Committer:
- faif
- Date:
- Sat Nov 19 22:38:58 2016 +0000
- Revision:
- 0:6e8da69e6440
Human detector
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
faif | 0:6e8da69e6440 | 1 | #include "mbed.h" |
faif | 0:6e8da69e6440 | 2 | #include "human_detector.h" |
faif | 0:6e8da69e6440 | 3 | |
faif | 0:6e8da69e6440 | 4 | static const char CLS[] = "\x1B[2J"; // VT100 erase screen |
faif | 0:6e8da69e6440 | 5 | static const char HOME[] = "\x1B[H"; // VT100 home |
faif | 0:6e8da69e6440 | 6 | static const float DEBOUNCING_DELAY = 0.2; |
faif | 0:6e8da69e6440 | 7 | enum state { OFF = 0, ON = 1 }; |
faif | 0:6e8da69e6440 | 8 | |
faif | 0:6e8da69e6440 | 9 | int main() |
faif | 0:6e8da69e6440 | 10 | { |
faif | 0:6e8da69e6440 | 11 | clear_screen(); |
faif | 0:6e8da69e6440 | 12 | while (true) |
faif | 0:6e8da69e6440 | 13 | { |
faif | 0:6e8da69e6440 | 14 | init(potout, led); |
faif | 0:6e8da69e6440 | 15 | while (!potin) {} // wait until there's a pot (capacitor) charge |
faif | 0:6e8da69e6440 | 16 | alarm(led); |
faif | 0:6e8da69e6440 | 17 | } |
faif | 0:6e8da69e6440 | 18 | } |
faif | 0:6e8da69e6440 | 19 | |
faif | 0:6e8da69e6440 | 20 | void clear_screen() |
faif | 0:6e8da69e6440 | 21 | { |
faif | 0:6e8da69e6440 | 22 | pc.printf(CLS); |
faif | 0:6e8da69e6440 | 23 | pc.printf(HOME); |
faif | 0:6e8da69e6440 | 24 | } |
faif | 0:6e8da69e6440 | 25 | |
faif | 0:6e8da69e6440 | 26 | void init(DigitalOut& pot, DigitalOut& led) |
faif | 0:6e8da69e6440 | 27 | { |
faif | 0:6e8da69e6440 | 28 | pot = ON; |
faif | 0:6e8da69e6440 | 29 | led = OFF; |
faif | 0:6e8da69e6440 | 30 | } |
faif | 0:6e8da69e6440 | 31 | |
faif | 0:6e8da69e6440 | 32 | void alarm(DigitalOut& led) |
faif | 0:6e8da69e6440 | 33 | { |
faif | 0:6e8da69e6440 | 34 | led = ON; |
faif | 0:6e8da69e6440 | 35 | pc.printf("Human detected\r\n"); |
faif | 0:6e8da69e6440 | 36 | wait(DEBOUNCING_DELAY); |
faif | 0:6e8da69e6440 | 37 | } |