Witam. Z Arduino miałem przerwę ponad 4 lata, trochę(a nawet sporo) z dyńki mi wyleciało. Postanowiłem powrócić do zabawy w zlepiacza kodów i oto jestem z pierwszym problemem. Mój kod to przekaźnik z odliczaniem wstecznym. I problem jest taki że mój kod po uruchomieniu nie załącza stanu wysokiego na pinie 13 dopóki czas nie zejdzie poniżej jednej minuty tzn po wciśnięciu przycisku odlicza wstecz zmienna stan jest widoczna w monitorze jako 1 a stan wysoki pojawia się dopiero na minutę przed końcem. Prosiłbym o sprawdzenie kodu i wskazanie błędów.
Kod:
int A = 1;
int minuta = A;
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
pinMode(13, OUTPUT);
pinMode(6, INPUT_PULLUP);
}
boolean stan = 0;
void loop()
{
if (digitalRead(6) == LOW)
{
delay(20);
stan = !stan;
while (digitalRead(6) == LOW);
delay(20);
}
if (stan == 1)
{
licznik();
digitalWrite(13, HIGH);
}
else
{
digitalWrite(13, LOW);
}
if (minuta == -1)
{
stan = 0;
digitalWrite(13, LOW);
minuta = A;
}
}
void licznik()
{
int sekunda = 59;
for (int i = 59 ; i &t -1 ; i--)
{
Serial.println(stan);
Serial.print(minuta);
Serial.print("-");
Serial.println(sekunda);
sekunda--;
if (sekunda == -1)
{
minuta--;
}
delay(1000);
}
}