09-04-2018, 14:19
Panowie i Panie, proszę o pomoc z kodem programu bo już nie wiem co źle robię.
Dysponuję płytką arduino yun + ekspander PCF8574, komunikacja IC2 - tu wszystko działa ok.
i teraz tak:
Mam podpiętego leda pod wyjście ekspandera. Napisałem kod do zaplalnia tego leda przy użyciu przycisku zwierającego do masy w taki sposób że jak nacisnę raz to zapalam leda, a jak nacisnę drugi raz to go gaszę i tu wszyto również działa bez problemu. Chciałem jednak dodać do tego coś takiego że po pojawieniu się stanu HIGH na wejściu nr 13 Led się zapala, a po zniknięciu tego stanu gasi. i napisałem drugi kod niestety coś chyba schrzaniłem bo po podaniu HIGH na 13 led się zapala ale po zniknięciu HIGH z 13 nie gaśnie. Rzucie okiem czy coś robię nie tak. z góry dzięki:
Kod pierwszy bez obsługi portu 13, który działa:
drugi kod:
[/code]
Dysponuję płytką arduino yun + ekspander PCF8574, komunikacja IC2 - tu wszystko działa ok.
i teraz tak:
Mam podpiętego leda pod wyjście ekspandera. Napisałem kod do zaplalnia tego leda przy użyciu przycisku zwierającego do masy w taki sposób że jak nacisnę raz to zapalam leda, a jak nacisnę drugi raz to go gaszę i tu wszyto również działa bez problemu. Chciałem jednak dodać do tego coś takiego że po pojawieniu się stanu HIGH na wejściu nr 13 Led się zapala, a po zniknięciu tego stanu gasi. i napisałem drugi kod niestety coś chyba schrzaniłem bo po podaniu HIGH na 13 led się zapala ale po zniknięciu HIGH z 13 nie gaśnie. Rzucie okiem czy coś robię nie tak. z góry dzięki:
Kod pierwszy bez obsługi portu 13, który działa:
Kod:
reading = expander3.digitalRead(4);
if (reading == LOW && previous == HIGH && millis() - time > debounce)
{
if (state == LOW)
state = HIGH;
else
state = LOW;
time = millis();
}
expander1.digitalWrite(0, state);
previous = reading;
drugi kod:
Kod:
reading = expander3.digitalRead(4);
if (digitalRead(13) == HIGH || reading == LOW && previous == HIGH && millis() - time > debounce)
{
if (state == LOW || digitalRead(13) == HIGH)
state = HIGH;
else
state = LOW;
time = millis();
}
expander1.digitalWrite(0, state);
previous = reading;