#include <LedControl.h>
int DIN_PIN = 5;
int CLK_PIN = 6;
int CS_PIN = 7;
int red = 10;
int yellow = 9;
int green = 8;
LedControl lc = LedControl(DIN_PIN, CLK_PIN, CS_PIN, 1); // 1 for single module
byte nine[] = {
B00000000,
B00111100,
B00100100,
B00111100,
B00000100,
B00111100,
B00000000,
B00000000
};
byte eight[] = {
B00000000,
B00111100,
B00100100,
B00111100,
B00100100,
B00111100,
B00000000,
B00000000
};
byte seven[] = {
B00000000,
B00111100,
B00000100,
B00000100,
B00000100,
B00000100,
B00000000,
B00000000
};
byte six[] = {
B00000000,
B00111100,
B00100000,
B00111100,
B00100100,
B00111100,
B00000000,
B00000000
};
byte five[] = {
B00000000,
B00111100,
B00100000,
B00111100,
B00000100,
B00111100,
B00000000,
B00000000
};
byte four[] = {
B00000000,
B00100100,
B00100100,
B00111100,
B00000100,
B00000100,
B00000000,
B00000000
};
byte three[] = {
B00000000,
B00111100,
B00000100,
B00111100,
B00000100,
B00111100,
B00000000,
B00000000
};
byte two[] = {
B00000000,
B00111100,
B00000100,
B00111100,
B00100000,
B00111100,
B00000000,
B00000000
};
byte one[] = {
B00000000,
B00000100,
B00000100,
B00000100,
B00000100,
B00000100,
B00000000,
B00000000
};
byte zero[] = {
B00000000,
B00111100,
B00100100,
B00100100,
B00100100,
B00111100,
B00000000,
B00000000
};
void setup() {
lc.shutdown(0, false);
lc.setIntensity(0, 8);
lc.clearDisplay(0);
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
}
void c9()
{
for (int i = 0; i < 8; i++) {
lc.setRow(0, i, nine[i]);
}
delay(1000);
}
void c8()
{
for (int i = 0; i < 8; i++) {
lc.setRow(0, i, eight[i]);
}
delay(1000);
}
void c7()
{
for (int i = 0; i < 8; i++) {
lc.setRow(0, i, seven[i]);
}
delay(1000);
}
void c6()
{
for (int i = 0; i < 8; i++) {
lc.setRow(0, i, six[i]);
}
delay(1000);
}
void c5()
{
for (int i = 0; i < 8; i++) {
lc.setRow(0, i, five[i]);
}
delay(1000);
}
void c4()
{
for (int i = 0; i < 8; i++) {
lc.setRow(0, i, four[i]);
}
delay(1000);
}
void c3()
{
for (int i = 0; i < 8; i++) {
lc.setRow(0, i, three[i]);
}
delay(1000);
}
void c2()
{
for (int i = 0; i < 8; i++) {
lc.setRow(0, i, two[i]);
}
delay(1000);
}
void c1()
{
for (int i = 0; i < 8; i++) {
lc.setRow(0, i, one[i]);
}
delay(1000);
}
void c0()
{
for (int i = 0; i < 8; i++) {
lc.setRow(0, i, zero[i]);
}
delay(1000);
}
void w3()
{
for (int i = 0; i < 8; i++) {
lc.setRow(0, i, three[i]);
}
}
void w2()
{
for (int i = 0; i < 8; i++) {
lc.setRow(0, i, two[i]);
}
}
void w1()
{
for (int i = 0; i < 8; i++) {
lc.setRow(0, i, one[i]);
}
}
void w0()
{
for (int i = 0; i < 8; i++) {
lc.setRow(0, i, zero[i]);
}
}
void go()
{
digitalWrite(red, LOW);
digitalWrite(yellow, LOW);
digitalWrite(green, HIGH);
c9();
c8();
c7();
c6();
c5();
c4();
c3();
c2();
c1();
c0();
}
void stop()
{
digitalWrite(red, HIGH);
digitalWrite(yellow, LOW);
digitalWrite(green, LOW);
c9();
c8();
c7();
c6();
c5();
c4();
c3();
c2();
c1();
c0();
}
void warning()
{
digitalWrite(red, LOW);
digitalWrite(yellow, HIGH);
digitalWrite(green, LOW);
w3();
delay(500);
digitalWrite(yellow, LOW);
delay(500);
digitalWrite(yellow, HIGH);
w2();
delay(500);
digitalWrite(yellow, LOW);
delay(500);
digitalWrite(yellow, HIGH);
w1();
delay(500);
digitalWrite(yellow, LOW);
delay(500);
digitalWrite(yellow, HIGH);
w0();
delay(500);
digitalWrite(yellow, LOW);
delay(500);
digitalWrite(yellow, HIGH);
}
void loop() {
stop();
go();
warning();
}