(02-11-2021, 23:02)mateuszmilke97@gmail.com napisał(a): Podejrzewam że masz błąd w konstrukcji ifow wykonuje się pierwsza możliwa operacja dlatego nie możesz niezależnie musisz inaczej skonstruować te warunki daj kod to będzie wszystko jasne
Mam taki kod w którym diody zapalają sie i po okreslonym czasie gasną
Kod:
#define P1 8
#define P2 9
#define P3 10
#define P4 11
#define D1 2
#define D2 3
#define D3 4
#define D4 5
int maxD1=0, maxD2=0, maxD3=0,maxD4=0;
void setup()
{
pinMode(P1,INPUT);
pinMode(P2,INPUT);
pinMode(P3,INPUT);
pinMode(P4,INPUT);
pinMode(D1,OUTPUT);
pinMode(D2,OUTPUT);
pinMode(D3,OUTPUT);
pinMode(D4,OUTPUT);
}
void loop()
{
if(digitalRead(P1)==HIGH) maxD1=500;
if(digitalRead(P2)==HIGH) maxD2=500;
if(digitalRead(P3)==HIGH) maxD3=500;
if(digitalRead(P4)==HIGH) maxD4=500;
if(maxD1>0)
digitalWrite(D1,HIGH);
else
digitalWrite(D1,LOW);
if(maxD2>0)
digitalWrite(D2,HIGH);
else
digitalWrite(D2,LOW);
if(maxD3>0)
digitalWrite(D3,HIGH);
else
digitalWrite(D4,LOW);
if(maxD4>0)
digitalWrite(D4,HIGH);
else
digitalWrite(D4,LOW);
if(maxD1>0) maxD1--;
if(maxD2>0) maxD2--;
if(maxD3>0) maxD3--;
if(maxD4>0) maxD4--;
delay(1);
}
A ja potrzebuję wstawić kod by dioda się zapalała i gasła po ponownym nacisnieciu przycisku a nie w interwale czasu
i to robi ten kod
Kod:
pinMode( 8,INPUT);
pinMode( 9,INPUT);
pinMode( 10,INPUT);
pinMode( 11,INPUT);
pinMode( 2,OUTPUT);
pinMode( 3,OUTPUT);
pinMode( 4,OUTPUT);
pinMode( 5,OUTPUT);
}
boolean stan=0;
boolean stan1=0;
void loop() {
if(digitalRead(8) == HIGH)
{
delay(20);
stan=!stan;
digitalWrite(2,stan);
while(digitalRead(8) == HIGH);
}
if (digitalRead(9) == HIGH);
{
delay(200);
stan1=!stan1;
digitalWrite(3,stan1);
while(digitalRead(9) == HIGH);
}
}
i nie wiem jak te kody połączyć by uzyskać efekt jak naciskam przycisk się zapala ponownie naciskam gasnie
Z góry dziękuję za pomoc