13-02-2019, 20:37
Witam kaczakat, witam wszystkich
Kaczakat - bardzo dziękuję za pomoc i natchnienie - rozwiązałem swój problem, chwilę to zajęło.
Do rozwiązania doszedłem trochę inną ścieżką ale, podkreślę raz jeszcze; z Twoją pomocą.
Dołożyłem jeszcze blok odpowiedzialny za wyłączanie, oraz zmieniłem kolejność działania:
Płenta:
- wiem że mogę na Was liczyć
- "szpej" działa
- pora teraz na "wygłaskanie"
Pzdr
Grzegorz
sp9svn
Kaczakat - bardzo dziękuję za pomoc i natchnienie - rozwiązałem swój problem, chwilę to zajęło.
Do rozwiązania doszedłem trochę inną ścieżką ale, podkreślę raz jeszcze; z Twoją pomocą.
Dołożyłem jeszcze blok odpowiedzialny za wyłączanie, oraz zmieniłem kolejność działania:
Kod:
const int L1 = 2;//blue
const int L2 = 3;//green
const int L3 = 4;//red
#define start 8 //sw1
int stateL1 = LOW;
int stateL2 = LOW;
int stateL3 = LOW;
int czyH = 0;
int czyL = 0;
const unsigned long t1 = 2000;
const unsigned long t2 = 4000;
const unsigned long t3 = 6000;
unsigned long czasHigh = 0;
unsigned long czasLow = 0;
unsigned long czasL3 = 0;
void setup()
{
//Serial.begin(9600);
pinMode(L1, OUTPUT);
pinMode(L2, OUTPUT);
pinMode(L3, OUTPUT);
pinMode(start, INPUT);
}
void loop()
{
//check start
if((digitalRead(start)==LOW)&&(czyH==0))
{
return;
}
unsigned long currentMillis = millis();
//go start
if((digitalRead (start) == HIGH) && (czyL==0))
{
czyH=1;
if (czasHigh == 0)
{
czasLow = 0;
czasHigh = currentMillis;
}
if (currentMillis - czasHigh >= t1)
{
digitalWrite(L1,HIGH);
digitalWrite(L2,HIGH);
}
if (currentMillis - czasHigh >= t3)
{
digitalWrite(L3,HIGH);
}
}
//end
if((digitalRead (start) == LOW)||(czyL==1))
{
delay(5);
if((digitalRead(start) == HIGH) && (czyL==0))
{
return;
}
czyL = 1;
czasHigh = 0;
if (czasLow == 0)
{
czasLow = currentMillis;
}
if (currentMillis - czasLow >= t1)
{
digitalWrite(L1,LOW);
digitalWrite(L3,LOW);
//czyL=0;
}
if (currentMillis - czasLow >= t3)
{
digitalWrite(L2,LOW);
czyL=0;
}
}
}
Płenta:
- wiem że mogę na Was liczyć
- "szpej" działa
- pora teraz na "wygłaskanie"
Pzdr
Grzegorz
sp9svn