10-04-2020, 09:15
witam problem może wydawać się banalnie prosty ale nie umiem sobie z nim poradzić chodzi o to że pisze program i nie używam funkcji delay ale bibloteki timers mój problem polega na tym że gdy czujnik jest w stanie wysokim to na wyświetlaczu pojawia się napis "pojemność zbiornika 70%" i generuje mi sygnał na buzzer wszystko niby działa tylko nie wiem jak zrobić aby się to nie powtarzało chce aby ten warunek powtórzył się tylko raz i czekał aż kolejny warunek się spełni bo w ten sposób jak ustawie na 7 sekund to ten warunek logicznie będzie powtarzał się co 7 sekund a ja chce żeby ten warunek spełnił się raz i czekał na spełnienie kolejnego warunku
Kod:
cz2 = digitalRead(23);
cz3 = digitalRead(24);
cz4 = digitalRead(25);
cz5 = digitalRead(26) ;
cz6 = digitalRead(27);
if (cz1==LOW && cz2==LOW && cz3==LOW && cz4==LOW && cz5 ==LOW&& cz6 == LOW && czekaj.available() ) {
lcd.init();
lcd.setCursor(0, 0);
lcd.print("pojemnosc ");
lcd.setCursor(0, 1);
lcd.print("zbiornika 70%");
tone(A5, 7000,500);
czekaj.time(7000);
czekaj.restart();
}
else
{
if (cz2==LOW && cz3==LOW && cz4==LOW && cz5==LOW&& cz6 == LOW && czekaj.available() ) {
lcd.setCursor(0, 0);
lcd.print("pojemnosc ");
lcd.setCursor(0, 1);
lcd.print("zbiornika 50%");
czekaj.restart();
}
else
{
if (cz6 ==LOW && cz5==LOW && cz4==LOW && cz3 == LOW && czekaj.available()){
lcd.setCursor(0, 0);
lcd.print("pojemnosc ");
lcd.setCursor(0, 1);
lcd.print("zbiornika 40%");
czekaj.restart();
}
else
{
if (cz6==LOW && cz5==LOW && cz4 == LOW && czekaj.available()){
lcd.setCursor(0, 0);
lcd.print("pojemnosc ");
lcd.setCursor(0, 1);
lcd.print("zbiornika 30%");
czekaj.restart();
}
else
{
if (cz6 ==LOW && cz5 == LOW && czekaj.available()){
lcd.setCursor(0, 0);
lcd.print("pojemnosc ");
lcd.setCursor(0, 1);
lcd.print("zbiornika 20%");
czekaj.restart();
}
else
{
if (cz6 == LOW && czekaj.available() ) {
lcd.setCursor(0, 0);
lcd.print("pojemnosc ");
lcd.setCursor(0, 1);
lcd.print("zbiornika 10%");
czekaj.restart();
}
}
}
}
}
}
lcd.init();
if(digitalRead(31) == LOW && czas.available()) {
lcd.setCursor(0, 0);
lcd.print("redlica");
lcd.setCursor(0, 1);
lcd.print("zapchana nr1");
tone(A5, 7000,500);
}
if (digitalRead(31) == HIGH){
czas.restart();
czas.time(5000);
}
}