html 如何实现一条竖线边上有 刻度_在鸿蒙开发板上实现一个简易数字温度计!...

这是一份迟来的文章,代码写好几天了,由于太忙,一直没来得及上传。

在开发板套件中,有一个 OLED 屏幕扩展板,温湿度传感器扩展板,本次我们就用这两个扩展板来实现一个简易数字温度计。

初步的打算是做一个仪表盘,用指针指示温度和湿度,但是由于 OLED 只有 128*64,因此仪表盘不会很清晰,我们在旁边再用数字直接显示一下。

虽然简陋一点,但是只要原理学会了,其他复杂的仪表盘我们同样可以做出来。 2e1bb3726f5de547763cd458c2a81d78.png

OLED 屏幕为 128*64 的点阵,通信接口为 I2C0,从机地址为 0x3C。

温湿度传感器 AHT20,通信接口也是 I2C0,从机地址为 0x38。

熟悉 I2C 的朋友都知道,I2C 是多从机模式,只要从机地址不同,我们可以挂在同一个总线下,进行复用。

既然如此,那我们就可以同时使用这两个扩展板。

01

OLED 驱动

OLED 驱动开发方法,参考许思维老师的代码:(此处不再赘述)
https://gitee.com/hihopeorg/harmonyos-ssd1306

02

温湿度传感器 AHT20 驱动

参考许思维老师的代码:
https://gitee.com/hihopeorg/harmonyos-aht20

03

画表盘

由于表盘是半个圆,而且一般是从 9 点钟方向开始,顺指针旋转,与实际的温度值相对应,9 点钟对应最小值,3 点钟对应最大值。

因此我们画表盘的时候最好从 9 点钟对应的角度为 0, 12 点钟对应的角度 90 度,3 点钟对应的角度为 180 度。

画表盘就是设置好圆心(x,y)和半径 r,然后计算圆周上的两个点,将相邻的两个点调用画直线函数连接起来。
/*DrawArc.画一个半圆
 * start_angle in degree
 * sweep in degree
 * x,y是圆心的位置
 * radius是半径
 * start_angle 起始角度,9点钟作为0角度
 * sweep 扫描角度
 * 从9点钟开始作为0角度,顺时针旋转
 */
void ssd1306_DrawArc_from9(uint8_t x, uint8
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值