I am trying to figure out how to get the Blink Without Delay from the Arduino examples page, to work with my Addressable Through-Hole 8mm RGB LED with Diffused Lens, WS2811 Driver. The problem I am having is with the int ledState = LOW;
part of the code. Since I am using an addressable LED that does not just have a HIGH/LOW signal being sent to it, I don’t know how to write the code to suite my needs. I am using multiple LEDs, all controlled with different switches, so if I use the delay function, it causes problems with the rest of the circuit.
Thanks for the help.
// constants won't change. Used here to
// set pin numbers:
const int ledPin = 13; // the number of the LED pin
// Variables will change:
int ledState = LOW; // ledState used to set the LED
long previousMillis = 0; // will store last time LED was updated
// the follow variables is a long because the time, measured in miliseconds,
// will quickly become a bigger number than can be stored in an int.
long interval = 1000; // interval at which to blink (milliseconds)
void setup() {
// set the digital pin as output:
pinMode(ledPin, OUTPUT);
}
void loop()
{
// here is where you'd put code that needs to be running all the time.
// check to see if it's time to blink the LED; that is, if the
// difference between the current time and last time you blinked
// the LED is bigger than the interval at which you want to
// blink the LED.
unsigned long currentMillis = millis();
if(currentMillis - previousMillis > interval) {
// save the last time you blinked the LED
previousMillis = currentMillis;
// if the LED is off turn it on and vice-versa:
if (ledState == LOW)
ledState = HIGH;
else
ledState = LOW;
// set the LED with the ledState of the variable:
digitalWrite(ledPin, ledState);
}
}