1.用工具显示文字的矩阵(pctoLCD)
2.使用arduino编辑代码,代码如下
#include "SSD1306Wire.h"
const int I2C_ADDR = 0x3c;
#define SDA_PIN 4
#define SCL_PIN 5
static const uint8_t text[][60] = {
{0x00,0x00,0x00,0x00,0x10,0x00,0x48,0x10,0x00,0x48,0x10,0x02,0x48,0x08,0x02,0x44,0x08,0x06,0xFC,0xFF,0x03,0x44,0x04,0x02,0x46,0x04,0x01,0x44,0x80,0x00,0x40,0x80,0x00,0xFE,0x4F,0x00,0x40,0x78,0x00,0x40,0xD0,0x00,0x44,0x8C,0x01,0x48,0x06,0x03,0x58,0x02,0x02,0x60,0x00,0x06,0x00,0xC0,0x07,0x00,0x00,0x00},/*"我",0*/
{0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x02,0x02,0x00,0x02,0x01,0x00,0xC2,0x00,0x02,0x7D,0x00,0xFE,0x4B,0x00,0x92,0x82,0x00,0x92,0x02,0x01,0x92,0x02,0x03,0x92,0xFC,0x03,0x92,0x22,0x02,0x92,0x22,0x02,0xFE,0x23,0x06,0xFE,0x22,0x06,0x00,0x22,0x06,0x00,0x22,0x06,0x00,0x02,0x06,0x00,0x00,0x02,0x00,0x00,0x00},/*"是",1*/
{0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x01,0x00,0xC0,0x00,0x00,0xF0,0xFF,0x07,0x0E,0x00,0x04,0x00,0x00,0x04,0x00,0x88,0x04,0xF8,0x45,0x04,0x88,0x22,0x02,0x18,0x3B,0x02,0xEE,0x4C,0x01,0xA8,0x88,0x01,0x28,0xC9,0x01,0xD0,0x31,0x02,0x88,0x1A,0x02,0xF8,0x07,0x06,0x08,0x0C,0x06,0x00,0x00,0x00,0x00,0x00,0x00},/*"傻",2*/
{0x00,0x00,0x00,0x00,0x00,0x01,0x82,0x80,0x00,0x84,0x40,0x00,0x98,0x7F,0x00,0x00,0x80,0x00,0x00,0x80,0x00,0x02,0x01,0x01,0x02,0xFE,0x01,0xFA,0x49,0x02,0x4A,0x49,0x02,0x4A,0x49,0x02,0x4A,0x7E,0x02,0x4A,0x49,0x02,0x4A,0x49,0x02,0x7A,0x49,0x02,0x02,0xFF,0x02,0x02,0x00,0x02,0x00,0x00,0x01,0x00,0x00,0x00},/*"逼",3*/
};
SSD1306Wire oled(I2C_ADDR, SDA_PIN, SCL_PIN);
void setup() {
Serial.begin(115200);
oled.init();
oled.flipScreenVertically();
oled.setContrast(255);
drawRect();
oled.clear();
oled.display();
}
void loop() {
oled.setFont(ArialMT_Plain_24);
oled.drawString(0, 0, "HelloWorld!");
oled.display();
delay(1000);
oled.clear();
oled.display();
for (int i = 0; i < 4; i++) {
oled.drawFastImage(4 + 20 * i, 22, 20, 20, text[i]); //这行代码就是最核心的
}
oled.display();
while (1) {
digitalWrite(LED_BUILTIN, LOW);
delay(300);
digitalWrite(LED_BUILTIN, HIGH);
delay(500);
}
}
void drawRect(void) {
for (int16_t i = 0; i < oled.getHeight() / 2; i += 2) {
oled.drawRect(i, i, oled.getWidth() - 2 * i, oled.getHeight() - 2 * i);
oled.display();
delay(50);
}
}
3.显示图片
#include "SSD1306Wire.h"
const int I2C_ADDR = 0x3c;
#define SDA_PIN 4
#define SCL_PIN 5
static const uint8_t text[][60] = {
{0x00,0x00,0x00,0x00,0x10,0x00,0x48,0x10,0x00,0x48,0x10,0x02,0x48,0x08,0x02,0x44,0x08,0x06,0xFC,0xFF,0x03,0x44,0x04,0x02,0x46,0x04,0x01,0x44,0x80,0x00,0x40,0x80,0x00,0xFE,0x4F,0x00,0x40,0x78,0x00,0x40,0xD0,0x00,0x44,0x8C,0x01,0x48,0x06,0x03,0x58,0x02,0x02,0x60,0x00,0x06,0x00,0xC0,0x07,0x00,0x00,0x00},/*"我",0*/
{0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x02,0x02,0x00,0x02,0x01,0x00,0xC2,0x00,0x02,0x7D,0x00,0xFE,0x4B,0x00,0x92,0x82,0x00,0x92,0x02,0x01,0x92,0x02,0x03,0x92,0xFC,0x03,0x92,0x22,0x02,0x92,0x22,0x02,0xFE,0x23,0x06,0xFE,0x22,0x06,0x00,0x22,0x06,0x00,0x22,0x06,0x00,0x02,0x06,0x00,0x00,0x02,0x00,0x00,0x00},/*"是",1*/
{0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x01,0x00,0xC0,0x00,0x00,0xF0,0xFF,0x07,0x0E,0x00,0x04,0x00,0x00,0x04,0x00,0x88,0x04,0xF8,0x45,0x04,0x88,0x22,0x02,0x18,0x3B,0x02,0xEE,0x4C,0x01,0xA8,0x88,0x01,0x28,0xC9,0x01,0xD0,0x31,0x02,0x88,0x1A,0x02,0xF8,0x07,0x06,0x08,0x0C,0x06,0x00,0x00,0x00,0x00,0x00,0x00},/*"傻",2*/
{0x00,0x00,0x00,0x00,0x00,0x01,0x82,0x80,0x00,0x84,0x40,0x00,0x98,0x7F,0x00,0x00,0x80,0x00,0x00,0x80,0x00,0x02,0x01,0x01,0x02,0xFE,0x01,0xFA,0x49,0x02,0x4A,0x49,0x02,0x4A,0x49,0x02,0x4A,0x7E,0x02,0x4A,0x49,0x02,0x4A,0x49,0x02,0x7A,0x49,0x02,0x02,0xFF,0x02,0x02,0x00,0x02,0x00,0x00,0x01,0x00,0x00,0x00},/*"逼",3*/
};
const uint8_t image[] PROGMEM = {
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0xC3,0x7F,0x00,0x00,
0x00,0x00,0x80,0xFF,0xFF,0x7F,0x00,0x00,0x00,0x10,0xE0,0xFF,0xFF,0x7F,0x08,0x00,0x00,0xF0,0xFF,0xFF,0xFF,0x3F,0x3C,0x00,
0x00,0xE0,0xFF,0xFF,0xFF,0x3F,0x7C,0x00,0x00,0xC0,0xFF,0x8F,0xFF,0x3F,0xFC,0x00,0x00,0x80,0xFF,0xE3,0xFF,0x3F,0xFE,0x01,
0x00,0x00,0xFE,0xFC,0xFF,0x3F,0xFE,0x03,0x00,0x80,0x7F,0xFE,0xFF,0x00,0xFF,0x07,0x06,0xF0,0x9F,0xFF,0x0F,0x00,0xFF,0x0F,
0xFC,0xFF,0xCF,0xFF,0x07,0x00,0xFC,0x0F,0xF0,0xFF,0xE3,0xFF,0x01,0x00,0xF8,0x1F,0xC0,0xFF,0xF0,0xFF,0x00,0x00,0xE0,0x3F,
0x00,0x0E,0xF8,0x7F,0x00,0x0F,0xE0,0x3F,0x00,0x00,0xFE,0x7F,0xC0,0x7F,0xC0,0x3F,0x00,0x00,0xFF,0x3F,0xE0,0xFF,0x80,0x7F,
0x00,0xC0,0x7F,0x1F,0xF0,0xFF,0x81,0x7F,0x00,0xF0,0x1F,0x1F,0xF8,0xFF,0x83,0x7F,0xF0,0xFF,0x8F,0x0F,0xF8,0xFF,0x83,0x7F,
0xE0,0xFF,0x83,0x07,0xF8,0xFF,0x83,0x7F,0x80,0xFF,0x80,0x03,0xFC,0xFF,0x03,0xFF,0x00,0x00,0x80,0x01,0xFC,0xFF,0x03,0xFF,
0x00,0x00,0xC0,0x00,0xF8,0xFF,0x03,0xFF,0x00,0x00,0x20,0x10,0xF8,0xFF,0x83,0xFF,0x00,0x00,0x00,0x10,0xF8,0xFF,0x83,0x7F,
0x00,0x00,0x00,0x38,0xF0,0xFF,0x81,0x7F,0x00,0x00,0x00,0x3C,0xF0,0xFF,0x80,0x7F,0x00,0x00,0x00,0x3E,0xE0,0x7F,0xC0,0x7F,
0x00,0x00,0x00,0x7F,0x80,0x3F,0xE0,0x3F,0x00,0x00,0x80,0xFF,0x00,0x00,0xE0,0x3F,0x00,0x00,0x80,0xFF,0x01,0x00,0xE0,0x3F,
0x00,0x00,0x00,0xFF,0x03,0x00,0x88,0x1F,0x00,0x00,0x00,0xFE,0x03,0x00,0x1E,0x0F,0x00,0x00,0x00,0xFE,0x19,0x80,0x3F,0x0E,
0x00,0x00,0x00,0xFC,0x78,0xF0,0x7F,0x04,0x00,0x00,0x00,0x78,0xFC,0xFF,0xFF,0x00,0x00,0x00,0x00,0x38,0xFE,0xFF,0xFF,0x01,
0x00,0x00,0x00,0x30,0xFE,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x1F,0x00,
0x00,0x00,0x00,0x00,0xFE,0xFF,0x0F,0x00,0x00,0x00,0x00,0x00,0xF0,0xFF,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"Sixlab_Logo.bmp",0*/
};
SSD1306Wire oled(I2C_ADDR, SDA_PIN, SCL_PIN);
void setup() {
Serial.begin(115200);
oled.init();
oled.flipScreenVertically();
oled.setContrast(255);
drawRect();
oled.clear();
oled.display();
}
void loop() {
oled.setFont(ArialMT_Plain_24);
oled.drawString(0, 0, "HelloWorld!");
oled.display();
delay(1000);
oled.clear();
oled.display();
for (int i = 0; i < 4; i++) {
oled.drawFastImage(8 + 20 * i, 22, 20, 20, text[i]);
}
oled.display();
delay(500);
oled.clear();
oled.drawFastImage(32, 0, 64, 64, image);
oled.display();
delay(1300);
oled.clear(); oled.display(); // 清除屏幕
/* 4. LED状态取反 */
digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));
}
void drawRect(void) {
for (int16_t i = 0; i < oled.getHeight() / 2; i += 2) {
oled.drawRect(i, i, oled.getWidth() - 2 * i, oled.getHeight() - 2 * i);
oled.display();
delay(50);
}
}