You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为Adafruit ADS1115配置Arduino第二I2C总线(Sercom)

适配Adafruit Grand Central M4第二I2C总线的ADS1115非阻塞代码修改

核心修改逻辑

Grand Central M4的第二I2C总线对应Wire1对象,默认映射引脚为24(SCL1)和25(SDA1)。要将ADS1115迁移至该总线,需对原nonblocking.ino完成以下关键调整:

  • 替换默认I2C实例Wire为Wire1
  • 在ADS1115初始化时传入Wire1对象,明确指定使用第二总线
  • 显式初始化Wire1并绑定对应引脚(可选但更严谨)

修改后的完整代码

#include <Adafruit_ADS1X15.h>

Adafruit_ADS1115 ads;  // 16位ADS1115使用此定义
// Adafruit_ADS1015 ads;  // 12位ADS1015使用此定义

// 显式定义第二I2C总线引脚(Grand Central M4的Wire1默认对应24/25)
#define SCL1_PIN 24
#define SDA1_PIN 25

void setup(void)
{
  Serial.begin(9600);
  while (!Serial);
  Serial.println("ADS1115 Non-Blocking Test");
  
  // 初始化第二I2C总线
  Wire1.begin(SDA1_PIN, SCL1_PIN);
  
  // 绑定Wire1初始化ADS1115,指定设备地址0x48(可根据硬件跳线修改)
  if (!ads.begin(0x48, &Wire1)) {
    Serial.println("ADS1115初始化失败");
    while (1);
  }
  
  // 启动单次非阻塞转换,完成后等待下次触发
  ads.startADCReading(ADS1X15_REG_CONFIG_MUX_SINGLE_0, /*continuous=*/false);
}

void loop(void)
{
  // 检查转换是否完成
  if (ads.conversionComplete()) {
    int16_t rawValue = ads.getLastConversionResults();
    float voltage = ads.computeVolts(rawValue);
    
    Serial.print("AIN0原始值: "); Serial.print(rawValue);
    Serial.print(" | 电压: "); Serial.print(voltage); Serial.println("V");
    
    // 启动下一次非阻塞转换
    ads.startADCReading(ADS1X15_REG_CONFIG_MUX_SINGLE_0, /*continuous=*/false);
  }
  
  // 此处可添加其他任务逻辑,非阻塞模式下不会阻塞主循环
  delay(10); // 示例延迟,可根据实际需求调整
}

额外注意事项

  • 接线验证:确认ADS1115的SDA接引脚25、SCL接引脚24,VCC/GND连接正确
  • 库版本要求:确保使用最新版Adafruit_ADS1X15库(支持传入自定义I2C对象)
  • FreeRTOS适配:多任务环境下需为Wire1操作添加互斥锁,避免总线访问冲突,示例片段:
    SemaphoreHandle_t i2cSemaphore;
    
    // 任务初始化阶段创建互斥锁
    i2cSemaphore = xSemaphoreCreateMutex();
    
    // 访问ADS1115前获取锁
    if(xSemaphoreTake(i2cSemaphore, portMAX_DELAY) == pdTRUE){
      if (ads.conversionComplete()) {
        // 执行转换读取逻辑
      }
      xSemaphoreGive(i2cSemaphore);
    }
    

内容的提问来源于stack exchange,提问作者ChrisB

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 20:27:19