一、准备工作
1、硬件
UNO R3 :1套
OLED触摸屏:1套
导线诺干
2、软件
arduino
二、接线
UNO R3 | OLED | |
5V | VCC | |
GND | GND | |
A5 | SCL | |
A4 | SDA |
脚位如下图所示:
Uno R3脚位图
触摸屏脚位图
查阅显示屏的驱动规格:通常显示屏驱动芯片有SSD1306,SH1106
我在淘宝买到的这款比较奇怪,是SSD1106的
三、写代码
1、安装驱动
Tools->Manage Libraries
在搜索栏收索U8glib,点击安装。(如果是SSD1306驱动的显示屏,则搜索SSD1306)
2、按照厂家示例代码,修改编写一个显示hello world的小程序,通过Arduino IDE下载到R3中(SSD1306驱动的显示屏,第一行改#include “ACROBOTIC SSD 1306”)
#include "U8glib.h"
U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE);void u8g_prepare(void) {u8g.setFont(u8g_font_6x10); // 使用6x10像素字体u8g.setFontRefHeightExtendedText();u8g.setDefaultForegroundColor();u8g.setFontPosTop();
}void drawHelloWorld(void) {u8g_prepare();u8g.firstPage();do {// 计算居中坐标("helloworld"共10字符,6像素宽/字符)int x = (128 - 10*6)/2; // 水平居中int y = 32; // 垂直居中u8g.drawStr(x, y, "helloworld");} while(u8g.nextPage());
}void setup() {// 显示模式设置if (u8g.getMode() == U8G_MODE_R3G3B2)u8g.setColorIndex(255);else if (u8g.getMode() == U8G_MODE_GRAY2BIT)u8g.setColorIndex(3);else if (u8g.getMode() == U8G_MODE_BW)u8g.setColorIndex(1);u8g_prepare();
}void loop() {drawHelloWorld();// 移除所有动画逻辑,保持静态显示// 延迟可保留但非必须delay(100);
}
注意,下载到R3之前,需要安装 U8glib驱动。否则会出现U8glib缺失的报错
如果安装驱动不匹配,可能会出现下面效果或者显示屏不亮的情况
四、测试
显示屏成功显示 “hello world”,测试成功