Tasmota/lib/lib_display/TM1637TinyDisplay/examples/ATtiny85/ATtiny85.ino
2021-02-14 16:54:54 +05:30

403 lines
15 KiB
C++

// TM1637TinyDisplay DEMO Sketch for ATtiny85
// This is a demo sketch for the Arduino TM1637TinyDisplay LED Display library
// Designed for small memory processors like the ATtiny85
//
// Author: Jason A. Cox - @jasonacox
// Date: 2 July 2020
//
// Based on TM1637Display library at https://github.com/avishorp/TM1637
//
// Includes
#include <Arduino.h>
#include <TM1637TinyDisplay.h>
#include <avr/pgmspace.h>
// Define Digital Pins
#define CLK 4
#define DIO 5
// Initialize TM1637TinyDisplay
TM1637TinyDisplay display(CLK, DIO);
// Animation data below was created with the Animator Tool located here:
// https://jasonacox.github.io/TM1637TinyDisplay/examples/7-segment-animator.html
// To save RAM space, we store the animation sequences in PROGMEM read-only flash memory.
// This requires using the showAnimation_P() function to read from PROGMEM memory space.
const uint8_t ANIMATION1[40][4] PROGMEM = {
{ 0x00, 0x00, 0x00, 0x00 }, // Frame 0
{ 0x01, 0x00, 0x00, 0x00 }, // Frame 1
{ 0x40, 0x01, 0x00, 0x00 }, // Frame 2
{ 0x08, 0x40, 0x00, 0x01 }, // Frame 3
{ 0x00, 0x08, 0x01, 0x40 }, // Frame 4
{ 0x01, 0x00, 0x40, 0x08 }, // Frame 5
{ 0x40, 0x01, 0x08, 0x00 }, // Frame 6
{ 0x08, 0x40, 0x00, 0x01 }, // Frame 7
{ 0x00, 0x08, 0x01, 0x40 }, // Frame 8
{ 0x01, 0x01, 0x40, 0x08 }, // Frame 9
{ 0x40, 0x40, 0x09, 0x00 }, // Frame 10
{ 0x08, 0x08, 0x40, 0x01 }, // Frame 11
{ 0x01, 0x00, 0x08, 0x40 }, // Frame 12
{ 0x40, 0x01, 0x00, 0x08 }, // Frame 13
{ 0x08, 0x40, 0x01, 0x00 }, // Frame 14
{ 0x01, 0x09, 0x41, 0x01 }, // Frame 15
{ 0x40, 0x40, 0x48, 0x40 }, // Frame 16
{ 0x08, 0x08, 0x08, 0x08 }, // Frame 17
{ 0x1c, 0x1c, 0x1c, 0x1c }, // Frame 18
{ 0x3e, 0x3e, 0x3e, 0x3e }, // Frame 19
{ 0x3f, 0x3f, 0x3f, 0x3f }, // Frame 20
{ 0x3f, 0x3f, 0x3f, 0x3f }, // Frame 21
{ 0x3f, 0x3f, 0x3f, 0x3f }, // Frame 22
{ 0x00, 0x00, 0x00, 0x00 }, // Frame 23
{ 0x00, 0x00, 0x00, 0x00 }, // Frame 24
{ 0x3f, 0x3f, 0x3f, 0x3f }, // Frame 25
{ 0x3f, 0x3f, 0x3f, 0x3f }, // Frame 26
{ 0x3f, 0x3f, 0x3f, 0x3f }, // Frame 27
{ 0x00, 0x00, 0x00, 0x00 }, // Frame 28
{ 0x00, 0x00, 0x00, 0x00 }, // Frame 29
{ 0x00, 0x00, 0x00, 0x00 }, // Frame 30
{ 0x3f, 0x3f, 0x3f, 0x3f }, // Frame 31
{ 0x3f, 0x3f, 0x3f, 0x3f }, // Frame 32
{ 0x3f, 0x3f, 0x3f, 0x3f }, // Frame 33
{ 0x00, 0x00, 0x00, 0x00 }, // Frame 34
{ 0x00, 0x00, 0x00, 0x00 }, // Frame 35
{ 0x00, 0x00, 0x00, 0x00 }, // Frame 36
{ 0x3f, 0x3f, 0x3f, 0x3f }, // Frame 37
{ 0x3f, 0x3f, 0x3f, 0x3f }, // Frame 38
{ 0x3f, 0x3f, 0x3f, 0x3f } // Frame 39
};
const uint8_t ANIMATION2[33][4] PROGMEM = {
{ 0x08, 0x00, 0x00, 0x00 }, // Frame 0
{ 0x00, 0x08, 0x00, 0x00 }, // Frame 1
{ 0x00, 0x00, 0x08, 0x00 }, // Frame 2
{ 0x00, 0x00, 0x00, 0x08 }, // Frame 3
{ 0x00, 0x00, 0x00, 0x04 }, // Frame 4
{ 0x00, 0x00, 0x00, 0x02 }, // Frame 5
{ 0x00, 0x00, 0x00, 0x01 }, // Frame 6
{ 0x00, 0x00, 0x01, 0x00 }, // Frame 7
{ 0x00, 0x01, 0x00, 0x00 }, // Frame 8
{ 0x01, 0x00, 0x00, 0x00 }, // Frame 9
{ 0x20, 0x00, 0x00, 0x00 }, // Frame 10
{ 0x10, 0x00, 0x00, 0x00 }, // Frame 11
{ 0x08, 0x00, 0x00, 0x00 }, // Frame 12
{ 0x00, 0x08, 0x00, 0x00 }, // Frame 13
{ 0x00, 0x00, 0x08, 0x00 }, // Frame 14
{ 0x00, 0x00, 0x04, 0x00 }, // Frame 15
{ 0x00, 0x00, 0x02, 0x00 }, // Frame 16
{ 0x00, 0x00, 0x01, 0x00 }, // Frame 17
{ 0x00, 0x01, 0x00, 0x00 }, // Frame 18
{ 0x00, 0x20, 0x00, 0x00 }, // Frame 19
{ 0x00, 0x10, 0x00, 0x00 }, // Frame 20
{ 0x00, 0x08, 0x00, 0x00 }, // Frame 21
{ 0x00, 0x00, 0x08, 0x00 }, // Frame 22
{ 0x00, 0x00, 0x00, 0x08 }, // Frame 23
{ 0x00, 0x00, 0x00, 0x04 }, // Frame 24
{ 0x00, 0x00, 0x00, 0x02 }, // Frame 25
{ 0x00, 0x00, 0x00, 0x01 }, // Frame 26
{ 0x00, 0x00, 0x01, 0x00 }, // Frame 27
{ 0x00, 0x01, 0x00, 0x00 }, // Frame 28
{ 0x01, 0x00, 0x00, 0x00 }, // Frame 29
{ 0x20, 0x00, 0x00, 0x00 }, // Frame 30
{ 0x10, 0x00, 0x00, 0x00 }, // Frame 31
{ 0x00, 0x00, 0x00, 0x00 } // Frame 32
};
const uint8_t ANIMATION3[218][4] PROGMEM = {
{ 0x08, 0x00, 0x00, 0x00 }, // Frame 0
{ 0x40, 0x08, 0x00, 0x00 }, // Frame 1
{ 0x01, 0x40, 0x08, 0x00 }, // Frame 2
{ 0x00, 0x01, 0x40, 0x08 }, // Frame 3
{ 0x00, 0x00, 0x01, 0x40 }, // Frame 4
{ 0x00, 0x00, 0x00, 0x01 }, // Frame 5
{ 0x00, 0x00, 0x00, 0x00 }, // Frame 6
{ 0x63, 0x00, 0x00, 0x00 }, // Frame 7
{ 0x00, 0x5c, 0x00, 0x00 }, // Frame 8
{ 0x00, 0x00, 0x63, 0x00 }, // Frame 9
{ 0x00, 0x00, 0x00, 0x5c }, // Frame 10
{ 0x00, 0x00, 0x00, 0x00 }, // Frame 11
{ 0x01, 0x01, 0x01, 0x01 }, // Frame 12
{ 0x41, 0x41, 0x41, 0x41 }, // Frame 13
{ 0x49, 0x49, 0x49, 0x49 }, // Frame 14
{ 0x79, 0x49, 0x49, 0x49 }, // Frame 15
{ 0x7f, 0x49, 0x49, 0x49 }, // Frame 16
{ 0x7f, 0x79, 0x49, 0x49 }, // Frame 17
{ 0x7f, 0x7f, 0x49, 0x49 }, // Frame 18
{ 0x7f, 0x7f, 0x79, 0x49 }, // Frame 19
{ 0x7f, 0x7f, 0x7f, 0x49 }, // Frame 20
{ 0x7f, 0x7f, 0x7f, 0x79 }, // Frame 21
{ 0x7f, 0x7f, 0x7f, 0x7f }, // Frame 22
{ 0x3f, 0x7f, 0x7f, 0x7f }, // Frame 23
{ 0x3f, 0x3f, 0x7f, 0x7f }, // Frame 24
{ 0x3f, 0x3f, 0x3f, 0x7f }, // Frame 25
{ 0x3f, 0x3f, 0x3f, 0x3f }, // Frame 26
{ 0x1e, 0x3f, 0x3f, 0x3f }, // Frame 27
{ 0x0c, 0x3f, 0x3f, 0x3f }, // Frame 28
{ 0x00, 0x1e, 0x3f, 0x3f }, // Frame 29
{ 0x00, 0x0c, 0x3f, 0x3f }, // Frame 30
{ 0x00, 0x00, 0x1e, 0x3f }, // Frame 31
{ 0x00, 0x00, 0x0c, 0x3f }, // Frame 32
{ 0x00, 0x00, 0x00, 0x1e }, // Frame 33
{ 0x00, 0x00, 0x00, 0x0c }, // Frame 34
{ 0x00, 0x00, 0x00, 0x00 }, // Frame 35
{ 0x00, 0x00, 0x00, 0x08 }, // Frame 36
{ 0x00, 0x00, 0x00, 0x10 }, // Frame 37
{ 0x00, 0x00, 0x00, 0x20 }, // Frame 38
{ 0x00, 0x00, 0x00, 0x01 }, // Frame 39
{ 0x00, 0x00, 0x00, 0x02 }, // Frame 40
{ 0x00, 0x00, 0x00, 0x04 }, // Frame 41
{ 0x00, 0x00, 0x00, 0x08 }, // Frame 42
{ 0x00, 0x00, 0x08, 0x00 }, // Frame 43
{ 0x00, 0x00, 0x10, 0x00 }, // Frame 44
{ 0x00, 0x00, 0x20, 0x00 }, // Frame 45
{ 0x00, 0x00, 0x01, 0x00 }, // Frame 46
{ 0x00, 0x00, 0x02, 0x00 }, // Frame 47
{ 0x00, 0x00, 0x04, 0x00 }, // Frame 48
{ 0x00, 0x00, 0x08, 0x00 }, // Frame 49
{ 0x00, 0x08, 0x00, 0x00 }, // Frame 50
{ 0x00, 0x10, 0x00, 0x00 }, // Frame 51
{ 0x00, 0x20, 0x00, 0x00 }, // Frame 52
{ 0x00, 0x01, 0x00, 0x00 }, // Frame 53
{ 0x00, 0x02, 0x00, 0x00 }, // Frame 54
{ 0x00, 0x04, 0x00, 0x00 }, // Frame 55
{ 0x00, 0x08, 0x00, 0x00 }, // Frame 56
{ 0x08, 0x00, 0x00, 0x00 }, // Frame 57
{ 0x10, 0x00, 0x00, 0x00 }, // Frame 58
{ 0x20, 0x00, 0x00, 0x00 }, // Frame 59
{ 0x01, 0x00, 0x00, 0x00 }, // Frame 60
{ 0x02, 0x00, 0x00, 0x00 }, // Frame 61
{ 0x04, 0x00, 0x00, 0x00 }, // Frame 62
{ 0x08, 0x00, 0x00, 0x00 }, // Frame 63
{ 0x18, 0x00, 0x00, 0x00 }, // Frame 64
{ 0x38, 0x00, 0x00, 0x00 }, // Frame 65
{ 0x39, 0x00, 0x00, 0x00 }, // Frame 66
{ 0x39, 0x01, 0x00, 0x00 }, // Frame 67
{ 0x39, 0x01, 0x01, 0x00 }, // Frame 68
{ 0x39, 0x01, 0x01, 0x01 }, // Frame 69
{ 0x39, 0x01, 0x01, 0x03 }, // Frame 70
{ 0x39, 0x01, 0x01, 0x07 }, // Frame 71
{ 0x39, 0x01, 0x01, 0x0f }, // Frame 72
{ 0x39, 0x01, 0x09, 0x0f }, // Frame 73
{ 0x39, 0x09, 0x09, 0x0f }, // Frame 74
{ 0x06, 0x09, 0x09, 0x30 }, // Frame 75
{ 0x00, 0x39, 0x0f, 0x00 }, // Frame 76
{ 0x00, 0x06, 0x30, 0x00 }, // Frame 77
{ 0x00, 0x46, 0x70, 0x00 }, // Frame 78
{ 0x40, 0x06, 0x30, 0x40 }, // Frame 79
{ 0x30, 0x06, 0x30, 0x06 }, // Frame 80
{ 0x30, 0x30, 0x06, 0x06 }, // Frame 81
{ 0x36, 0x00, 0x00, 0x36 }, // Frame 82
{ 0x30, 0x00, 0x00, 0x06 }, // Frame 83
{ 0x00, 0x00, 0x00, 0x00 }, // Frame 84
{ 0x4c, 0x00, 0x00, 0x00 }, // Frame 85
{ 0x00, 0x4c, 0x00, 0x00 }, // Frame 86
{ 0x00, 0x00, 0x4c, 0x00 }, // Frame 87
{ 0x00, 0x00, 0x00, 0x4c }, // Frame 88
{ 0x00, 0x00, 0x00, 0x00 }, // Frame 89
{ 0x00, 0x00, 0x00, 0x61 }, // Frame 90
{ 0x00, 0x00, 0x61, 0x00 }, // Frame 91
{ 0x00, 0x61, 0x00, 0x00 }, // Frame 92
{ 0x61, 0x00, 0x00, 0x00 }, // Frame 93
{ 0x00, 0x00, 0x00, 0x00 }, // Frame 94
{ 0x00, 0x00, 0x08, 0x00 }, // Frame 95
{ 0x00, 0x00, 0x5c, 0x00 }, // Frame 96
{ 0x00, 0x08, 0x7f, 0x08 }, // Frame 97
{ 0x00, 0x0c, 0x7f, 0x18 }, // Frame 98
{ 0x00, 0x5e, 0x7f, 0x7c }, // Frame 99
{ 0x08, 0x7f, 0x7f, 0x7f }, // Frame 100
{ 0x0c, 0x7f, 0x7f, 0x7f }, // Frame 101
{ 0x5e, 0x7f, 0x7f, 0x7f }, // Frame 102
{ 0x7f, 0x7f, 0x7f, 0x7f }, // Frame 103
{ 0x7e, 0x7e, 0x7e, 0x7e }, // Frame 104
{ 0x3f, 0x3f, 0x3f, 0x3f }, // Frame 105
{ 0x77, 0x77, 0x77, 0x77 }, // Frame 106
{ 0x7f, 0x7f, 0x7f, 0x7f }, // Frame 107
{ 0x00, 0x00, 0x00, 0x00 }, // Frame 108
{ 0x00, 0x00, 0x00, 0x00 }, // Frame 109
{ 0x7f, 0x7f, 0x7f, 0x7f }, // Frame 110
{ 0x7f, 0x7f, 0x7f, 0x7f }, // Frame 111
{ 0x3f, 0x3f, 0x3f, 0x3f }, // Frame 112
{ 0x3f, 0x3f, 0x3f, 0x3f }, // Frame 113
{ 0x3f, 0x3f, 0x3f, 0x39 }, // Frame 114
{ 0x3f, 0x3f, 0x3f, 0x30 }, // Frame 115
{ 0x3f, 0x3f, 0x3f, 0x00 }, // Frame 116
{ 0x3f, 0x3f, 0x39, 0x00 }, // Frame 117
{ 0x3f, 0x3f, 0x30, 0x00 }, // Frame 118
{ 0x3f, 0x3f, 0x00, 0x00 }, // Frame 119
{ 0x3f, 0x39, 0x00, 0x00 }, // Frame 120
{ 0x3f, 0x30, 0x00, 0x00 }, // Frame 121
{ 0x3f, 0x00, 0x00, 0x00 }, // Frame 122
{ 0x39, 0x00, 0x00, 0x00 }, // Frame 123
{ 0x30, 0x00, 0x00, 0x00 }, // Frame 124
{ 0x00, 0x00, 0x00, 0x00 }, // Frame 125
{ 0x38, 0x00, 0x00, 0x00 }, // Frame 126
{ 0x3f, 0x38, 0x00, 0x00 }, // Frame 127
{ 0x38, 0x3f, 0x38, 0x00 }, // Frame 128
{ 0x00, 0x38, 0x3f, 0x38 }, // Frame 129
{ 0x00, 0x00, 0x38, 0x3f }, // Frame 130
{ 0x00, 0x00, 0x00, 0x38 }, // Frame 131
{ 0x00, 0x00, 0x00, 0x00 }, // Frame 132
{ 0x40, 0x00, 0x00, 0x00 }, // Frame 133
{ 0x00, 0x40, 0x00, 0x00 }, // Frame 134
{ 0x00, 0x00, 0x40, 0x00 }, // Frame 135
{ 0x00, 0x00, 0x00, 0x46 }, // Frame 136
{ 0x00, 0x00, 0x00, 0x39 }, // Frame 137
{ 0x40, 0x00, 0x06, 0x09 }, // Frame 138
{ 0x00, 0x40, 0x39, 0x09 }, // Frame 139
{ 0x40, 0x06, 0x09, 0x09 }, // Frame 140
{ 0x00, 0x39, 0x09, 0x09 }, // Frame 141
{ 0x46, 0x09, 0x09, 0x09 }, // Frame 142
{ 0x39, 0x09, 0x09, 0x09 }, // Frame 143
{ 0x09, 0x09, 0x09, 0x0f }, // Frame 144
{ 0x09, 0x09, 0x09, 0x79 }, // Frame 145
{ 0x09, 0x09, 0x0f, 0x00 }, // Frame 146
{ 0x09, 0x09, 0x79, 0x00 }, // Frame 147
{ 0x09, 0x0f, 0x09, 0x00 }, // Frame 148
{ 0x09, 0x79, 0x00, 0x00 }, // Frame 149
{ 0x0f, 0x09, 0x00, 0x00 }, // Frame 150
{ 0x79, 0x00, 0x00, 0x00 }, // Frame 151
{ 0x30, 0x00, 0x00, 0x00 }, // Frame 152
{ 0x00, 0x00, 0x00, 0x00 }, // Frame 153
{ 0x01, 0x00, 0x00, 0x00 }, // Frame 154
{ 0x08, 0x00, 0x00, 0x00 }, // Frame 155
{ 0x00, 0x01, 0x00, 0x00 }, // Frame 156
{ 0x00, 0x08, 0x00, 0x00 }, // Frame 157
{ 0x00, 0x00, 0x01, 0x00 }, // Frame 158
{ 0x00, 0x00, 0x08, 0x00 }, // Frame 159
{ 0x00, 0x00, 0x00, 0x01 }, // Frame 160
{ 0x00, 0x00, 0x00, 0x08 }, // Frame 161
{ 0x00, 0x00, 0x00, 0x00 }, // Frame 162
{ 0x00, 0x00, 0x00, 0x6d }, // Frame 163
{ 0x00, 0x00, 0x6d, 0x73 }, // Frame 164
{ 0x00, 0x6d, 0x73, 0x77 }, // Frame 165
{ 0x6d, 0x73, 0x77, 0x39 }, // Frame 166
{ 0x73, 0x77, 0x39, 0x79 }, // Frame 167
{ 0x77, 0x39, 0x79, 0x00 }, // Frame 168
{ 0x39, 0x79, 0x00, 0x00 }, // Frame 169
{ 0x79, 0x00, 0x00, 0x00 }, // Frame 170
{ 0x00, 0x00, 0x00, 0x00 }, // Frame 171
{ 0x79, 0x00, 0x00, 0x00 }, // Frame 172
{ 0x00, 0x79, 0x00, 0x00 }, // Frame 173
{ 0x00, 0x00, 0x79, 0x00 }, // Frame 174
{ 0x00, 0x00, 0x00, 0x79 }, // Frame 175
{ 0x10, 0x00, 0x00, 0x79 }, // Frame 176
{ 0x74, 0x00, 0x00, 0x79 }, // Frame 177
{ 0x00, 0x74, 0x00, 0x79 }, // Frame 178
{ 0x00, 0x00, 0x74, 0x79 }, // Frame 179
{ 0x78, 0x00, 0x74, 0x79 }, // Frame 180
{ 0x00, 0x78, 0x74, 0x79 }, // Frame 181
{ 0x00, 0x78, 0x74, 0x79 }, // Frame 182
{ 0x00, 0x78, 0x74, 0x79 }, // Frame 183
{ 0x78, 0x74, 0x79, 0x00 }, // Frame 184
{ 0x74, 0x79, 0x00, 0x00 }, // Frame 185
{ 0x79, 0x00, 0x00, 0x00 }, // Frame 186
{ 0x79, 0x00, 0x00, 0x00 }, // Frame 187
{ 0x79, 0x00, 0x00, 0x04 }, // Frame 188
{ 0x79, 0x00, 0x00, 0x54 }, // Frame 189
{ 0x79, 0x00, 0x54, 0x00 }, // Frame 190
{ 0x79, 0x54, 0x00, 0x00 }, // Frame 191
{ 0x79, 0x54, 0x00, 0x04 }, // Frame 192
{ 0x79, 0x54, 0x00, 0x5e }, // Frame 193
{ 0x79, 0x54, 0x04, 0x30 }, // Frame 194
{ 0x79, 0x54, 0x5e, 0x00 }, // Frame 195
{ 0x79, 0x54, 0x5e, 0x00 }, // Frame 196
{ 0x79, 0x55, 0x5e, 0x02 }, // Frame 197
{ 0x79, 0x54, 0x5e, 0x10 }, // Frame 198
{ 0xf9, 0x54, 0x5e, 0x20 }, // Frame 199
{ 0x79, 0xd4, 0x5e, 0x08 }, // Frame 200
{ 0x79, 0x54, 0x5e, 0x00 }, // Frame 201
{ 0x69, 0x54, 0x5e, 0x00 }, // Frame 202
{ 0x79, 0x54, 0x5e, 0x00 }, // Frame 203
{ 0x79, 0x54, 0x1e, 0x00 }, // Frame 204
{ 0x79, 0x54, 0x5e, 0x00 }, // Frame 205
{ 0x79, 0x14, 0x5e, 0x00 }, // Frame 206
{ 0x68, 0x14, 0x5e, 0x00 }, // Frame 207
{ 0x68, 0x14, 0x1e, 0x00 }, // Frame 208
{ 0x68, 0x14, 0x16, 0x00 }, // Frame 209
{ 0x68, 0x04, 0x16, 0x00 }, // Frame 210
{ 0x28, 0x04, 0x16, 0x00 }, // Frame 211
{ 0x28, 0x04, 0x14, 0x00 }, // Frame 212
{ 0x08, 0x04, 0x14, 0x00 }, // Frame 213
{ 0x08, 0x04, 0x04, 0x00 }, // Frame 214
{ 0x00, 0x04, 0x04, 0x00 }, // Frame 215
{ 0x00, 0x00, 0x04, 0x00 }, // Frame 216
{ 0x00, 0x00, 0x00, 0x00 } // Frame 217
};
const PROGMEM char FlashString[] = "Flash Test - 1234567890"; // Must be globally defined for PROGMEM space
const PROGMEM char FlashString2[] = "good";
void setup() {
display.setBrightness(BRIGHT_7);
}
void loop() {
// Say Hello
display.showString("HELLO");
delay(500);
// Clear Screen
display.clear();
// We can count!
for (int x = -100; x <= 100; x++) {
display.showNumber(x);
}
// Demo Brightness Levels
for (int x = 0; x < 8; x++) {
display.setBrightness(x);
display.showString("On ");
display.showNumber(x, false, 1, 3);
delay(1000);
}
// Demo Horizontal Level Meter
for (int count = 0; count < 3; count++) {
for (int x = 0; x <= 100; x = x + 10) {
display.showLevel(x, true);
delay(20);
}
for (int x = 100; x >= 0; x = x - 10) {
display.showLevel(x, true);
delay(20);
}
}
// Demo Vertical Level Meter
for (int count = 0; count < 3; count++) {
for (int x = 0; x <= 100; x = x + 10) {
display.showLevel(x, false);
delay(20);
}
for (int x = 100; x >= 0; x = x - 10) {
display.showLevel(x, false);
delay(20);
}
}
delay(1000);
// Demo split screen for temperature
display.showString("\xB0", 1, 3); // Degree Mark, length=1, position=3 (right)
for (int x = -50; x < 150; x++) {
display.showNumber(x, false, 3, 0); // Number, length=3, position=0 (left)
delay(10);
}
delay(1000);
// Test PROGMEM flash memory
display.showString_P(FlashString);
delay(1000);
display.showString_P(FlashString2);
delay(1000);
// Animation sequences - All in PROGMEM flash memory
display.clear();
display.showAnimation_P(ANIMATION1, FRAMES(ANIMATION1), TIME_MS(50));
display.showAnimation_P(ANIMATION2, FRAMES(ANIMATION2), TIME_MS(50));
display.showAnimation_P(ANIMATION3, FRAMES(ANIMATION3), TIME_MS(50));
delay(1000);
}