Подскажите, как в данном скетче заменить delay на millis. Чтобы не было простоя и можно было его вставить в брльшой скетч где выполняется еще несколько задач. Так же заменить for. Код (C++): int redPin = 3; int greenPin = 6; int bluePin = 5; // RGB модуль с общим анодом int r = 0; // Красный горит int b = 255;. // Синий потушен int g = 255;. // Зелёный потушен void setup() { pinMode(redPin, OUTPUT); pinMode(greenPin, OUTPUT); pinMode(bluePin, OUTPUT); } void loop() { for (int e=1; e<=765; e++) { if(e<=255) {r++; b--;} // Красный тухнет, синий разгорается if(e>255 && e<=510) {b++; g--;}// Синий тухнет, зелёный разгорается if(e>510) {g++; r--;} // Зелёный тухнет, красный разгорается analogWrite(redPin, r); analogWrite(greenPin, g); analogWrite(bluePin, b); delay(5); // чем больше значение, тем меньше скорость } }
От редактора зависит. В большинстве Ctrl+H, а ардуино-IDE - Ctrl+F. Дальше пишешь что на что заменить и давишь кнопку "Заменить все". Работать не будет, но тебе ж надо заменить, а не переделать программу, так что как-то так.
Код (C++): const byte redPin = 3; const byte greenPin = 6; const byte bluePin = 5; // RGB модуль с общим анодом int r = 0; // Красный горит int b = 255; // Синий потушен int g = 255; // Зелёный потушен void setup() { pinMode(redPin, OUTPUT); pinMode(greenPin, OUTPUT); pinMode(bluePin, OUTPUT); } void ledManager() { static unsigned long timestamp = millis(); static int e = 1; // static запрещает изменять переменную при выходе из ledManager if (millis() - timestamp > 5000) // замена delay(5) { // запоминаем текущее время (оно понадобится в следующем цикле) timestamp = millis(); if (e <= 255) { r++; // Красный тухнет, синий разгорается b--; } if (e > 255 && e <= 510) { b++; // Синий тухнет, зелёный разгорается g--; } if (e > 510) { g++; // Зелёный тухнет, красный разгорается r--; } analogWrite(redPin, r); analogWrite(greenPin, g); analogWrite(bluePin, b); e++; if (e > 765) e = 1; } // конец бывшего цикла for } void task2() { } void task3() { } void loop() { ledManager(); task2(); task3(); }