Arduino Adafruit NeoMatrix 库

Posted

技术标签:

【中文标题】Arduino Adafruit NeoMatrix 库【英文标题】:Arduino Adafruit NeoMatrix library 【发布时间】:2015-05-03 08:38:30 【问题描述】:

我正在测试 Adafruit_NeoMatrix 库,附上示例: https://github.com/adafruit/Adafruit_NeoMatrix/blob/master/examples/tiletest/tiletest.pde 而且我无法弄清楚文本长度和if语句的关系:

 if(--x < -36) 

更多的文本长度意味着增加数字“36”,但我并没有真正看到这种关系

【问题讨论】:

【参考方案1】:

-36 定义基于字体宽度、屏幕宽度和文本长度的最大位移。 Adafruit_GFX 的标准字体是每个字符 6px。您需要此光标值才能正确呈现字体字符。

您需要的变量...

char exampleText[32] = "This is a test";
int  pixelPerChar = 6;
int  maxDisplacement;

计算一开始的最大位移...

void setup()

  maxDisplacement = strlen(exampleText) * pixelPerChar + matrix.width();
  //...

在循环函数中...

//...
if (--x < -maxDisplacement)

    x = matrix.width();

//...

【讨论】:

【参考方案2】:

如果你用下面的等效方式编写 if 语句会更容易看:

x--;
if(x < -36)  ... 

x 是光标位置,它是字符串的开头。一开始它等于行的长度,这意味着字符串隐藏在屏幕的右侧。每次迭代,光标向左移动一步,直到到达坐标 -36。如果字符串小于 36,它将隐藏在屏幕左侧。然后用不同的颜色重新初始化整个例程。

【讨论】:

以上是关于Arduino Adafruit NeoMatrix 库的主要内容,如果未能解决你的问题,请参考以下文章

深入学习 OLED Adafruit_SSD1306库(8266+arduino)

arduino驱动步进电机

Arduino 自动调光器

Arduino显示PM2.5

PMS5003ST+Arduino Nano OLED屏显示

舵机+16路舵机驱动板+Arduino UNO机械臂测试代码解析