MultipleBlinks

Na pagina https://www.arduino.cc/en/Tutorial/MultipleBlinks contem um código, e achei interessante e fui implementá-lo ao meu projeto porem me deparei com o seguinte problema

// Add "loop2" and "loop3" to scheduling. // "loop" is always started by default. Scheduler.startLoop(loop2); Scheduler.startLoop(loop3); // Encontra erro nesta linha e não consigo compilar o código, se alguém souber uma solução e puder compartilhar conosco ficarei grato!

You need to show us your code tbh.

Copiaste a função loop3?

Mete aqui o código e a gente ajuda.

Pelo que eu percebi, foi copiado todo o código e instalada uma biblioteca (se não o erro era noutra linha anterior). A biblioteca que eu encontrei para isto (não sei se alguém consegue apontar outra) foi a que se encontra nesta página. O que é certo, é que esta biblioteca não funciona com este exemplo.
Ao tentar compilar o exemplo indicado no primeiro post, são reportados os erros:

sketch_sep08a.ino: In function ‘void setup()’:
sketch_sep08a.ino:18:12: error: expected unqualified-id before ‘.’ token
sketch_sep08a.ino:19:12: error: expected unqualified-id before ‘.’ token
sketch_sep08a.ino: In function ‘void loop3()’:
sketch_sep08a.ino:62:9: error: ‘yield’ was not declared in this scope

Olhando para o .h desta biblioteca, vê-se que a classe Scheduler tem os métodos:

		Scheduler();
		void update();
		void schedule(function userAction, unsigned int time);

e não aparece o método “startLoop” que existe nas linhas em que são indicados os erros.

Sendo assim, o meu conselho é que esqueça o programa inicial e construa o seu sketch “multiblink” a partir do exemplo fornecido com esta biblioteca:

#include <Scheduler.h> // [url=http://www.arduino.cc/playground/uploads/Code/Scheduler.zip]Scheduler.zip[/url]

Scheduler scheduler = Scheduler();      //create a scheduler

const byte ledPin = 13;               //LED on pin 13

void setup(){
  Serial.begin(9600);                 //Iitialize the UART
  pinMode(ledPin,OUTPUT);             //set pin 13 to OUTPUT
}

void loop(){
  scheduler.update();                 //update the scheduler, maybe it is time to execute a function?
  
  if (Serial.available()){            //if we have recieved anything on the Serial
    scheduler.schedule(setHigh,500);  //schedule a setHigh call in 500 milliseconds
    Serial.flush();                   //flush Serial so we do not schedule multiple setHigh calls
  }
}

void setHigh(){
  digitalWrite(ledPin,HIGH);          //set ledPin HIGH
  scheduler.schedule(setLow,500);     //schedule setLow to execute in 500 milliseconds
}

void setLow(){
  digitalWrite(ledPin,LOW);           //set ledPin LOW
}