arduino float型只能显示小数点后2位

arduino float型只能显示小数点后2位,第1张

首先,你最好在setup函肆漏核数中用pinMode(A0,INPUT)这句代码将A0定义搜搏为输入,然后你可以通过Serial.println(temp,3)实现小裂掘数点位数的设置

很多时候我们需要把传感器测得的数据,通过串口或者 Wi-Fi 发送到上位机,而传感器的数据,比如温度、湿度等,往往并不是整型,比如 -12.34 °C,56.78% 等。对此有很多处理方法。比如把数字当成字符串处理,直接使用 Serial.print() 发送,或者通过乘法转换成整型以后再发送,又或者将浮点数拆分成整数和小数两部分发送 ... 下面介绍一种方法,通过先将浮点数转换成字节数组(Byte Array),然后再按字节发送,实现浮点数据的传输。好处就是:精度得到保留,数据长度短且统一。一个单精度浮点数(float)在 Arduino 中长度为 32 位 ,也就是 4 Byte。 比如上面的 -12.34 把它写成二进制和十六进制既然是 4 Byte,那一个非常朴实的想法就是,用一个数组来收纳这 4 Byte,然后再通过 Serial.write(byteArr, 4) 写入到串口。指针,让它指向表示浮点数的字节所在的内存,然后取出来放到数组,构成字节数组。也可以用 Arduino 的 byte 来代替,都是表示 8 bit 长度。uint8_t 实际定义为 unsigned char, 但是 uint8_t 具有更好的可移植性。因为它只要能用就一定能保证是 8 bit。 而 unsigned char 能保证一定能用,但不保证一定是 8 bit (但是在定义了 typedef unsigned char uint8_t 的系统上 char 一定是 8 bit ,这有点绕... ),所以从「想定一个 8 bit 的变量并且有可移植性」角度来说,uint8_t 是最优选择。

Serial.write() 可以把一个数组的字节全部打印出来,但是需要指明长度。当然, 这里的 4 可以用 sizeof() 来求得。 但是由于这里是固定的 4 Byte,所以还是让单片机少点工作吧。由于内存中字节存放的顺序,或者说大端小端问题,实际运行上面代码后,你在串口工具中看到的字节是逆序的,也就是 0xA4 0x70 0x45 0xC1 。所以在上位机对收到数据进行解析的时候需要格外注意(当然你也可以在单片机上把数据逆过来)

使用 Union 的意义在于,Union 中的成员是共享一段内存的,所以里面的字节数组和浮点数是「捆绑在一起的」,无论通过点 *** 作符修改哪一个,另一个都会跟着改变。结构体相比数组的数字索引,访问过程更加清晰,可读性更好。比如上面的结构体中明确声明了派丛,哪些成员是表示高位字节,哪些成员是低位字节。查找字符串target,直到出现字符串terminal(就停止查找)函数原型:Serial.findUntil(target, terminal):要查找的字符串,只能查找字符串,如果要查找字符则写单个字符的字符串“a” 数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应尘铅樱用专用的数字模块采集技术

和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个NTC 测

温元件,并与一个高性能8 位单片机相连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优

点。每个DHT11 传感器都在极为精确的湿度校验室中进行校准。校准系数以程序的形式储存在OTP 内存中,传感器内

部在检测信号的处理过程中要调用这些校准系数。单线制串行接口,使系统集成变得简易快捷。超小的体积、极低的

功耗,信号传输距离可达20 米以上,使其成为各类应用甚至最为苛刻的应用场合的最激运佳选则。

DHT11 数字温湿度传感器模块为3 针PH2.0 封装。连接方便。

terminal:结束标志,单片机读取到一个字符串后,如果判断到该字符为结束字符串,则无论有没有找到目标字符串都停止查找

arduino串口如何显示小数实现方法如下:

基本思路

用一个单精度浮点数定义一个假想的温度值:

float hypoTemp = -12.34 // 假想从困粗传感器陆尺圆获得的温度值

一个单精度浮点数(float)在 Arduino 中长度为 32 位 ,也就是 4 Byte。 比如上面的 -12.34 把它写成二进制和十六进制就是:

BIN: 1100 0001 0100 0101 0111 0000 1010 0100 HEX: 0xC14570A4

至于这是怎么换算的,请参看 IEEE 754 浮点数换算标准,网上教程大把。实际应用早塌中,你可以通过在线工具,直接换算。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8269455.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存