using just a pot and tinfoil

Dependencies:   mbed

Committer:
faif
Date:
Sat Nov 19 22:38:58 2016 +0000
Revision:
0:6e8da69e6440
Human detector

Who changed what in which revision?

UserRevisionLine numberNew 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 }