Test funkcnosti HCSR501
Dependencies: USBDevice mbed millis
Diff: main.cpp
- Revision:
- 1:ca6f01b3d4ad
- Parent:
- 0:6238d7962d9f
--- a/main.cpp Thu Jan 11 18:42:04 2018 +0000 +++ b/main.cpp Sat Jan 13 11:48:55 2018 +0000 @@ -8,13 +8,56 @@ USBSerial serial; +int MeasureTriggerDelay(void) { + + uint8_t measureFlagON = 0; + uint8_t completeMeasureFlag = 0; + time_t triggerTime, offTime; + + while(!completeMeasureFlag){ + + if(digitalOutputPIR) { + + myLed = 0; + if(!measureFlagON) { + + triggerTime = millis() / 1000; + serial.printf("/KALIBRACE/ Detekovan pohyb /KALIBRACE/\r\n"); + + } + measureFlagON = 1; + + } + else { + + myLed = 1; + offTime = millis() / 1000; + serial.printf("/KALIBRACE/ Vystup odpojen, trigger delay je %d sekund /KALIBRACE/\r\n", offTime - triggerTime); + if(measureFlagON) completeMeasureFlag = 1; + + } + + } + + return (offTime - triggerTime); +} + int main() { + int triggerDelayTime = 3; //vychozi nastaveni 3 sekundy + uint8_t repeatTriggerCount = 0; int printFlag = 0; - int triggerTime = 0; + int triggerTime = 0; + myLed = 1; + millisStart(); - + wait(6); + + serial.printf("Zjistuji dobu aktivniho vystupu - trigger delay\r\n"); + while(digitalOutputPIR != 1) {}; + triggerDelayTime = MeasureTriggerDelay(); + while(1) { if(digitalOutputPIR) @@ -33,10 +76,12 @@ int offTime = millis() / 1000; if(printFlag) { + repeatTriggerCount = ((offTime - triggerTime) / triggerDelayTime) - 1; + if(((offTime - triggerTime) / triggerDelayTime - 1) < 0) repeatTriggerCount = 0; + serial.printf("LED vypnuta po %d sekundach od sepnuti\r\n", offTime - triggerTime); - serial.printf("Opakovany trigger probehl %dx krat\r\n", (offTime - triggerTime) / 4); - - + serial.printf("Opakovany trigger probehl %dx krat\r\n", repeatTriggerCount); + } myLed = 1; printFlag = 0;