#include <Thread.h>
#include <ThreadController.h>
ThreadController controll = ThreadController();
Thread myThread1 = Thread();
Thread myThread2 = Thread();
Thread myThread3 = Thread();
const int btnPin = 2;
const int pwmOutPin = 11;
bool isRun = false;
uint16_t pwmValue = 0;
void readAdc(){
if (isRun) {
pwmValue = map(analogRead(A0), 0, 1023, 0, 255);
}
}
void btnChk(){ //
if (digitalRead(btnPin) == LOW) {
isRun = !isRun;
}
if (isRun == false) {
analogWrite(pwmOutPin, 0);
}
Serial.println( (isRun)? "on" : "off");
}
void pwmWrite(){ //
if (isRun) {
analogWrite(pwmOutPin, pwmValue);
Serial.println(pwmValue);
}
}
void setup(){
Serial.begin(9600);
pinMode(btnPin, INPUT_PULLUP);
pinMode(pwmOutPin, OUTPUT);
myThread1.onRun(btnChk);
myThread1.setInterval(100);
myThread2.onRun(readAdc);
myThread2.setInterval(50);
myThread3.onRun(pwmWrite);
myThread2.setInterval(200);
controll.add(&myThread1);
controll.add(&myThread2);
controll.add(&myThread3);
}
void loop(){
// run ThreadController
// this will check every thread inside ThreadController,
// if it should run. If yes, he will run it;
controll.run();
// Rest of code
float h = 3.1415;
h/=2;
}