03-01-2018, 18:20
Tyle że przy użyciu rtc jest jakby nie patrząc więcej do liczenia bo czas rtc musisz przeliczać na minuty sekundy itd .
możesz to zrobić w prosty sposób na millis np.
tu odpalany z przycisku
a jak chcesz cyklicznie to tak
ponieważ "cm" jest stała dla całego programu możesz sobie te 3 linijki powtórzyć dla każdego urządzenia z tym że dla każdego musisz zrobić osobny cykl i Pm
możesz to zrobić w prosty sposób na millis np.
tu odpalany z przycisku
Kod:
int czas_pracy_1 = 15;
byte urzadzenie_1 = 0;
void setup() {
pinMode(5,INPUT_PULLUP);
pinMode(13,OUTPUT);
}
void loop() {
long cm = millis()/1000;
if ( digitalRead(5) == LOW )urzadzenie_1 = cm + czas_pracy_1 ;
if ( urzadzenie_1 > cm )digitalWrite(13,HIGH);else digitalWrite(13,LOW);
}
a jak chcesz cyklicznie to tak
Kod:
int czas_pracy_1 = 3;
int czas_postoju_1 = 10;
long cm;
long Pm;
int cykl = 0;
void setup() {
pinMode(5,INPUT_PULLUP);
pinMode(13,OUTPUT);
}
void loop() {
cm = millis()/1000;
if ( Pm < cm ){cykl++ ;Pm = cm;}
if ( cykl < czas_pracy_1 )digitalWrite(13,HIGH);else digitalWrite(13,LOW);
if ( cykl == czas_postoju_1 )cykl = 0;
}
ponieważ "cm" jest stała dla całego programu możesz sobie te 3 linijki powtórzyć dla każdego urządzenia z tym że dla każdego musisz zrobić osobny cykl i Pm
Ważne aby robić co się lubi albo lubić co się robi .
Arduino UNO, TINY, PRO MINI
Pomoc nagradzamy punktami reputacji
Arduino UNO, TINY, PRO MINI
Pomoc nagradzamy punktami reputacji