37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手试试多做实验,不管成功与否,都会记录下来——小小的进步或是搞不掂的问题,希望能够抛砖引玉。
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验一百八十七:1.3寸OLED液晶屏 I2C IIC通信 4针模块 1106/1306驱动 128*64像素
知识点:SH1106
是一款带有控制器的单芯片 CMOS OLED/PLED 驱动器,用于有机/聚合物发光二极管点阵图形显示系统。 SH1106由132段、64个公共端组成,可支持最大132 X 64的显示分辨率。专为共阴极型 OLED 面板设计。SH1106 内嵌对比度控制、显示 RAM 振荡器和高效的 DC-DC 转换器,减少了外部元件和功耗。 SH1106 适用于各种紧凑型便携式应用,例如手机、计算器、MP3播放器等副显示。
SH1106功能框图
SH1106的主要特征
„ 支持最大 132 X 64 点阵面板
„ 嵌入式 132 X 64 位 SRAM
„ 工作电压:
I2C接口电路
1.3寸OLED液晶屏 I2C IIC通信 4针模块 1106/1306驱动 132*64像素
【Arduino】168种传感器模块系列实验(资料代码+图形编程+仿真编程)
实验一百八十一:1.3寸OLED液晶屏 I2C IIC通信 4针模块 1106/1306驱动 132*64像素
项目之一:点亮SH1106屏幕
实验接线:
oled模块 Ardunio Uno
GND---------GND接地线
VCC---------5V 接电源
SDA---------D6
SCL ------- D4
实验开源代码
/*
【Arduino】168种传感器模块系列实验(资料代码+图形编程+仿真编程)
实验一百八十一:1.3寸OLED液晶屏 I2C IIC通信 4针模块 1106/1306驱动 132*64像素
项目之一:点亮SH1106屏幕
实验接线:
oled模块 Ardunio Uno
GND---------GND接地线
VCC---------5V 接电源
SDA---------D6
SCL ------- D4
*/
#include
#include
volatile boolean g_writeValue = false;
volatile int g_displayValue = 0;
sh1106_lcd *g_pLCD = NULL;
void setup() {
Serial.begin(9600);
g_pLCD = sh1106_lcd::getInstance();
if (g_pLCD != NULL)
{
g_pLCD->ClearScreen();
}
g_writeValue = true;
}
// Quick sketch showing functionality of library
void loop() {
if (g_writeValue == true) {
g_pLCD->DrawRectangle(2, 2, 128, 62, 2);// draw a box from 0, 0 to 100, 48
g_pLCD->DrawRectangle(20, 20, 108, 42, 2);
g_pLCD->FillRectangle(25, 25, 30, 30);
g_pLCD->FillRectangle(80, 45, 100, 60);
g_pLCD->Show();
delay(1000);
g_pLCD->PrintLine("0123456789");
g_pLCD->PrintLine("aBcDEF GHIJK");
g_pLCD->PrintLine("LMNOP QRSTUV");
g_pLCD->PrintLine("WXYZ");
g_pLCD->PrintLine("AAAA");
g_pLCD->PrintLine("EEEE");
g_pLCD->PrintLine("FFFF");
g_pLCD->PrintLine("GGGG");
delay(1000);
g_pLCD->PrintLine("HHHH");
g_pLCD->DrawPixel(10, 2, true);
g_pLCD->DrawPixel(127, 0, true);
g_pLCD->DrawPixel(127, 63, true);
g_pLCD->DrawPixel(10, 63, true);
g_pLCD->DrawPixel(0, 63, true);
g_pLCD->DrawPixel(63, 3, true);
g_pLCD->Show();
delay(1000);
g_writeValue = false;
}
else {
g_pLCD->ClearScreen();
g_pLCD->DrawLine(20, 31, 127, 31);
g_pLCD->DrawLine(0, 0, 115, 50);
g_pLCD->DrawLine(50, 50, 20, 20);
g_pLCD->DrawLine(0, 50, 0, 120);
g_pLCD->DrawLine(64, 0, 64, 64);
g_pLCD->DrawLine(0, 80, 6, 110);
g_pLCD->Show();
while (1);
}
}
实验场景图
【Arduino】168种传感器模块系列实验(资料代码+图形编程+仿真编程)
实验一百八十一:1.3寸OLED液晶屏 I2C IIC通信 4针模块 1106/1306驱动 132*64像素
项目之二:显示二行字符
实验接线:
oled模块 Ardunio Uno
GND---------GND接地线
VCC---------5V 接电源
SDA---------D6
SCL ------- D4
实验开源仿真编程(Linkboy V4.62)