m0_64532668 2024-05-08 19:02 采纳率: 75%
浏览 3
已结题

Arduino无法同时连接多个hx711模块,如何解决?

连接一个可以正常运行,但是连接上第二个之后,第二个无法正常工作,一直返回-1的值,并且发热滚烫。
代码如图

img

  • 写回答

18条回答 默认 最新

  • 专家-郭老师 Java领域新星创作者 2024-05-08 19:13
    关注

    🕗晚上好,题主!目前:🟢[在线]
    📢参考通义千问、由郭老师整理提供!
    📣今日诗号:疏影横斜,暗香浮动,低酌浅唱月明中。休去,休去,惊起一枕奇梦。

    你的问题在于你尝试在同一时刻初始化两个HX711模块,但Arduino Uno的数字引脚资源有限,不能同时为两个模块提供足够的I2C通信。为了解决这个问题,你需要在初始化和读取数据时进行一些调整。以下是修改后的代码,使用了两个不同的I2C地址来区分两个模块:

    #include <Wire.h>
    #include "HX711.h"
    
    const int LOADCELL_DOUT_PIN1 = 4;
    const int LOADCELL_SCK_PIN1 = 5;
    const int LOADCELL_DOUT_PIN2 = 2;
    const int LOADCELL_SCK_PIN2 = 3;
    
    HX711 scale1(LOADCELL_DOUT_PIN1, LOADCELL_SCK_PIN1, 0x4e); // HX711默认地址是0x4e
    HX711 scale2(LOADCELL_DOUT_PIN2, LOADCELL_SCK_PIN2, 0x4f); // HX711的第二个地址通常是0x4f
    
    void setup() {
      Serial.begin(57600);
      
      // 初始化每个模块
      if (!scale1.begin()) {
        Serial.println("Error initializing scale1");
        return;
      }
      if (!scale2.begin()) {
        Serial.println("Error initializing scale2");
        return;
      }
      
      Serial.println("HX711 modules initialized.");
    }
    
    void loop() {
      if (scale1.is_ready()) {
        long reading_1 = scale1.read();
        Serial.print("Scale 1: ");
        Serial.println(reading_1);
        delay(1000);
      }
    
      if (scale2.is_ready()) {
        long reading_2 = scale2.read();
        Serial.print("Scale 2: ");
        Serial.println(reading_2);
        delay(1000);
      }
    }
    

    这里我将两个模块的DOUT和SCK引脚分别分配到了不同的数字引脚,并给每个模块指定了不同的I2C地址(默认地址是0x4e和0x4f)。这样,它们就可以在不冲突的情况下独立工作。

    请注意,确保你的硬件连接正确,并且每个模块的电源和地线都连接在一起。如果问题仍然存在,可能需要检查I2C通信是否稳定,或者尝试更改其中一个模块的I2C地址。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(17条)

报告相同问题?

问题事件

  • 系统已结题 5月18日
  • 已采纳回答 5月10日
  • 创建了问题 5月8日

悬赏问题

  • ¥15 使用ESP8266连接阿里云出现问题
  • ¥15 被蓝屏搞吐了,有偿求帮解答,Ai回复直接拉黑
  • ¥15 BP神经网络控制倒立摆
  • ¥20 要这个数学建模编程的代码 并且能完整允许出来结果 完整的过程和数据的结果
  • ¥15 html5+css和javascript有人可以帮吗?图片要怎么插入代码里面啊
  • ¥30 Unity接入微信SDK 无法开启摄像头
  • ¥20 有偿 写代码 要用特定的软件anaconda 里的jvpyter 用python3写
  • ¥20 cad图纸,chx-3六轴码垛机器人
  • ¥15 移动摄像头专网需要解vlan
  • ¥20 access多表提取相同字段数据并合并