micropython的esp32,使用HX711AD模块的电子秤

在研究使用HX711AD模块的电子秤的时候,没有发现适用于micropython的代码,所以本人照着c语言的版本自行写了一个,代码如下.

但是下列代码有些许问题,

1.在等待DT返回高电平的时候,偶尔会直接跳过等待阶段,直接执行24个电平检测信号,导致数据错误.

2.因为读取DT是靠高低电平,来写二进制的,数据精度难以保证.

from machine import Pin,Timer,PWM,ADC
import utime
import ustruct
import select
from micropython import const
HX711_SCK = Pin(4,Pin.OUT)
HX711_DT = Pin(13,Pin.IN)
GapValue=const(450)
select.poll()
def HX711_Read():
    utime.sleep_us(1)
    HX711_SCK.value(0)
    count='0b'
    utime.sleep_us(1)
    print(HX711_DT.value())
    if HX711_DT.value()==1:
        for i in range(24):
            HX711_SCK.value(1)
            utime.sleep_us(1)
            HX711_SCK.value(0)
            utime.sleep_us(1)
            print(HX711_DT.value())
            if HX711_DT.value()==1:
                count=count+'1'
            else:
                count=count+'0'
    count = count.replace(count[2],'0')
    print(count)
    HX711_SCK.value(1)
    utime.sleep_us(1)
    count=int(count)/100
    print(count)
    HX711_SCK.value(0)
    utime.sleep_us(1)
    return count
def Get_Weight():
    HX711_Buffer = HX711_Read()
    Weight_Shiwu = HX711_Buffer
    print(Weight_Shiwu)
    Weight_Shiwu = Weight_Shiwu
    Weight_Shiwu =float(Weight_Shiwu/GapValue)
    return Weight_Shiwu
Weight = Get_Weight();
print(str(Weight)+'g')
    
    
    
    
    
    
    
    
    
    
    

版权声明:本文为CSDN博主「蒼花星河」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_51735477/article/details/122988743

在研究使用HX711AD模块的电子秤的时候,没有发现适用于micropython的代码,所以本人照着c语言的版本自行写了一个,代码如下.

但是下列代码有些许问题,

1.在等待DT返回高电平的时候,偶尔会直接跳过等待阶段,直接执行24个电平检测信号,导致数据错误.

2.因为读取DT是靠高低电平,来写二进制的,数据精度难以保证.

from machine import Pin,Timer,PWM,ADC
import utime
import ustruct
import select
from micropython import const
HX711_SCK = Pin(4,Pin.OUT)
HX711_DT = Pin(13,Pin.IN)
GapValue=const(450)
select.poll()
def HX711_Read():
    utime.sleep_us(1)
    HX711_SCK.value(0)
    count='0b'
    utime.sleep_us(1)
    print(HX711_DT.value())
    if HX711_DT.value()==1:
        for i in range(24):
            HX711_SCK.value(1)
            utime.sleep_us(1)
            HX711_SCK.value(0)
            utime.sleep_us(1)
            print(HX711_DT.value())
            if HX711_DT.value()==1:
                count=count+'1'
            else:
                count=count+'0'
    count = count.replace(count[2],'0')
    print(count)
    HX711_SCK.value(1)
    utime.sleep_us(1)
    count=int(count)/100
    print(count)
    HX711_SCK.value(0)
    utime.sleep_us(1)
    return count
def Get_Weight():
    HX711_Buffer = HX711_Read()
    Weight_Shiwu = HX711_Buffer
    print(Weight_Shiwu)
    Weight_Shiwu = Weight_Shiwu
    Weight_Shiwu =float(Weight_Shiwu/GapValue)
    return Weight_Shiwu
Weight = Get_Weight();
print(str(Weight)+'g')
    
    
    
    
    
    
    
    
    
    
    

版权声明:本文为CSDN博主「蒼花星河」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_51735477/article/details/122988743

生成海报
点赞 0

蒼花星河

我还没有学会写个人说明!

暂无评论

发表评论

相关推荐

基于8051单片机实现电子时钟+数字秒表设计

概述 电子时钟是一种利用数字电路来显示秒、分、时的计时装置,与传统的机械钟相比,它具有走时准确、显 示直观、无机械传动装置等优点,因而得到广泛应用。随着人们生活环境的不断改善和美化,在许

ESP32-GY_30光照强度传感器

GY_30光照强度传感器介绍 GY-30光强传感器特点及使用介绍 一、连接引脚 GY_30光照强度传感器使用I2C传输数据 。 5根引脚,名称与功能如下; vcc 为外接供电电源输入端 GND 地线 SCL I2C通信模式时钟

汽车级MCU大战“一触即发”

汽车行业,尤其是智能汽车赛道,不仅仅只有高算力SoC。数据显示,汽车微控制器(MCU)市场在过去的十年里占据所有行业MCU总销量的40%。 台积电在去年披露的数据吸纳是&#

LORA电能表在变电所场合的应用

安科瑞 王冲 摘要:在科技发达的今天,电能依旧是国家发展、社会稳定的重要来源。电力配电快速成长,也带来许多问题。在电表安装地点分布广,或布线紧密情况下,传统的有线通讯方式是