2016-12-27 101 views
4

试图从gpio读取模拟数据,但只能看到返回信号强度为LOW或HIGH(布尔型)的方式。 在文档和代码参考中找不到任何解决方案。 现在还有可能吗?如何从GPIO,Android-things读取模拟数据

+0

可以指定你使用和粘贴代码销? –

+0

例如BCM13(Rpi 3),但没有代码,只是无法找到如何从那里读取非布尔值 –

+0

我添加了有趣的博文到我原来的答案,显示如何建立自己的Android模块的ADC模块(该帖子的作者包括Android库使用它)。你可能会觉得很有用。 –

回答

3

Raspberry Pi 3没有analog-to-digital converter,所以你只能从其GPIO获得布尔值(高/低)。因此,为了获得模拟数据,您需要在项目中使用外部ADC模块。

编辑:我发现this interesting blogpost显示如何测量Android事物上的模拟输入。

1

对于Raspberry Pi,您将需要使用模数转换器,如ADS1115。

+0

电路板,如带有Arduino分线器的Edison,是否有模拟输入引脚? –

+0

英特尔Edison有6个模拟输入(引脚A0-A5)和6个模拟(PWM)输出(引脚〜3,〜5,〜6,〜9,〜10,〜11)。为了从模拟输入中读取传感器,请查看:https://developer.android.com/things/sdk/drivers/sensors.html。要使用模拟输出,请查看:https://developer.android.com/things/sdk/pio/pwm.html – diazdeteran

+0

实际上,带有Arduino breakout的Edison有一个内置的ADC,目前不支持Android Things https://code.google.com/p/android/issues/detail?id=230568 所以现在你只能写数字输入传感器的驱动程序,而不是模拟。 –

1

如果你还在寻找,我写了一个类和样品的Adafruit的MCP3008 ADC

https://github.com/PaulTR/AndroidThingsMCP3008ADC

+0

嗨保罗,与TMP36,通道0阅读给予阅读257,我认为这是不正确的,因为我的室温,我只是用你的代码MCP3008具有相同的引脚配置。任何建议可能是错误的? –

+0

@MahendraChhimwal如果这是直接阅读,你可能需要将其转换为温度。你可能会想要(价值 - 50)/ 10,这应该会给你20.7C,大约70F。 –