Ping Pong boll fullfärg binär klocka (3 / 3 steg)
Steg 3: Hela programmet
#include < Colorduino.h >
#include < Wire.h >
#include < Time.h >
#include < DS1307RTC.h >
int R = 30.
int B = 40;
int G = 50;
int rad = 0;
int g = 0;
int GKB = 0;
int increment = 12.
int initalG = 0;
void setup()
{
Colorduino.Init();
unsigned char whiteBalVal [3] = {28,60,44}; //RGB
Colorduino.SetWhiteBal(whiteBalVal);
}
void binaryOutput(int number)
{
om (nummer > = 10)
{
int tior = antal / 10;
int enheter = nummer - (TEN * 10);
setBinary(units,ROW);
RAD = RAD + 1.
setBinary(tens,ROW);
}
annat
{
int tior = 0;
int enheter = nummer;
setBinary(units,ROW);
RAD = RAD + 1.
setBinary(tens,ROW);
}
}
void setBinary (int värde, int whichRow)
{
RAD = whichRow;
int XYZ = 8.
int COL = 3;
för (int jag = 0; jag < 4; i ++)
{
getColor(g);
om (värde > = XYZ)
{
Colorduino.SetPixel(ROW,COL,R,G,B);
värde = värde - XYZ;
}
annat
{
Colorduino.SetPixel(ROW,COL,0,0,0);
}
XYZ = XYZ / 2;
COL = COL - 1.
}
}
void getColor(int rainbow)
{
om (rainbow < 255)
{
R = regnbåge;
B = 255 - rainbow;
G = 0;
}
annars om (rainbow < 511)
{
Rainbow = rainbow - 255;
R = 255 - rainbow;
B = 0;
G = regnbåge;
}
annat
{
Rainbow = rainbow - 510;
R = 0;
B = regnbåge;
G = 255 - rainbow;
}
g = g + ökning;
om (g > (765 - increment))
{
g = 0;
}
}
void loop()
{
tmElements_t tm;
om (RTC.read(tm))
{
initalG = g;
binaryOutput (tm. Andra).
RAD = RAD + 1.
binaryOutput (tm. Minut).
RAD = RAD + 1.
binaryOutput (tm. Timme).
RAD = 0;
Delay(6);
g = initalG + 1.
om (g > (765 - increment))
{
g = 0;
}
}
Colorduino.FlipPage();
}