Ошибка записи числа в переменную Arduino
Ситуация в том что есть функция
void verticalRainbow(){
if(index == 0){
color = 0;
Serial.print((step = random()%230+10));
}
leds[index] = CHSV(color, 255, 255);
leds[GRV(index++)] = CHSV(color, 255, 255);
color+=step;
index%=NUM_LEDS/2+1;
Serial.print(" ");
Serial.print(index);
Serial.print(" ");
Serial.print(color);
Serial.print(" ");
Serial.print(step);
}
Переменные index, color, step, NUM_LEDS, leds - глобальные
функция GRV возвращает обратное значение
Но это всё мелочи. Баг состоит в том что при выполнении строчки Serial.print((step = random()%230+10));
пишется случайное число, а в step записывается 255. Почему это происходит и как это исправить? Я хочу е**ый рандом а не 255.
так же пытался использовать разнообразный рандом включая псевдо, а именно
step = random()%230+10
step = random(10, 240)
step = millis()%230+10
но результат всегда один и тот же. Как мне записать в step случайное число от 10 до 240?
Источник: Stack Overflow на русском