关于ESP8266来驱动1.3寸OLED

本文介绍了如何在Arduino平台上使用U8g2lib库控制SH1106128x64OLED屏幕,展示了初始化、设置字体和显示HelloWorld!的代码片段。

废话不多说,放连接图和代码:

D1-------SCL(SCK)

D2-------SDA

GND----G

VCC----V

代码如下:

#include <U8g2lib.h>
#include <Wire.h>

U8G2_SH1106_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE);

void setup() {
  u8g2.begin();
}

void loop() {
  u8g2.clearBuffer();          // 清空缓冲区
  u8g2.setFont(u8g2_font_ncenB14_tr); // 设置字体
  u8g2.drawStr(0, 24, "Hello World!"); // 在指定位置绘制字符串
  u8g2.sendBuffer();           // 将缓冲区内容发送到OLED显示屏
  delay(1000);                 // 延迟1秒
}

跪求点赞,评论!

/(ㄒoㄒ)/~~

### 使用ESP8266驱动1.3屏幕的方案与示例代码 #### 1. **硬件连接** 对于1.3屏幕,常见的驱动IC有ST7735、SH1106以及SSD1306等。具体接线方式取决于所选用的屏幕型号及其通信协议(I²C或SPI)。以下是基于SPI接口的一般连线表: | ESP8266 Pin | Screen Pin | |-------------|------------| | GPIO15 | CS | | GPIO2 | DC | | GPIO0 | RST | | GPIO14 | SCLK | | GPIO13 | MOSI | 注意:如果采用的是I²C模式,则只需连接SCL和SDA两根信号线即可[^2]。 #### 2. **软件配置** ##### (1)安装必要库文件 - 如果是OLED屏幕(如SH1106),推荐使用`Adafruit_SH1106`库[^3]。 - 若为彩屏LCD(如ST7735),则应下载对应的`TFT_eSPI`或者官方提供的`UTFT`库。 将这些第三方库解压后放入Arduino IDE目录下的`libraries`子文件夹内完成加载操作。 ##### (2)初始化设置实例 - OLED版本 ```cpp #include <Wire.h> #include <Adafruit_GFX.h> #include <Adafruit_SH1106.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) Adafruit_SH1106 oled(&Wire); void setup() { Serial.begin(9600); if(!oled.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { Serial.println(F("OLED initialization failed!")); while(1); } oled.clearDisplay(); oled.setTextColor(WHITE); oled.setTextSize(1); oled.setCursor(0,0); oled.println("Hello, world!"); oled.display(); } void loop() {} ``` 此段代码适用于标准分辨率(128×64像素)且通过I²C总线控制的小型黑白OLED显示屏[^3]。 ##### (3)初始化设置实例 - 彩色LCD版本 针对带有ST7735控制器的1.3TFT LCD触摸屏,下面给出了一种基础绘图功能演示程序: ```cpp #include <Adafruit_GFX.h> #include <Adafruit_ST7735.h> #define TFT_CS 15 #define TFT_RST 0 #define TFT_DC 2 Adafruit_ST7735 tft = Adafruit_ST7735(TFT_CS, TFT_DC, TFT_MOSI, TFT_CLK, TFT_RST); void setup(void) { tft.initR(INITR_REDTAB); /* Initialize red tab version */ tft.fillScreen(ST77XX_BLACK); tft.drawRect(0, 0, tft.width()-1, tft.height()-1, ST77XX_WHITE); tft.drawString("Test", (tft.width()/2)-10 , (tft.height()/2), 2); } void loop(){} ``` 这里假设了特定引脚分配情况;实际应用时请参照实物标注调整相应参数值。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值