显示数字。
This commit is contained in:
166
8By8/8By8.ino
166
8By8/8By8.ino
@@ -5,18 +5,8 @@
|
||||
#define CLOCK_START_PIN 30
|
||||
#define SW_START_PIN 38
|
||||
|
||||
|
||||
int numbers[10] = {
|
||||
0xF6F,
|
||||
0x592,
|
||||
0xE57,
|
||||
0xE8F,
|
||||
0x979,
|
||||
0xF8F,
|
||||
0xF3F,
|
||||
0xE54,
|
||||
0xFEF,
|
||||
0xFCF,
|
||||
const int numbers[10] = {
|
||||
0xF6F, 0x592, 0xE57, 0xE8F, 0x979, 0xF8F, 0xF3F, 0xE54, 0xFEF, 0xFCF,
|
||||
};
|
||||
|
||||
class Cube {
|
||||
@@ -55,7 +45,7 @@ public:
|
||||
|
||||
static void set_status(int x, int y, int z, int brightness) {
|
||||
if (x >= 8 || x < 0 || y >= 8 || y < 0 || z >= 8 || z < 0) {
|
||||
return;
|
||||
return;
|
||||
}
|
||||
brightness %= 4;
|
||||
LED_status[z][x] =
|
||||
@@ -73,6 +63,71 @@ public:
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void draw_num(int x, int y, int z, int num, int direction,
|
||||
int brightness) {
|
||||
// 0 = look along x
|
||||
// 1 = look reverse x
|
||||
// 2 = look along y
|
||||
// 3 = look reverse y
|
||||
if (num > 9 || num < 0) {
|
||||
return;
|
||||
}
|
||||
switch (direction) {
|
||||
case 0: {
|
||||
for (int i = 0; i < 3; i++) {
|
||||
for (int j = 0; j < 4; j++) {
|
||||
if ((numbers[num] >> (11 - (i + j * 3))) & 1) {
|
||||
Cube::set_status(x, y - i, z - j, brightness);
|
||||
}
|
||||
else {
|
||||
Cube::set_status(x, y - i, z - j, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 1: {
|
||||
for (int i = 0; i < 3; i++) {
|
||||
for (int j = 0; j < 4; j++) {
|
||||
if ((numbers[num] >> (11 - (i + j * 3))) & 1) {
|
||||
Cube::set_status(x, y + i, z - j, brightness);
|
||||
}
|
||||
else {
|
||||
Cube::set_status(x, y + i, z - j, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 2: {
|
||||
for (int i = 0; i < 3; i++) {
|
||||
for (int j = 0; j < 4; j++) {
|
||||
if ((numbers[num] >> (11 - (i + j * 3))) & 1) {
|
||||
Cube::set_status(x + i, y, z - j, brightness);
|
||||
}
|
||||
else {
|
||||
Cube::set_status(x + i, y, z - j, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 3: {
|
||||
for (int i = 0; i < 3; i++) {
|
||||
for (int j = 0; j < 4; j++) {
|
||||
if ((numbers[num] >> (11 - (i + j * 3))) & 1) {
|
||||
Cube::set_status(x - i, y, z - j, brightness);
|
||||
}
|
||||
else {
|
||||
Cube::set_status(x - i, y, z - j, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
int Cube::layer_count = 0;
|
||||
@@ -95,79 +150,14 @@ void setup() {
|
||||
}
|
||||
|
||||
void loop() {
|
||||
// Ref: https://raw.githubusercontent.com/wiki/olikraus/u8glib/fontpic/u8g_font_u8glib_4.png
|
||||
|
||||
// for (int i = 7; i >= 0; i--) {
|
||||
// for (int j = 0; j < 8; j++) {
|
||||
// for (int k = 0; k < 8; k++) {
|
||||
// Cube::set_status(i, j, k, bright);
|
||||
// delay(5);
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// bright = (bright + 1) % 4;
|
||||
|
||||
// // 0
|
||||
// Cube::clear();
|
||||
// Cube::set_status(7, 0, 7, 3);
|
||||
// Cube::set_status(7, 1, 7, 3);
|
||||
// Cube::set_status(7, 2, 7, 3);
|
||||
|
||||
// Cube::set_status(7, 0, 6, 3);
|
||||
// Cube::set_status(7, 2, 6, 3);
|
||||
|
||||
// Cube::set_status(7, 0, 5, 3);
|
||||
// Cube::set_status(7, 2, 5, 3);
|
||||
|
||||
// Cube::set_status(7, 0, 4, 3);
|
||||
// Cube::set_status(7, 1, 4, 3);
|
||||
// Cube::set_status(7, 2, 4, 3);
|
||||
|
||||
// delay(5000);
|
||||
|
||||
// // 1
|
||||
// Cube::clear();
|
||||
// Cube::set_status(7, 1, 7, 3);
|
||||
// Cube::set_status(7, 0, 6, 3);
|
||||
// Cube::set_status(7, 1, 6, 3);
|
||||
// Cube::set_status(7, 1, 5, 3);
|
||||
// // Cube::set_status(7, 0, 4, 3);
|
||||
// Cube::set_status(7, 1, 4, 3);
|
||||
// // Cube::set_status(7, 2, 4, 3);
|
||||
// delay(5000);
|
||||
|
||||
// 2
|
||||
|
||||
Cube::clear();
|
||||
|
||||
Cube::set_status(6, 0, 7, 3);
|
||||
Cube::set_status(6, 1, 7, 3);
|
||||
Cube::set_status(6, 2, 7, 3);
|
||||
|
||||
Cube::set_status(6, 2, 6, 3);
|
||||
|
||||
Cube::set_status(6, 1, 5, 3);
|
||||
|
||||
Cube::set_status(6, 0, 4, 3);
|
||||
Cube::set_status(6, 1, 4, 3);
|
||||
Cube::set_status(6, 2, 4, 3);
|
||||
|
||||
// delay(5000);
|
||||
|
||||
// 3
|
||||
// Cube::clear();
|
||||
|
||||
Cube::set_status(7, 0, 3, 3);
|
||||
Cube::set_status(7, 1, 3, 3);
|
||||
Cube::set_status(7, 2, 3, 3);
|
||||
|
||||
Cube::set_status(7, 1, 2, 3);
|
||||
|
||||
Cube::set_status(7, 2, 1, 3);
|
||||
|
||||
Cube::set_status(7, 0, 0, 3);
|
||||
Cube::set_status(7, 1, 0, 3);
|
||||
Cube::set_status(7, 2, 0, 3);
|
||||
|
||||
delay(5000);
|
||||
// Ref:
|
||||
// https://raw.githubusercontent.com/wiki/olikraus/u8glib/fontpic/u8g_font_u8glib_4.png
|
||||
int i = 0;
|
||||
while (true) {
|
||||
Serial.println(i);
|
||||
Cube::clear();
|
||||
Cube::draw_num(7, 7, 7, i, 3, 3);
|
||||
i = (i + 1) % 10;
|
||||
delay(1000);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user