37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手试试多做实验,不管成功与否,都会记录下来——小小的进步或是搞不掂的问题,希望能够抛砖引玉。
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验一百八十八:0.66英寸OLED显示模块 液晶屏模块IIC/I2C接口 64*48像素 SSD1306驱动芯片
知识点:OLED (Organic Light-Emitting Diode)
即有机发光二极管,在手机OLED上属于新型产品,被称誉为“梦幻显示器”。OLED显示技术与传统的LCD显示方式不同,无需背光灯,采用非常薄的有机材料涂层和玻璃基板(或柔性有机基板),当有电流通过时,这些有机材料就会发光。而且OLED显示屏幕可以做得更轻更薄,可视角度更大,并且能够显著的节省耗电量。
OLED技术特点
(1) OLED 器件的核心层厚度很薄,厚度可以小于 1mm,为液晶的 1/3。
(2) OLED 器件为全固态机构,无真空,液体物质,抗震性好,可以适应巨大的加速度,振动等恶劣环境。
(3) 主动发光的特性使 OLED 几乎没有视角限制,视角一般可达到 170 度,具有较宽的视角,从侧面也不会失真。
(4) OLED 显示屏的响应时间超过 TFT—LCD 液晶屏。TFT—LCD 的响应时间大约使几十毫秒,现在做得最好的 TFT—LCD 响应时间也只有 12 毫秒。而 OLED 显示屏的响应时间大约是几微秒到几十微秒。
(5) OLED 低温特性好,在零下 40 摄氏度都能正常显示,目前航天服上也使用OLED 作为显示屏。而 TFT—LCD 的响应速度随温度发生变化,低温下,其响应速度变慢,因此,液晶在低温下显示效果不好。
(6) OLED 采用有机发光原理,所需材料很少,制作上比采用液体发光的液晶工序少,液晶显示屏少 3 道工序,成本大幅降低。
(7) OLED 采用的二极管会自行发光,因此不需要背面光源,发光转化效率高,能耗比液晶低,OLED 能够在不同材质的基板上制造,厂家甚至可以将电路印刷在弹性材料上——做成能弯曲的柔软显示器。
(8) 低电压直流驱动,5V 以下,用电池就能点亮。高亮度,可达 300 明流以上。
0.66英寸OLED显示模块 液晶屏模块IIC/I2C接口 64*48像素 SSD1306驱动芯片
0.66英寸OLED显示模块电原理图
实验接线示意图
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验一百七十九:0.66英寸OLED显示模块 液晶屏模块IIC/I2C接口 64*48像素 SSD1306驱动芯片
项目之一:er_oled库位图与字符测试
实验开源代码
/*【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)实验一百七十九:0.66英寸OLED显示模块 液晶屏模块IIC/I2C接口 64*48像素 SSD1306驱动芯片项目之一:er_oled库位图与字符测试实验接线:OLED => Arduino1. GND -> GND2. VCC -> 3.33. SCL -> SCL4. SDA -> SDA5. RES -> 86. DC -> GND7. CS -> GND
*/#include <Wire.h>
#include "er_oled.h"uint8_t oled_buf[WIDTH * HEIGHT / 8];void setup() {Serial.begin(9600);Serial.print("OLED Example\n");Wire.begin();/* display an image of bitmap matrix */er_oled_begin();er_oled_clear(oled_buf);er_oled_bitmap(0, 0, PIC1, 64, 48, oled_buf);er_oled_display(oled_buf);delay(1000);command(0xa7);//--set Negative displaydelay(1000);command(0xa6);//--set normal displayer_oled_clear(oled_buf);er_oled_bitmap(0, 0, PIC2, 64, 48, oled_buf);er_oled_display(oled_buf);delay(1000);command(0xa7);//--set Negative displaydelay(1000);command(0xa6);//--set normal displayer_oled_clear(oled_buf);/* display images of bitmap matrix */er_oled_bitmap(0, 0, Signal816, 16, 8, oled_buf);er_oled_bitmap(19, 0, Bluetooth88, 8, 8, oled_buf);er_oled_bitmap(30, 0, Msg816, 16, 8, oled_buf);er_oled_bitmap(48, 0, Bat816, 16, 8, oled_buf);er_oled_string(2, 8, "EastRising", 12, 1, oled_buf);er_oled_string(2, 20, "buydisplay", 12, 1, oled_buf);er_oled_string(0, 32, "OLED-DIS", 16, 1, oled_buf);er_oled_display(oled_buf);delay(1000);er_oled_clear(oled_buf);er_oled_string(2, 0, "EastRising", 12, 1, oled_buf);er_oled_char(0, 16, '1' , 16, 1, oled_buf);er_oled_char(8, 16, '2', 16, 1, oled_buf);er_oled_char(16, 16, ':', 16, 1, oled_buf);er_oled_char(24, 16, '0', 16, 1, oled_buf);er_oled_char(32, 16, '6', 16, 1, oled_buf);er_oled_char(40, 16, ':', 16, 1, oled_buf);er_oled_char(48, 16, '1', 16, 1, oled_buf);er_oled_char(56, 16, '8', 16, 1, oled_buf);er_oled_string(2, 36, "buydisplay", 12, 1, oled_buf);er_oled_display(oled_buf);
}void loop() {
}
实验场景图
实验场景图 动态图