int sensor = 900; //variabel sensor
void setup() {
Serial.begin(9600);
while (!Serial);
randomSeed(analogRead(A0));
}
int number() {
int a = random(0, 10); //range pengurang nilai sensor
int d = random(500, 1500); //range delay perubahan nilai
if (sensor < 670) {
sensor = 900;
}
sensor -= a;
delay(d);
return sensor;
}
void loop() {
int val = number();
Serial.println(val);
}
I modified the delay for test.
randomSeed ensures different random values at every run
EDIT: a not blocking version which returns the same values for random interval:
int sensor = 900; //variabel sensor
unsigned long nextChangeMillis = 0;
void setup() {
Serial.begin(9600);
while (!Serial);
randomSeed(analogRead(A0));
}
int number() {
if (millis() < nextChangeMillis)
return sensor;
int a = random(0, 10); //range pengurang nilai sensor
int d = random(500, 1500); //range delay perubahan nilai
if (sensor < 670) {
sensor = 900;
}
sensor -= a;
nextChangeMillis += d;
return sensor;
}
void loop() {
int val = number();
Serial.println(val);
}