In this simple example for a Digispark board we connect an RGB LED to it. We will then use the Arduino IDE to write a sketch and upload it to the board.
I used an OLIMEXINO-85 but a basic Digispark will work as well
Schematic
Parts
I use an RGB led module as you can see in the schematic above, you can quite easily just purchase an RGB led and the required resistors, this was just easier to connect. You can see the module below
£2.19 from Aliexpress | |
£0.84 from Aliexpress | |
Examples
Here are some examples, these are all designed for a common anode type RGB led,.
If you had a common cathode type you would have to change the low to high and vice versa in the code
void setup() {
// Initialize the LED pins as outputs
pinMode(0, OUTPUT);
pinMode(1, OUTPUT);
pinMode(2, OUTPUT);
}
void loop() {
digitalWrite(0, LOW); // Turn the red LED On
delay(500); // Wait for a second
digitalWrite(0, HIGH); // Turn the red LED off
delay(500); // Wait for a second
digitalWrite(1, LOW); // Turn the green LED On
delay(500); // Wait for a second
digitalWrite(1, HIGH); // Turn the green LED off
delay(500); // Wait for a second
digitalWrite(2, LOW); // Turn the blue LED On
delay(500); // Wait for a second
digitalWrite(2, HIGH); // Turn the blue LED off
delay(500); // Wait for a second
}
And this example uses analogwrite
int r = 0;
int g = 1;
int b = 2;
void setup() {
pinMode(r,OUTPUT);
pinMode(g,OUTPUT);
pinMode(b,OUTPUT);
}
void loop() {
analogWrite(r,0);
analogWrite(g,255);
analogWrite(b,255);
delay(1000);
analogWrite(r,255);
analogWrite(g,0);
analogWrite(b,255);
delay(1000);
analogWrite(r,255);
analogWrite(g,255);
analogWrite(b,0);
delay(1000);
}
And this uses the Digispark RGB library
#include <DigisparkRGB.h>
/*
Digispark RGB
This example shows how to use soft PWM to fade 3 colors.
Note: This is only necessary for PB2 (pin 2) - Blue, as Red (pin 0) and Green (pin 1) as well as pin 4 support the standard Arduino analogWrite() function.
This example code is in the public domain.
*/
byte RED = 0;
byte BLUE = 2;
byte GREEN = 1;
byte COLORS[] = {RED, BLUE, GREEN};
// the setup routine runs once when you press reset:
void setup() {
DigisparkRGBBegin();
}
void loop ()
{
//direction: up = true, down = false
boolean dir = true;
int i = 0;
while(1)
{
fade(COLORS[i%3], dir);
i++;
dir = !dir;
}
}
void fade(byte Led, boolean dir)
{
int i;
//if fading up
if (dir)
{
for (i = 0; i < 256; i++)
{
DigisparkRGB(Led, i);
DigisparkRGBDelay(25);//1);
}
}
else
{
for (i = 255; i >= 0; i--)
{
DigisparkRGB(Led, i);
DigisparkRGBDelay(25);//1);
}
}
}