I am using below code which is working fine, in that myThread.setInterval(5000); function working properly means when i upload code, LED will be start after 5 seconds
#include <Thread.h>
Thread myThread = Thread();
char powerValue;
int ledPin1 = 2;
boolean flag = false;
// callback for myThread
void myThreadCallback() {
digitalWrite(ledPin1, HIGH);
}
void setup() {
pinMode(ledPin1, OUTPUT);
digitalWrite(ledPin1, LOW);
Serial.begin(9600);
myThread.onRun(myThreadCallback);
flag = true;
myThread.setInterval(5000);
}
void loop() {
if (Serial.available()) {
powerValue = Serial.read();
Serial.println(powerValue);
}
if (powerValue == 'A' ) {
}
else if (powerValue == 'a' ) {
digitalWrite(ledPin1, LOW);
}
if (myThread.shouldRun() && flag == true)
myThread.run();
powerValue = 'Z';
}
but when i run same code with below changes LED lights up without waiting for 5 seconds, it will directly start
can anybody suggest me why this is not working when i setInterval code in void loop() function
#include <Thread.h>
Thread myThread = Thread();
char powerValue;
int ledPin1 = 2;
boolean flag = false;
// callback for myThread
void myThreadCallback() {
digitalWrite(ledPin1, HIGH);
}
void setup() {
pinMode(ledPin1, OUTPUT);
digitalWrite(ledPin1, LOW);
Serial.begin(9600);
myThread.onRun(myThreadCallback);
}
void loop() {
if (Serial.available()) {
powerValue = Serial.read();
Serial.println(powerValue);
}
if (powerValue == 'A' ) {
flag = true;
myThread.setInterval(5000);
// checks if thread should run
}
else if (powerValue == 'a' ) {
digitalWrite(ledPin1, LOW);
}
if (myThread.shouldRun() && flag == true)
myThread.run();
powerValue = 'Z';
}