3.27 haas506 2.0开发教程-example -hx711串口称重模块

该教程介绍了如何使用HaaS5062.0微控制器和hx711串口称重模块创建简易电子称。通过UART通信,设置不同工作模式和指令,实现数据读取。当按下开发板的键时,OLED显示屏将显示重量。代码中包含了中断回调函数来处理数据并显示在显示屏上。
摘要由CSDN通过智能技术生成

最新案例教程点击下方链接跳转,CSDN已停止更新

点击跳转HaaS506官方最新案例







案例说明

使用hx711串口模块制作简易电子称

  • 模块购买链接:
  • hx711串口模块可以简化hx711传感器的使用,通过串口发送指令就可以读取到对应的数据,使用非常方便。
  • hx711串口模块有两种工作方式:一种发指令返回电信号数据,获取数据后需要再计算;一种是发指令直接获取物体重量
  • 每种工作方式又有两种收发方式:被动发送(发送一次指令返回一次数据),主动发送(发送一次指令后,每隔100ms自动返回一次数据)
  • 案例使用工作方式2,发送一次指令返回一次数据。
  • 相关指令
    在这里插入图片描述

请添加图片描述

连线

hx711安装焊接参考使用说明
在这里插入图片描述

hx711模块需要使用5v供电,注意vcc连线
在这里插入图片描述

代码

main.py

import utime as time
from driver import UART
from driver import GPIO
from ssd1306 import SSD1306_128_64


disp=SSD1306_128_64()


'''
A通道采集数据增益128倍,精度更高.B通道增益只有32倍
波特率9600bps,无校验位,停止位1,返回数据10字节.
串口模块只需发送对应指令即可控制HX711.
工作方式1只读取数据,需要自己计算重量
工作方式2需要调整系数k
案例使用工作方式2,被动发送
'''
#A通道指令
MODEL1_PASSIVITY_A  = b'\xA1'
MODEL1_INITIATIVE_A = b'\xA2'
MODEL2_PASSIVITY_A  = b'\xA3'
MODEL2_INITIATIVE_A = b'\xA4'
RECTIFY_A = b'\xA5'
QUPI_A = b'\xAA'
ADD_A = b'\xAB'
SUBTRACT_A = b'\xA5'
K_430 = b'\xA6'
K_210 = b'\xA7'
K_106 = b'\xA8'
K_26 = b'\xA9'

#B通道指令
MODEL1_PASSIVITY_B  = b'\xB1'
MODEL1_INITIATIVE_B = b'\xB2'
MODEL2_PASSIVITY_B  = b'\xB3'
MODEL2_INITIATIVE_B = b'\xB4'
RECTIFY_B = b'\xB5'
QUPI_B = b'\xBA'


#中断回调函数
def key1_callback(args):
    time.sleep(1)
    uart0.write(bytearray(MODEL2_PASSIVITY_A))
    ret = uart0.read(readBuf)
    print(readBuf)
    if (readBuf[0]==0XAA and readBuf[9]==0XFF):
            if((readBuf[7]*256+readBuf[8])==(readBuf[1]+readBuf[2]+readBuf[3]+readBuf[4]+readBuf[5]+readBuf[6])):
                Weight=readBuf[4]*65536+readBuf[5]*256+readBuf[6]
                print('Weight',Weight)  
                disp.oled_showStr(0,0,"Weight:",2)
                disp.oled_showStr(55,0,str(Weight),2) 
    key1.disableIrq()
    key1.clearIrq()



def enable_key():
    #开启中断
    key1.enableIrq(key1_callback)



if __name__ == '__main__':
    #实例化key1
    key1=GPIO(10,10)
    key1.open("KEY1")
    #串口实例化
    uart0=UART()
    uart0.open("serial1")
    # 初始化oled
    disp.begin()
    disp.clear()    #清屏 
    readBuf=bytearray(10)
    #uart0.write(bytearray(MODEL2_INITIATIVE_A))
    time.sleep(2)
    #打开按键使能
    enable_key()
    while True:
        time.sleep_ms(300)

测试

按下开发板自定义key键,OLED显示屏上会显示对应的重量。
在这里插入图片描述
请添加图片描述
请添加图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值