arduino - 在 OLED 显示屏上滚动长文本

标签 arduino

如何在 128x64 OLED 显示屏上滚动长文本
我正在使用 Adafruit_SSD1306 驱动程序
此代码仅显示“This”,因为文本太大而无法显示,但是当我滚动文本时,仅“This”滚动而不滚动其余文本

display.setTextSize(5);
display.setTextColor(WHITE);
display.setCursor(0,16);
display.clearDisplay();
display.print("This is a long long text");
display.display();
delay(1); 
display.startscrollleft(0x00, 0x0F);

最佳答案

在 ssd1306 显示器上滚动并环绕长文本行:

这段代码来自 YT,它做得很漂亮。我的以下版本适用于 ssd1306 128x64 显示器。仅用于演示目的的临时文本字符串。 它显示 5 行,第一行是静止的。所有剩余的卷轴。下一行是文本大小“2”。其他尺寸为“1”。

/* https://www.youtube.com/watch?v=sTYPuDMPva8
   Set the appropriate screen size in the Adafruit_SSD1306.h by uncommenting
   one of the two following lines.

   //#define SSD1306_128_64 ///< DEPRECTAED: old way to specify 128x64 screen
   //#define SSD1306_128_32 ///< DEPRECATED: old way to specify 128x32 screen
*/

   #include <Adafruit_GFX.h>
   #include <Adafruit_SSD1306.h>

   Adafruit_SSD1306 display(4);

   char message[]="297M LstWyPt, 345M StPt, rec#89";
   int x, minX;

  void setup(){
  Serial.begin(9600);
  display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
  display.setTextSize(2);
  display.setTextColor(WHITE);
  display.setTextWrap(false);
  x = display.width();
  minX = -12 * strlen(message);  // 12 = 6 pixels/character * text size 2
  }

  void loop(){
       
   display.clearDisplay();
   display.setCursor(0,0);
   display.setTextSize(1);
   display.print("Sat:13  03:56:32  67%");// GPS # Satellites, Time, % Batt chg
   display.setTextSize(2);
   display.setCursor(x,10);
   display.print(message);
   display.setCursor(x,28);
   display.setTextSize(1);
   display.print("Press #1 New StPt, 2 RecWayPt, Cur 32.567, -102.456");
   display.setCursor(x,38);
   display.setTextSize(1);
   display.print("Press #1 New StPt, 2 RecWayPt, Cur 32.567, -102.456");
   display.setCursor(x,48);
   display.setTextSize(1);
   display.print("Press #1 New StPt, 2 RecWayPt, Cur 32.567, -102.456");
   display.display();
   x=x-8; // scroll speed, make more positive to slow down the scroll
   if(x < minX) x= display.width();
}

关于arduino - 在 OLED 显示屏上滚动长文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40564050/

相关文章:

ios - 如何清除/清零用于通过串行端口接收字符的 NSMutableString?

serial-port - 从 arduino 到处理的多个序列值?

java - 如何编写将一行字符串返回到 Arduino 的字符串变量中的 Java 代码?

Delphi-xe7 arduino tpapro ApdComPort 读取

c++ - arduino//使用nRF24L01库通过Ghz进行树莓派连接

c++ - 无法读取串行输入

c++ - 如何在 Arduino serial read() 上将 char 转换为 int?

arduino - MQTT client.publish() 和 delay()

java - 处理 IDE 无法直接从串行读取数据

c++ - 阿杜诺 | RGB LED 灯条 Controller