|
模数转换器(ADC))将模拟数据转换为数字格式。16位ADS1110模块可为使用微控制器测量模拟数据提供良好的精度。 在本篇帖子中,我们将ADS1110模块连接到Arduino开发板。模块与Arduino开发板之间的通信通过I2C协议完成。在本文中,我们将使用电位器输出(2 至 10KΩ)作为ADS1110模块的输入数据。我们还需要上拉电阻来连接模块。
所需的组件 ● Arduino UNO R3开发板 ● ADS1110转换器模块 ● 公对公跳线 ● 2k电位器 ● 2.2k电阻器 ● 面包板
ADS1110模块的引脚分布 ADS1110模块共有6个引脚,如下图所示:
• VIN:模块电源 • GND:接地 • SDA:用于I2C协议 • SCL:用于I2C协议 • VIN-:负电源引脚 • VIN+:正电源引脚
ADS1110模块与Arduino开发板的硬件连接 按如下所示连接电线。将上拉电阻连接到SDA和SCL引脚。
代码 在Arduino IDE软件中,选择使用的开发型号Arduino UNO和串口号。 然后将以下代码上传到您的Arduino。 - #include "Wire.h"
- #define ads1110 0x48
- float voltage, data;
- byte highbyte, lowbyte, configRegister;
- void setup()
- {
- Serial.begin(9600);
- Wire.begin();
- }
- void loop()
- {
- Wire.requestFrom(ads1110, 3);
- while(Wire.available()) // ensure all the data comes in
- {
- highbyte = Wire.read(); // high byte * B11111111
- lowbyte = Wire.read(); // low byte
- configRegister = Wire.read();
- }
- data = highbyte * 256;
- data = data + lowbyte;
- Serial.print("Data >> ");
- Serial.println(data, DEC);
- Serial.print("Voltage >> ");
- voltage = data * 2.048 ;
- voltage = voltage / 32768.0;
- Serial.print(voltage, DEC);
- Serial.println(" V");
- delay(1000);
- }
复制代码
代码说明 首先,我们调用I2C相关的库,然后找到模块的I2C地址。 - #include "Wire.h"
- #define ads1110 0x48
- float voltage, data;
- byte highbyte, lowbyte, configRegister;
复制代码要找到地址,请转到File –> Wire –> Examples,然后运行I2C_scanner示例;串口监视器窗口将显示该地址。接下来,我们定义所需的变量。 - Wire.requestFrom(ads1110, 3);
- while(Wire.available()) // ensure all the data comes in
- {
- highbyte = Wire.read(); // high byte * B11111111
- lowbyte = Wire.read(); // low byte
- configRegister = Wire.read();
- }
复制代码在该段代码中,模块发送的数据存储在三个变量中。 - data = highbyte * 256;
- data = data + lowbyte;
- Serial.print("Data >> ");
- Serial.println(data, DEC);
- Serial.print("Voltage >> ");
- voltage = data * 2.048 ;
- voltage = voltage / 32768.0;
- Serial.print(voltage, DEC);
- Serial.println(" V");
- delay(1000);
复制代码最后,我们执行模块数据表中提到的必要计算,将接收到的数据转换为所需的格式。
测试结果 运行代码后,您可以在串口监视器窗口中查看所需的输出,显示16位数据和相应的电压值。
以上就是基于ADS1110模块连接到Arduino开发板的全部内容,如果有任何疑问,请随时在本贴下面回复。 |