鱼C论坛

 找回密码
 立即注册
查看: 1172|回复: 1

arduino oled 显示问题

[复制链接]
发表于 2024-4-3 10:59:09 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
@fishc

arduino通过oled显示中文,8个字符自动换行,滚动显示
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2024-4-3 10:59:35 | 显示全部楼层
要在Arduino上的OLED屏幕上显示中文,并且自动换行和滚动显示,您可以使用Adafruit_GFX库和Adafruit_SSD1306库。以下是一个示例代码,可以帮助您实现此功能:

  1. #include <Wire.h>
  2. #include <Adafruit_GFX.h>
  3. #include <Adafruit_SSD1306.h>

  4. #define SCREEN_WIDTH 128 // OLED屏幕宽度,根据您的型号进行调整
  5. #define SCREEN_HEIGHT 64 // OLED屏幕高度,根据您的型号进行调整

  6. Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);

  7. void setup() {
  8.   display.begin(SSD1306_SWITCHCAPVCC, 0x3C);  // 初始化OLED屏幕
  9.   
  10.   // 设置字体大小
  11.   display.setTextSize(1);
  12.   
  13.   // 设置字体颜色,白色字体,黑色背景
  14.   display.setTextColor(WHITE, BLACK);
  15.   
  16.   // 清除屏幕内容
  17.   display.clearDisplay();
  18. }

  19. void loop() {
  20.   // 显示中文字符串
  21.   displayString("你好,世界!这是一个测试!");

  22.   // 每次循环后等待一段时间再进行下一次显示
  23.   delay(1000);
  24. }

  25. void displayString(char* str) {
  26.   int strLength = strlen(str);
  27.   
  28.   int x = 0; // x轴起始位置
  29.   int y = 0; // y轴起始位置
  30.   
  31.   for (int i = 0; i < strLength; i++) {
  32.     display.setCursor(x, y);
  33.    
  34.     // 判断是否需要换行
  35.     if ((x + 8) > (SCREEN_WIDTH - 1)) {
  36.       x = 0; // 回到起始位置
  37.       y += 8; // 下一行
  38.     }
  39.    
  40.     // 滚动显示
  41.     if ((y + 8) > (SCREEN_HEIGHT - 1)) {
  42.       display.clearDisplay(); // 清除屏幕
  43.       y = 0; // 回到起始位置
  44.     }
  45.    
  46.     display.write(str[i]);
  47.    
  48.     x += 8; // 下一个字符的起始位置
  49.   }
  50.   
  51.   display.display();
  52. }
复制代码


在这个示例代码中,我们首先引入了必要的库文件。然后,在`setup()`函数中,我们初始化了OLED屏幕并设置了字体大小和颜色。接下来,在`loop()`函数中,我们调用了`displayString()`函数来显示包含中文字符的字符串。`displayString()`函数会遍历输入的字符串,根据屏幕的宽度判断是否需要换行,根据屏幕的高度判断是否需要滚动显示。最后,我们在每次循环后等待一段时间,以便能够看到屏幕上的内容。

请注意,您需要根据您的OLED屏幕型号,调整`SCREEN_WIDTH`和`SCREEN_HEIGHT`的值。另外,确保已正确安装了Adafruit_GFX库和Adafruit_SSD1306库。

希望对您有帮助!如果您有任何问题,请随时提问。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-9 02:37

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表