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)