ads1115缓冲区溢出,采样率低

问题描述 投票:0回答:1

我正在使用树莓派3B和ADC(ADS1115)进行模拟传感器(水压和水浊度)的采集系统。

我面临的问题是,缓冲区(或其他)不时会变满,而ads1115会给出零读数。

数据速率(或其他)越低,空值越频繁。

在这里,我展示了我的情节:

DATA RATE = 8 sps

8sps

数据速率= 16 sps

16sps

液滴浊度变为零,压力变为负值是ADC读数为零的结果。

有没有办法清除ADC的缓冲区(或其他)?或者你认为问题是其他问题?

我拥有的连接都在GitHub存储库中:https://github.com/Ricardosgeral/relier/blob/master/README.md

读取ADS1115的代码在此文件https://github.com/Ricardosgeral/relier/blob/master/analogsensor_thread.py

我会在这里感谢一些方向。

谢谢

python raspberry-pi buffer i2c adc
1个回答
0
投票

我正在开发一些嵌入式设备ads1115和覆盆子pi在Windows 10 iot核心,这是我的步骤,我希望对你有所帮助。

private I2cDevice _converter1;

这是ads1115的设置位

var i2CSettings1 = new I2cConnectionSettings(0x48)
                {
                    BusSpeed = I2cBusSpeed.FastMode,
                    SharingMode = I2cSharingMode.Shared
                };

                var i2C1 = I2cDevice.GetDeviceSelector("I2C1");
                var devices = await DeviceInformation.FindAllAsync(i2C1);
                var gpio = GpioController.GetDefault();

                _converter1 = await I2cDevice.FromIdAsync(devices[0].Id, i2CSettings1);
                _converter1.Write(new byte[] { 0x01, 0xc4, 0x60 });
                _converter1.Write(new byte[] { 0x02, 0x00, 0x00 }); //rate
                _converter1.Write(new byte[] { 0x03, 0xff, 0xff });

安装后可能我可以使用ads1115的警报引脚,我将警报引脚连接到pi数字引脚并读取我的读取代码,有时我正在读取循环,for循环你必须等待20毫秒这里是我的阅读代码

_converter1.WriteRead(new byte[] { 0x0 }, bytearray1);
                            if (BitConverter.IsLittleEndian)
                                Array.Reverse(bytearray1);
                            var value1 = BitConverter.ToInt16(bytearray1, 0);

referance电压是非常非常重要的,我使用树莓pi 3.3 vcc作为参考电压和其他重要的事情是树莓有2个输入电压线usb和其他5伏vcc引脚。

usb端口线是可调节的,但5伏vcc引脚不受管制

如果你使用5伏vcc引脚覆盆子ads1115看不清楚,

使用此代码,我可以阅读每种情况

© www.soinside.com 2019 - 2024. All rights reserved.