Got scheduler's multiple blink to work on nano 2040 connect

Make sure your WiFiNINA is up to date, the library is required.

include the wifinina lib.
change the led variables to macros and point them to the nina definitions (LEDR, etc...)



// Include Scheduler since we want to manage multiple tasks.
#include <Scheduler.h>
#include <WiFiNINA.h>


#define led1 LEDR
#define led2 LEDG
#define led3 LEDB

void setup() {
  Serial.begin(9600);

  // Setup the 3 pins as OUTPUT
  pinMode(led1, OUTPUT);
  pinMode(led2, OUTPUT);
  pinMode(led3, OUTPUT);

  // Add "loop2" and "loop3" to scheduling.
  // "loop" is always started by default.
  Scheduler.startLoop(loop2);
  Scheduler.startLoop(loop3);
}

// Task no.1: blink LED with 1 second delay.
void loop() {
  digitalWrite(led1, HIGH);

  // IMPORTANT:
  // When multiple tasks are running 'delay' passes control to
  // other tasks while waiting and guarantees they get executed.
  delay(1000);

  digitalWrite(led1, LOW);
  delay(1000);
}

// Task no.2: blink LED with 0.1 second delay.
void loop2() {
  digitalWrite(led2, HIGH);
  delay(100);
  digitalWrite(led2, LOW);
  delay(100);
}

// Task no.3: accept commands from Serial port
// '0' turns off LED
// '1' turns on LED
void loop3() {
  if (Serial.available()) {
    char c = Serial.read();
    if (c == '0') {
      digitalWrite(led3, LOW);
      Serial.println("Led turned off!");
    }
    if (c == '1') {
      digitalWrite(led3, HIGH);
      Serial.println("Led turned on!");
    }
  }

  // IMPORTANT:
  // We must call 'yield' at a regular basis to pass
  // control to other tasks.
  yield();
}

@budzique
Welcome.

What is the purpose of this topic?
Why is a topic that seems to be about WiFi in the LED and multiplexing section?
Do you have a question?
Have you read How to get the best out of this forum ?

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.