我正在使用树莓派3B和ADC(ADS1115)进行模拟传感器(水压和水浊度)的采集系统。
我面临的问题是,缓冲区(或其他)不时会变满,而ads1115会给出零读数。
数据速率(或其他)越低,空值越频繁。
在这里,我展示了我的情节:
DATA RATE = 8 sps
数据速率= 16 sps
液滴浊度变为零,压力变为负值是ADC读数为零的结果。
有没有办法清除ADC的缓冲区(或其他)?或者你认为问题是其他问题?
我拥有的连接都在GitHub存储库中:https://github.com/Ricardosgeral/relier/blob/master/README.md
读取ADS1115的代码在此文件https://github.com/Ricardosgeral/relier/blob/master/analogsensor_thread.py中
我会在这里感谢一些方向。
谢谢
我正在开发一些嵌入式设备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看不清楚,
使用此代码,我可以阅读每种情况