• 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
LED blink millis
#1
Witam, dopiero co rozpoczynam swoją przygodę z Arduino, a potrzebuję napisać funkcję, która będzie mrugać diodą LED (dwa mignięcia, długa przerwa). 
Problem w tym, że nie mogę zastosować delay (potrzebuję wielowątkowości), próbuję użyć do tego funkcji millis, ale po wgraniu skeczu dioda świeci w sposób ciągły. 
Bardzo bym prosił o waszą pomoc, za którą z góry dziękuję.


Poniżej zamieszczam kod:
Kod:
#define LED_PIN 0
#define LED_ON_1 100
#define LED_OFF_1 500
#define LED_ON_2 700
#define LED_OFF_2 2300

unsigned long ms;
unsigned long msLast;

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

void loop()
{
 ms = millis();
 blinkLED();
}

void blinkLED()
{
   if (ms - msLast < LED_ON_1 ) {
     digitalWrite(LED_PIN, HIGH);
   }
   if (LED_ON_1 <= ms - msLast < LED_OFF_1 ) {
     digitalWrite(LED_PIN, LOW);
   }
   if (LED_OFF_1 <= ms - msLast < LED_ON_2 ) {
     digitalWrite(LED_PIN, HIGH);
   }
   if (LED_ON_2 <= ms - msLast < LED_OFF_2 ) {
     digitalWrite(LED_PIN, LOW);
   }
   if (ms - msLast == LED_OFF_2) {
     msLast = ms;
   }
}
 
Odpowiedź
  


Wiadomości w tym wątku
LED blink millis - przez Maifu - 29-12-2017, 17:13
RE: LED blink millis - przez ANT - 29-12-2017, 20:44
RE: LED blink millis - przez Maifu - 29-12-2017, 21:46

Skocz do:


Przeglądający: 1 gości