Auto reset grejer med Arduino (1 / 2 steg)
Steg 1: Program
Här är den Adruino skissen för kretsen. Resultatet är på stift 7 och en manuell reset-knapp är kopplad till stift 5. Tidpunkten är gjort med hjälp av millis() kommando så att extra funktioner kan läggas in i slingan (som skanning manualen återställningsknapp) utan utför resten av tidpunkten. En annan gång kan jag titta på kanske lägga till ett par 7-seg visar att visa den tid som återstår.De på och Återställ tiderna kan ändras i relevanta rader. På tiden (rstdly) anges i minuter där reset förseningen (rstoff) ställs i sekunder.
Se kommentarer för ytterligare beskrivningar av programmet.
#define relay 7 / / Pin för utdata switcher
#define rstsw 5 / / Pin för manuell återställning
Ange följande för att ändra tiden i min reset dröjsmål
#define rstdly 15
Ange följande för att ändra off tid i SEK
#define rstoff 5
osignerade långa old_time;
osignerade långa cpr_time;
osignerade långa dly_time;
osignerade långa off_time;
byte rstswitch = 0;
void setup()
{
pinMode (relä, utgång); ställa in relay för utdata
pinMode (rstsw, ingång); Reset switch för indata
off_time = rstoff * 1000; beräkna mS fördröjning för off tid
dly_time = (rstdly * 60000)-off_time; beräkna mS fördröjning för väntetiden, mindre tid att upprätthålla timing
}
void loop()
{
digitalWrite (relä, hög); signalutgång på
old_time = millis(); få aktuell tid
cpr_time = millis() - old_time; calc hur lång fördröjning pågått
medan (cpr_time < dly_time) / / vänta på fördröjningstiden
{
cpr_time = millis() - old_time;
rstswitch = digitalRead(rstsw); få byta stat
om (rstswitch == 1) {bryta;} / / om switch tryckte paus loop
}
digitalWrite (relä, låg); Inaktivera utmatning
old_time = millis();
cpr_time = millis() - old_time;
medan (cpr_time < off_time) / / vänta tills off tid har gått
{
cpr_time = millis() - old_time;
}
}