Random относительно ко времени.
- Войдите на сайт для отправки комментариев
Вс, 26/03/2017 - 00:13
Доброго всем времени суток.
Есть задача: у нас есть 10 светодиодов. Надо каждому из них задать случайное время включения и выключения в пределах 1-1000. Т.е. если светодиод включился на 35 и выключился на 28, то в следущий раз он включится, например, на 90 и выключится на 5 и т.д. И так применительно к каждому. Пытался найти ответ поиском, но не смог.
Есть код в котором хочется это реализовать, но лыжи не едут.
class Flasher { int ledPin; long OnTime; long OffTime; int ledState; unsigned long previousMillis; public: Flasher(int pin, long on, long off) { ledPin = pin; pinMode(ledPin, OUTPUT); OnTime = on; OffTime = off; ledState = LOW; previousMillis = 0; } void Update() { unsigned long currentMillis = millis(); if((ledState == HIGH) && (currentMillis - previousMillis >= OnTime)) { ledState = LOW; previousMillis = currentMillis; digitalWrite(ledPin, ledState); } else if ((ledState == LOW) && (currentMillis - previousMillis >= OffTime)) { ledState = HIGH; previousMillis = currentMillis ; digitalWrite(ledPin, ledState); } } }; Flasher led1(2, 10, 1); Flasher led2(3, 35, 7); Flasher led3(4, 30, 5); Flasher led4(5, 25, 3); Flasher led5(6, 50, 10); Flasher led6(7, 17, 7); Flasher led7(8, 40, 3); Flasher led8(9, 30, 5); Flasher led9(10, 27, 4); Flasher led10(11, 70, 7); void setup() { } void loop() { led1.Update(); led2.Update(); led3.Update(); led4.Update(); led5.Update(); led6.Update(); led7.Update(); led8.Update(); led9.Update(); led10.Update(); }
Подскажите, пожалуйста, как добиться такой цели?
Есть задача: у нас есть 10 светодиодов. Надо каждому из них задать случайное время включения и выключения в пределах 1-1000.
Подскажите, пожалуйста, как добиться такой цели?
= (micros()/4)%999+1. http://arduino.ru/Reference/Micros
Спасибо, добрый человек! То что надо.