PIR sensor based on: NUCLEO-L011K4 + PANASONIC PIR EKMC1603111

Dependencies:   mbed

Committer:
emcu
Date:
Sun Apr 01 22:11:36 2018 +0000
Revision:
0:39600c1c28c1
PIR sensor based on: NUCLEO-L011K4 + PANASONIC PIR EKMC1603111

Who changed what in which revision?

UserRevisionLine numberNew contents of line
emcu 0:39600c1c28c1 1 #include "mbed.h"
emcu 0:39600c1c28c1 2
emcu 0:39600c1c28c1 3 /*
emcu 0:39600c1c28c1 4
emcu 0:39600c1c28c1 5 By: www.emcu.eu
emcu 0:39600c1c28c1 6 Date: April 2018
emcu 0:39600c1c28c1 7 Components: NUCLEO-L011K4 + PANASONIC PIR EKMC1603111
emcu 0:39600c1c28c1 8 Connections:
emcu 0:39600c1c28c1 9
emcu 0:39600c1c28c1 10 PIR VCC -> PB_4
emcu 0:39600c1c28c1 11 PIR Signal -> PB_5
emcu 0:39600c1c28c1 12 PIR GND -> PA_11
emcu 0:39600c1c28c1 13
emcu 0:39600c1c28c1 14 Buzzer Vcc -> PA_9
emcu 0:39600c1c28c1 15 Buzzer GND -> GND of NUCLEO-L011K4
emcu 0:39600c1c28c1 16
emcu 0:39600c1c28c1 17 ATTENTION:
emcu 0:39600c1c28c1 18 For use the NUCLEO-L011K4 with an external power supply, you must do a tin soldering on JP1.
emcu 0:39600c1c28c1 19 See the NUCLEO-L011K4 datasheet at pg.11
emcu 0:39600c1c28c1 20 http://www.st.com/content/ccc/resource/technical/document/user_manual/e3/0e/88/05/e8/74/43/a0/DM00231744.pdf/files/DM00231744.pdf/jcr:content/translations/en.DM00231744.pdf
emcu 0:39600c1c28c1 21
emcu 0:39600c1c28c1 22 NUCLEO-L011K4 is available from here:
emcu 0:39600c1c28c1 23 *** http://www.newark.com/stmicroelectronics/nucleo-l011k4/dev-board-nucleo-32-mcu/dp/81Y3973?ost=NUCLEO-L011K4&ddkey=http%3Aen-US%2FElement14_US%2Fsearch
emcu 0:39600c1c28c1 24 *** https://www.mouser.it/ProductDetail/STMicroelectronics/NUCLEO-L011K4?qs=%2fha2pyFaduhQJSbhHAGqiYkL%252bo2vgvfhlGVOMPt1G42J4HVOM%2fj23Q%3d%3d
emcu 0:39600c1c28c1 25
emcu 0:39600c1c28c1 26 PANASONIC PIR EKMC1603111 is available from here:
emcu 0:39600c1c28c1 27 *** http://www.newark.com/panasonic-electric-works/ekmc1603111/pir-motion-sensor-digital-3vdc/dp/26T3945
emcu 0:39600c1c28c1 28 *** https://www.mouser.it/ProductDetail/Panasonic/EKMC1603111/?qs=sGAEpiMZZMvhQj7WZhFIAJaM7IUEh%252bHgM6uLDBL6vt0=&gclid=Cj0KCQjwhoLWBRD9ARIsADIRaxR7KH6LCSsPG5aDS1dEvlALL-ijmg-nd1XuzC_C1-15QGecG8rKbckaAn7AEALw_wcB
emcu 0:39600c1c28c1 29
emcu 0:39600c1c28c1 30
emcu 0:39600c1c28c1 31 */
emcu 0:39600c1c28c1 32
emcu 0:39600c1c28c1 33 DigitalOut myled(LED1);
emcu 0:39600c1c28c1 34 DigitalOut Buzzer(PA_9); // Drive Buzzer
emcu 0:39600c1c28c1 35
emcu 0:39600c1c28c1 36 // Drive PIR
emcu 0:39600c1c28c1 37 DigitalOut PIU(PB_4);
emcu 0:39600c1c28c1 38 DigitalOut GND(PA_11);
emcu 0:39600c1c28c1 39 DigitalIn ReadPIR(PB_5); // READ PIR status
emcu 0:39600c1c28c1 40
emcu 0:39600c1c28c1 41
emcu 0:39600c1c28c1 42
emcu 0:39600c1c28c1 43 uint8_t n=0;
emcu 0:39600c1c28c1 44
emcu 0:39600c1c28c1 45 int main()
emcu 0:39600c1c28c1 46 {
emcu 0:39600c1c28c1 47 Buzzer = 0;
emcu 0:39600c1c28c1 48 myled = 0;
emcu 0:39600c1c28c1 49
emcu 0:39600c1c28c1 50 // Configure PIR SIGNAL, GND and VCC
emcu 0:39600c1c28c1 51 ReadPIR.mode(PullDown);
emcu 0:39600c1c28c1 52 GND=0;
emcu 0:39600c1c28c1 53 wait(0.5);
emcu 0:39600c1c28c1 54 PIU=1;
emcu 0:39600c1c28c1 55 wait(0.5);
emcu 0:39600c1c28c1 56
emcu 0:39600c1c28c1 57 // Waiting PIR stabilization
emcu 0:39600c1c28c1 58 for (n=0; n<15; n++)
emcu 0:39600c1c28c1 59 {
emcu 0:39600c1c28c1 60 myled = !myled;
emcu 0:39600c1c28c1 61 wait(1);
emcu 0:39600c1c28c1 62 }
emcu 0:39600c1c28c1 63 myled = 0;
emcu 0:39600c1c28c1 64
emcu 0:39600c1c28c1 65 while(1)
emcu 0:39600c1c28c1 66 {
emcu 0:39600c1c28c1 67 // Check PIR status
emcu 0:39600c1c28c1 68 if (ReadPIR == 1) // PIR out at 1 == was detect a movement
emcu 0:39600c1c28c1 69 {
emcu 0:39600c1c28c1 70 for (n=0; n<20; n++)
emcu 0:39600c1c28c1 71 {
emcu 0:39600c1c28c1 72 Buzzer = !Buzzer;
emcu 0:39600c1c28c1 73 myled = !myled;
emcu 0:39600c1c28c1 74 wait(0.1); // 100 ms
emcu 0:39600c1c28c1 75 }
emcu 0:39600c1c28c1 76 }
emcu 0:39600c1c28c1 77 else // No movement
emcu 0:39600c1c28c1 78 {
emcu 0:39600c1c28c1 79 Buzzer = 0;
emcu 0:39600c1c28c1 80 myled = 0;
emcu 0:39600c1c28c1 81 }
emcu 0:39600c1c28c1 82 }
emcu 0:39600c1c28c1 83 }