countdowntimer met millis onderbreken en functie uitvoeren
4 berichten
• Pagina 1 van 1
countdowntimer met millis onderbreken en functie uitvoeren
Best allemaal,
Het is voor mij de 1e keer dat ik iets op dit forum plaats, ik heb een éénvoudig huisalarm gemaakt wat bestaat uit een uno,lcd, relais, keypad, sirene en pirsensor. Wanneer het alarm is ingeschakeld en wordt geactiveerd heb ik een countdown timer lopen die mij 30 seconden geeft om binnen te komen. echter nu wil ik dat er tijdens de while lus met millis die terugtelt een functie wordt uitgevoerd die de code van de keypad registreert en dus het alarm uitschakelt. Ik heb al zitten denken aan een pol of zoiets of een interrupt. heeft iemand misschien ooit iets soortgelijks meegemaakt.
Het is voor mij de 1e keer dat ik iets op dit forum plaats, ik heb een éénvoudig huisalarm gemaakt wat bestaat uit een uno,lcd, relais, keypad, sirene en pirsensor. Wanneer het alarm is ingeschakeld en wordt geactiveerd heb ik een countdown timer lopen die mij 30 seconden geeft om binnen te komen. echter nu wil ik dat er tijdens de while lus met millis die terugtelt een functie wordt uitgevoerd die de code van de keypad registreert en dus het alarm uitschakelt. Ik heb al zitten denken aan een pol of zoiets of een interrupt. heeft iemand misschien ooit iets soortgelijks meegemaakt.
Advertisement
Re: countdowntimer met millis onderbreken en functie uitvoer
je zet dus een timer aan van 30 seconden ofwel je slaat de starttijd =millsi() ergens op.
dan ga je iets anders doen bijvoorbeeld kijken of er een toets ingedrukt is.
na die functie keer je terug naar je loop en ga je kijken of jouw millis > 30+starttijd. dan spring je naar de functie telanggewachtopjuistecode.
als je zorgt dat jouw loop heel snel is dan gaat dat heel erg goed, heel veel processen zoals servo en stappenmotoren maar ook communicatie werkt zo.
dan ga je iets anders doen bijvoorbeeld kijken of er een toets ingedrukt is.
na die functie keer je terug naar je loop en ga je kijken of jouw millis > 30+starttijd. dan spring je naar de functie telanggewachtopjuistecode.
als je zorgt dat jouw loop heel snel is dan gaat dat heel erg goed, heel veel processen zoals servo en stappenmotoren maar ook communicatie werkt zo.
paul deelen
shooter@home.nl
shooter@home.nl
Re: countdowntimer met millis onderbreken en functie uitvoer
if (alarmActivated == true){//als alarm is ingeschakeld
if (PirValue == HIGH){//en er wordt beweging gedetecteerd
lastTime = millis();
int countdown = 30; // 9 seconds count down before activating the alarm
while (countdown != 0)
{
if (millis() - lastTime >= 1000)
{
countdown--;
lastTime+=1000;
lcd.setCursor(0,3);
lcd.print(countdown);
}
}
digitalWrite(relay,HIGH);
lcd.clear();
enterPassword();
}
}
Hoe krijg ik het voor elkaar dat hij uit de while lus stapt en de functie enterPassword(); uitvoerd. Het is dus de bedoeling dat hij dit tegelijk doet tijdens het terugtellen functie uitvoeren.
if (PirValue == HIGH){//en er wordt beweging gedetecteerd
lastTime = millis();
int countdown = 30; // 9 seconds count down before activating the alarm
while (countdown != 0)
{
if (millis() - lastTime >= 1000)
{
countdown--;
lastTime+=1000;
lcd.setCursor(0,3);
lcd.print(countdown);
}
}
digitalWrite(relay,HIGH);
lcd.clear();
enterPassword();
}
}
Hoe krijg ik het voor elkaar dat hij uit de while lus stapt en de functie enterPassword(); uitvoerd. Het is dus de bedoeling dat hij dit tegelijk doet tijdens het terugtellen functie uitvoeren.
Re: countdowntimer met millis onderbreken en functie uitvoer
vl;ak onder de while, want daar komt de loop dus heel veel, vraag je het password aan, maar je moet zorgen dat die lus gewoon door blijft lopen, dus je gaat alleen even vragen of er een toets is ingedrukt, en zo ja dan opslaan en vergelijken met de juiste, zo niet terug naar je loop, zo ja open sesame.en dan laat je op het display dus continu open zien, als je een andere toets indrukt dan kassie weer dicht.
paul deelen
shooter@home.nl
shooter@home.nl
4 berichten
• Pagina 1 van 1
Wie is er online?
Gebruikers in dit forum: Geen geregistreerde gebruikers en 8 gasten