风筝
发表于: 昨天 14:32 | 显示全部楼层

模数转换器(ADC))将模拟数据转换为数字格式。16位ADS1110模块可为使用微控制器测量模拟数据提供良好的精度。

在本篇帖子中,我们将ADS1110模块连接到Arduino开发板。模块与Arduino开发板之间的通信通过I2C协议完成。在本文中,我们将使用电位器输出(2 至 10KΩ)作为ADS1110模块的输入数据。我们还需要上拉电阻来连接模块。


所需的组件

●    Arduino UNO R3开发板

●    ADS1110转换器模块

●    公对公跳线

●    2k电位器

●    2.2k电阻器

●    面包板


ADS1110模块的引脚分布

ADS1110模块共有6个引脚,如下图所示:

ADS1110-pin.jpg

•    VIN:模块电源

•    GND:接地

•    SDA:用于I2C协议

•    SCL:用于I2C协议

•    VIN-:负电源引脚

•    VIN+:正电源引脚


ADS1110模块与Arduino开发板的硬件连接

按如下所示连接电线。将上拉电阻连接到SDA和SCL引脚。

ADS1110-wiring.jpg


代码

在Arduino IDE软件中,选择使用的开发型号Arduino UNO和串口号。

然后将以下代码上传到您的Arduino。

  1. #include "Wire.h"
  2. #define ads1110 0x48
  3. float voltage, data;
  4. byte highbyte, lowbyte, configRegister;
  5. void setup()
  6. {
  7. Serial.begin(9600);
  8. Wire.begin();
  9. }
  10. void loop()
  11. {
  12. Wire.requestFrom(ads1110, 3);
  13. while(Wire.available()) // ensure all the data comes in
  14. {
  15. highbyte = Wire.read(); // high byte * B11111111
  16. lowbyte = Wire.read(); // low byte
  17. configRegister = Wire.read();
  18. }

  19. data = highbyte * 256;
  20. data = data + lowbyte;
  21. Serial.print("Data >> ");
  22. Serial.println(data, DEC);
  23. Serial.print("Voltage >> ");
  24. voltage = data * 2.048 ;
  25. voltage = voltage / 32768.0;
  26. Serial.print(voltage, DEC);
  27. Serial.println(" V");
  28. delay(1000);
  29. }
复制代码

代码说明

首先,我们调用I2C相关的库,然后找到模块的I2C地址。

  1. #include "Wire.h"
  2. #define ads1110 0x48
  3. float voltage, data;
  4. byte highbyte, lowbyte, configRegister;
复制代码

要找到地址,请转到File –> Wire –> Examples,然后运行I2C_scanner示例;串口监视器窗口将显示该地址。接下来,我们定义所需的变量。

  1. Wire.requestFrom(ads1110, 3);
  2. while(Wire.available()) // ensure all the data comes in
  3. {
  4. highbyte = Wire.read(); // high byte * B11111111
  5. lowbyte = Wire.read(); // low byte
  6. configRegister = Wire.read();
  7. }
复制代码

在该段代码中,模块发送的数据存储在三个变量中。

  1. data = highbyte * 256;
  2. data = data + lowbyte;
  3. Serial.print("Data >> ");
  4. Serial.println(data, DEC);
  5. Serial.print("Voltage >> ");
  6. voltage = data * 2.048 ;
  7. voltage = voltage / 32768.0;
  8. Serial.print(voltage, DEC);
  9. Serial.println(" V");
  10. delay(1000);
复制代码

最后,我们执行模块数据表中提到的必要计算,将接收到的数据转换为所需的格式。


测试结果

运行代码后,您可以在串口监视器窗口中查看所需的输出,显示16位数据和相应的电压值。

ADS1110-serial1.jpg


以上就是基于ADS1110模块连接到Arduino开发板的全部内容,如果有任何疑问,请随时在本贴下面回复。

跳转到指定楼层
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题 716 | 回复: 1503



手机版|

GMT+8, 2025-1-8 16:58 , Processed in 0.062376 second(s), 10 queries , Gzip On, MemCache On. Powered by Discuz! X3.5

YiBoard一板网 © 2015-2022 地址:河北省石家庄市长安区高营大街 ( 冀ICP备18020117号 )

快速回复 返回顶部 返回列表