-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathWIFI-Kit-8-DEMO_esp01.ino
143 lines (123 loc) · 3.39 KB
/
WIFI-Kit-8-DEMO_esp01.ino
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
#include <Arduino.h>
#include <oled.h>
// There are 2 different versions of the board
// OLED display=OLED(2,14,4);
//OLED display=OLED(4,5,16);
OLED display=OLED(0,2);
static const uint8_t bitmap[] =
{
1,2,4,8,16,32,64,128,128,128,192,192,128,128,128,64,32,16,8,4,2,1, // first page (8 vertical bits, 22 columns)
255,255,255,255,15,15,15,15,15,15,15,15,15,15,15,15,15,15,255,255,255,255 // second page (8 vertical bits, 22 columns)
};
void setup()
{
delay(1000);
display.begin();
}
void loop()
{
// Draw pixels in the outer edges
display.draw_pixel(0,0);
display.draw_pixel(127,0);
display.draw_pixel(127,31);
display.draw_pixel(0,31);
display.display();
// Draw hollow circles
for (uint_least8_t radius=3; radius<62; radius+=3)
{
delay(50);
display.draw_circle(64,16,radius);
if (radius>15)
{
display.draw_circle(64,16,radius-15,OLED::SOLID,OLED::BLACK);
}
display.display();
}
// Draw solid circles
delay(500);
display.draw_circle(36,16,14,OLED::SOLID);
display.display();
delay(500);
display.draw_circle(36,16,7,OLED::SOLID,OLED::BLACK);
display.display();
// Draw rectangles
delay(500);
display.draw_rectangle(64,0,98,31);
display.display();
delay(500);
display.draw_rectangle(69,5,93,26,OLED::SOLID);
display.display();
// scroll up
delay(1000);
display.scroll_up(32,20);
// Draw text with normal size
display.draw_string(4,2,"Hello");
display.display();
// Draw a line
delay(1000);
display.draw_line(4,10,34,10);
display.display();
// Draw text from program memory with double size
delay(1000);
display.draw_string_P(16,15,PSTR("World!"),OLED::DOUBLE_SIZE);
display.display();
// Draw a cross
delay(1000);
display.draw_line(16,31,88,15);
display.draw_line(16,15,88,31);
display.display();
// Draw a raw bitmap
delay(1000);
display.draw_bitmap_P(100,8,22,16,bitmap);
display.display();
// Demonstrate scrolling
delay(1000);
display.set_scrolling(OLED::HORIZONTAL_RIGHT);
delay(3000);
display.set_scrolling(OLED::HORIZONTAL_LEFT);
delay(3000);
display.set_scrolling(OLED::NO_SCROLLING);
// Redraw after scrolling to get the original picture
display.display();
// Flash the display
delay(1000);
for (int i=0; i<10; i++)
{
display.set_invert(true);
delay(200);
display.set_invert(false);
delay(200);
}
// Show contrast values
contrast(128);
contrast(64);
contrast(32);
contrast(16);
contrast(8);
contrast(4);
contrast(2);
contrast(1);
contrast(2);
contrast(4);
contrast(8);
contrast(16);
contrast(32);
contrast(64);
contrast(128);
contrast(255);
contrast(128);
delay(3000);
display.clear();
}
void contrast(int value)
{
char buffer[4];
display.clear();
display.draw_string(0,0,"Contrast:");
itoa(value,buffer,10);
display.draw_string(64,0,buffer);
display.draw_rectangle(0,20,value/2,31,OLED::SOLID);
display.display();
display.set_contrast(value);
delay(500);
}