• 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
Podajnik sterowany przez UNO + LCD
#10
Witam. Po kilku godzinach analizowania "BlinkWithoutDelay" przerobiłem go, żeby startował z 5-cio sekundowym opóźnieniem. A to linie kodu. DZIAŁA!!!


Kod:
// Blink without Delay



const int ledPin =  LED_BUILTIN;


int ledState = LOW;            

const long interval = 1000;          

void setup() {
 
    pinMode(ledPin, OUTPUT);
    
}

void loop() {
 
    unsigned long currentMillis = millis();
    
    if (currentMillis - previousMillis >= interval) {
        // save the last time you blinked the LED
        
        if (currentMillis < 5000) {    
            previousMillis == 0;
        } else {
            previousMillis = currentMillis;
   
   
                      if (ledState == LOW) {
                ledState = HIGH;
            } else {
                ledState = LOW;
            }
   
   
                      digitalWrite(ledPin, ledState);
        }
    }
}
 Moja interpretacja oryginalnego kodu blink_without_delay:
Kontroler sprawdza czy różnica dwóch zmiennych jest >= interwałowi.
Jeśli warunek jest (false) pomija resztę zadań i dodaje milisekundę do pierwszej zmiennej i sprawdza warunek. I tak do skutku.
Jeśli warunek jest spełniony, wykonuje zadanie czyli:
-zrównuje wartość drugiej zmiennej do wartości pierwszej 
-sprawdza stan diody LED i zmienia go na przeciwny
-itd...

Jeżel zamiast wartości (currentMillis <500) bym podstawił (currentMillis <-1) to program nie ruszy bo warunek nie będzie spełniony.
Co prawda nie wiem co się dzieje gdy odliczanie millis() dojdzie do końcowej wartości (unsigned long).
Jeśli moje założenie jest prawdą to wystarczy dołożyć przycisk i funkcję zmieniającą wartość (<-1) na ( <=0) i jest odpowiedź na moje pytanie z pierwszego postu.
Dobrze myślę?

Ale wymagało to ode mnie nadludzkiego wysiłku umysłowego. A efekt ???
Ps. Mimo wskazówek i tak chyba źle wkleiłem kod.
 
Odpowiedź
  


Wiadomości w tym wątku
Podajnik sterowany przez UNO + LCD - przez Fuks81 - 06-03-2017, 18:12
RE: Podajnik sterowany przez UNO + LCD - przez namok - 06-03-2017, 21:58
RE: Podajnik sterowany przez UNO + LCD - przez namok - 07-03-2017, 13:12
RE: Podajnik sterowany przez UNO + LCD - przez namok - 07-03-2017, 20:18
RE: Podajnik sterowany przez UNO + LCD - przez namok - 07-03-2017, 23:48
RE: Podajnik sterowany przez UNO + LCD - przez bob35 - 07-03-2017, 22:45
RE: Podajnik sterowany przez UNO + LCD - przez Fuks81 - 08-03-2017, 22:25
RE: Podajnik sterowany przez UNO + LCD - przez namok - 08-03-2017, 23:26
RE: Podajnik sterowany przez UNO + LCD - przez namok - 09-03-2017, 20:27
RE: Podajnik sterowany przez UNO + LCD - przez namok - 10-03-2017, 17:43
RE: Podajnik sterowany przez UNO + LCD - przez namok - 10-03-2017, 23:11
RE: Podajnik sterowany przez UNO + LCD - przez namok - 18-03-2017, 19:42
RE: Podajnik sterowany przez UNO + LCD - przez namok - 18-03-2017, 21:35
RE: Podajnik sterowany przez UNO + LCD - przez namok - 20-03-2017, 23:06
RE: Podajnik sterowany przez UNO + LCD - przez namok - 04-04-2017, 17:55
RE: Podajnik sterowany przez UNO + LCD - przez namok - 08-04-2017, 09:49
RE: Podajnik sterowany przez UNO + LCD - przez namok - 13-04-2017, 07:50

Skocz do:


Przeglądający: 1 gości