Arduino驱动OLED显示屏

本文详细介绍了如何使用Arduino驱动SSD1306 OLED显示屏,包括载入Adafruit_SSD1306和Adafruit_GFX库,接线步骤,文字取模过程,以及Arduino程序的编写。通过太极创客的取模软件和特定的图片处理方法,可以成功实现OLED屏幕的显示效果。
摘要由CSDN通过智能技术生成

使用Arduino驱动SSD1306 OLED 显示屏工作

1、准备工作

1.1)Arduino中库的载入

#include <Adafruit_SSD1306.h>驱动128x64 and 128x32 的屏幕显示的库
#include <Adafruit_GFX.h>//Arduino的图形库
可以在arduino管理库中搜索下载,也可以自己下载库导入到arduino的libraries文件夹中。
在这里插入图片描述

1.2)接线

在这里使用的是arduino UNO开发板和OLED 0.96 IIC 128x64模块

Arduino SSD1306
3.3V VCC
GND GND
A4 SDA
A5 SCL

在这里插入图片描述

图片来源于太极创客网站

2、程序代码

2.1)文字取模

取模的软件使用的是太极创客给出的取模软件,页面如下
在这里插入图片描述

参数设置如网页设置即可。跳转太极创客Arduino驱动OLED屏幕

2.2)Arduino程序

#include <Adafruit_SSD1306.h>驱动128x64 and 128x32 的屏幕显示的库
#include <Adafruit_GFX.h>//Arduino的图形库
#include <Wire.h>
#include <SPI.h>

#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 64 // OLED display height, in pixels
// Declaration for an SSD1306 display connected to I2C (SDA, SCL pins)

#define OLED_RESET 4 // Reset pin # (or -1 if sharing Arduino reset pin)
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);

void setup()
{
   
  Serial.begin(9600);
  Serial.println("OLED FeatherWing test");//串口输出信息
  
  display.begin(SSD1306_SWITCHCAPVCC, 0x3c);//初始化OLED并设置其IIC地址为 0x3C
  display.clearDisplay();//清屏
  delay(200);

  display.setTextSize(1.3);
  display.setTextColor(SSD1306_WHITE);
  display.setCursor(0,0);//设置光标的位置

//绘制像素点
//  display.drawPixel(64, 32, WHITE);//(x坐标,y坐标,颜色)

//绘制水平线
//  display.drawFastHLine(64,32,64,SSD1306_WHITE);//(x起点,y起点,长度,颜色)
//绘制竖直线
// display.drawFastVLine(64,10,50,SSD1306_WHITE);

 //绘制线
// display.drawLine(0,0,128,64,SSD1306_WHITE);//(x起,y起,x终,y终)

//绘制空心矩形
// display.drawRect(0,0,128,64,SSD1306_WHITE);//(左上角x坐标,左上角y坐标,矩形长,矩形宽)

//绘制实心矩形
//display.fillRect(20,10,88,44,SSD1306_WHITE);//同上

//点亮全屏
//  display.fillScreen(SSD1306_WHITE);

//绘制空心圆
//display.drawCircle(64,32,32,SSD1306_WHITE);//(圆心x坐标,圆心y坐标,半径)

//绘制实心圆
//display.fillCircle(64,32,31,SSD1306_WHITE);

//绘制空心三角形
//display.drawTriangle(63,0, 0,63, 127,63, SSD1306_WHITE);//(第一顶点坐标[x,y],第二,第三)

//绘制实心三角形
//display.fillTriangle(63,0, 0,63, 127,63, SSD1306_WHITE);

//绘制空心圆角矩形
//display.drawRoundRect(10,5,107, 43,8, SSD1306_WHITE);//(左上角x,左上角y,矩形长,矩形宽,矩形圆角半径)

//实心圆角
//display.fillRoundRect(10,5,107,53,3, SSD1306_WHITE);

//绘制Bitmap图像
//Bimap图像数据


static const unsigned char PROGMEM feng_16x16[]={
   
0x00,0x00,0x00,0x00,0x04,0x40,0x04,0x40,0x08,0x80,0x08,0xBC,0x19,0x48,0x2A,0x60,
0x48,0x20,0x09,0x20,0x0A,0x2C,0x0A,0x24,0x08,0x20,0x08,0xE0,0x00,0x40,0x00,0x00,/*"你",0*/
0x00,0x00,0x00,0x00,0x08,0x00,0x08,0x7C,0x08,0x08,0x0A,0x30,0x0A,0x20,0x76,0x3E,
0x13,0xD0,0x0C,0x10,0x04,0x10,0x0A,0x10,0x10,0x10,0x00,0x60,0x00,0x20,0x00,0x00,/*"好",1*/
};

static const unsigned char PROGMEM ni_16x16[]={
   
0x00,0x00,0x00,0x00,0x04,0x40,0x04,0x40,0x08,0x80,0x08,0xBC,0x19,0x48,0x2A,0x60,
0x48,0x20,0x09,0x20,0x0A,0x2C,0x0A,0x24,0x08,0x20,0x08,0xE0,0x00,0x40,0x00,0x00,/*"你",0*/
};
static const unsigned char PROGMEM hao_16x16[]={
   
0x00,0x00,0x00,0x00,0x08,0x00,0x08,0x7C,0x08,0x08,0x0A,0x30,0x0A,0x20,0x76,0x3E,
0x13,0xD0,0x0C,0x10,0x04,0x10,0x0A,0x10,0x10,0x10,0x00,0x60,0x00,0x20,0x00,0x00,/*"好",1*/
};

//对图片进行取模
static const unsigned char PROGMEM hand_128x64[] = {
    
 0x00,0x00,0x00,0x00,0x00,0x00,
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值