• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Sterownik ogrzewania wody w basenie.
#13
Kurs na Forbot jednak to coś więcej, miganie led jest użyte dlatego, by nie wprowadzać niepotrzebnie innych terminów komplikujących zadanie. Oczywiście jeśli zaczniesz go przerabiać od ostatniej lekcji, tej z millis, to jej możesz nie zrozumieć. Trzeba trochę nad tym posiedzieć by zmienić sposób myślenia.
Jak uważasz kogoś za trola to go nie karm.
Millis można wykorzystać do odmierzania czasu. W przykładzie w blinkWithoutDelay wystarczy wyrzucić zmiany stanu led i wprowadzić swoją zmienną sekundy++. Ponieważ w ciągu 1s pętla loop powinna się wykonać tysiące razy dodać tu trzeba również flagę, by to co ma się wykonać co sekundę wykonało się tylko raz, tylko w tym konkretnym loop, w którym nastąpiła zmiana sekund. W innym miejscu loop należy jej przypisać zero. Ja używam swoich liczników sekund, minut i flag do nich by zarządzać czasem, wtedy w loop tylko raz odwołuję się do millis, a potem do swoich zmiennych i flag operujących na małych liczbach, porównania są wtedy bardzo szybkie. Każde wywołanie millis trwa kilka us. Ale i tak musiałbyś je wywołać w pętli wiele tysięcy razy by dorównać jednemu delay(1000);.  Z pompą nie 
Kod:
//zalaczenie pompy
if (przycisk==0 and ! pompaWlaczona)
{pompaWlaczona=1;
digitalWrite(pompa,1);
znacznikCzasuWlaczeniaPompy=millis();
}

//wylaczenie pompy

if(pompaWlaczona)
{
znacznikCzasuAktualny=millis();
if((uint32_t)(znacznikCzasuAktualny-znacznikCzasuWlaczeniaPompy)>=zadanyCzasPracyPompy)
{
digitalWrite(pompa,0);
pompaWlaczona=0;
}
}

Użycie dodatkowego timera sprzętowego wg mnie nie ma sensu do tak prostej czynności, skoro i tak już działa timer0 by napędzać micros/millis/delay.
Miło być decenianym https://buycoffee.to/kaczakat
 
Odpowiedź
  


Wiadomości w tym wątku
Sterownik ogrzewania wody w basenie. - przez kagiva - 13-06-2019, 19:24
RE: Sterownik ogrzewania wody w basenie. - przez es2 - 13-06-2019, 20:23
RE: Sterownik ogrzewania wody w basenie. - przez es2 - 13-06-2019, 20:56
RE: Sterownik ogrzewania wody w basenie. - przez es2 - 13-06-2019, 23:40
RE: Sterownik ogrzewania wody w basenie. - przez es2 - 14-06-2019, 07:43
RE: Sterownik ogrzewania wody w basenie. - przez kaczakat - 14-06-2019, 09:18
RE: Sterownik ogrzewania wody w basenie. - przez es2 - 14-06-2019, 15:23

Skocz do:


Przeglądający: 1 gości