OLED 文字跑马灯
这篇教学会使用 MakeCode 编辑 micro:bit 扩充板程序 ( EZ Start Kit+ ),使用文字、数组、变数、循环和函数互相搭配,做出在 OLED 显示器上显示文字跑马灯的效果 ( 单行跑马灯、多行跑马灯、多行不同速度跑马灯 )。
- 操作 EZ Start Kit+ 需要加载对应的扩充积木,请先参考:加载 EZ Start Kit+ 的程序积木。
- 更多信息:ICShop EZ Start Kit+ 官方网站。
显示数组中的文字
文字跑马灯的原理,就是将“文字拆成数组,依序显示数组的每个项目”,所以第一步需要显示数组中的文字,下方的范例,会先将文字根据空字元“""”拆成数组,接着再将数组的前 16 个项目组合成新的文字,最后透过 OLED 显示 ( EZ Start Kit+ 的 OLED 一行最多 16 个字 )。
单行文字跑马灯
使用“重复判断 true”积木进行不断重复的动作,每次重复时除了组合要显示的文字外,也会将数组的第一个项目移动到最后,如此一来每次组合就都会是全新的文字 ( 少掉开头,结尾多一个 ),搭配暂停积木,就可以在 OLED 显示跑马灯的文字。
多行文字跑马灯
要实现多行文字跑马灯效果,除了可以多次重复单行文字跑马灯的程序,也可以使用函数来简化重复的程序码,新增一个名为 show 的函数,新增一个文字参数 text,以及三个数字参数 speed、x、y ( speed 为跑马灯速度、xy 为 OLED 显示位置 )。
将单行跑马灯的程序放入函数里,按照下图将部分固定的文字或数字,改成函数的参数 text、speed、x 和 y。
函数完成后,在启动时使用不同的变数建立多组文字,使用“不同的重复无限次”积木,呼叫函数,并调整函数的参数。
为什么要使用不同的重复无限次积木呢?因为函数里使用了“重复判断 true”积木,如果按照顺序执行函数,会因为这块积木导致后方的函数无法执行 ( 一直卡在前一个函数的无穷循环 ),所以必须使用不同的重复无限次积木避开这个问题。
由于 makecode 在定义变数时,通常是定义为“全域变数”,如果要同时呈现不同的跑马灯文字,需要切换到 JavaScript 修改程序码,按照下图,移除下方红色匡起来的部分剪下,上方红色匡起来的部分前方补上 let。
完成后“不要切换回积木”( 因为切换回积木会将修改的程序还原 ),直接将程序烧录到 micro:bit,就会看见多行跑马灯的效果 ( 文字不同、速度不同 )。
范例解答
- 范例解答: EZ Start Kit+ OLED 单行文字跑马灯
- 范例解答: EZ Start Kit+ OLED 多行文字跑马灯
延伸练习
如果已经熟悉了 EZ Start Kit+ OLED 文字跑马灯的原理,还可以尝试更多好玩的作法:
- 修改“单行跑马灯”程序,加入按钮开关积木,按下 A 出现一组文字跑马灯,按下 B 出现另外一组文字跑马灯 ( 解答 )。
微信扫码关注
抖音扫码关注