解决一个学生题目:使用microbit作为气温计

2018-06-158002
AI 快速预览详细 收起
本文介绍了如何使用micro:bit将温度转化为数字并在LED上显示。首先,通过读取温度值并进行数据拆分,然后生成矩阵并逐行扫描点灯。最后,通过MakeCode编写代码,实现温度值的分离并在LED上显示。这个项目适合STEM教育和编程启蒙,能够锻炼学生的逻辑思维和问题解决能力。

前言

原创文章,转载引用务必注明链接。水平有限,如有疏漏,欢迎指正。

本文缘起一个群友学生家长问我一个作业,

作业要求:将温度转化为数字并且用led的数量显示

比如:前两排代表十位数,之后两排代表个位数,最后一排代表正负。

及格标准:能把代表温度的两位数分离为两个一位数并在led屏幕上显示出来。

1、需求及难点分析

想一想现在的初中生作业挺厉害哇,我那时候初中还是win98/dos系统,哪有这些东西玩。想了一下,主要涉及温度获取——数据拆分——生成矩阵——led显示。初步使用MakeCode来完成,最后把各部分组合起来就行了。

需要处理的知识:

  • 读取温度值,mb获取的是两位整数且无小数部分(超过99℃的估计mb已经不能运行了)。根据省电原则,若低于0℃则第5行(y=5)全亮,并且温度值取反|取绝对值
  • 将温度的绝对值赋值给temp,分别取得其高位和低位值,MakeCode里没有直接提供取整只有取余函数,需要我们自己转换一下或者用JavaScript写。
  • 每行5个灯,适配了10进制,但是大于5的就要进行处理到下一行
  • 使用for循环点灯,类似于电视的逐行扫描

代码如下:

https://makecode.microbit.org/_LT0gR5Wr24Vh

需要注意的点

  • 每次调用温度函数都会进行一次读取,所以我们读取一次进行判断
  • 不要调用基本里面的显示LED来显示一行并试图拼接,会覆盖剩下的led点亮
  • 自定义实现取整函数要注意 % 10以获得个位数
  • 超过5的值要记得减去5在次行显示

2、总结

  • 使用Blocks拖拽真的非常繁琐,好在MakeCode提供手写函数和直接JavaScript进行辩解
  • 入门JavaScript可以看看w3school.com.cn
  • 因为熟悉Python,后期可以使用microPython进行编程


截图201806152012399971.png (24.63 KB, 下载次数: 4236)

少儿编程 · 使用micro:bit作为气温计_image_3.webp

创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(1)
gada888
gada888
可以做课件了
- 没有更多了 -