0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

使用ADS1115扩展ROC-RK3568-PC开发板ADC功能

电子发烧友开源社区 来源:未知 2022-11-18 09:10 次阅读

通过ROC-RK3568-PC的官方资料,可以了解到,这块板子,本身带有ADC接口,具体信息如下:

81c7bc12-66dd-11ed-8abf-dac502259ad0.png

不过也了解到,板子本身提供的ADC接口,最大检测电压范围是1.8V,所以在实际使用中,会有所局限。

刚好,我手头有一个ADS1115 ADC模块,相当的不错,某宝某店家介绍如下:

81c7bc12-66dd-11ed-8abf-dac502259ad0.png

81f380e0-66dd-11ed-8abf-dac502259ad0.png

不吹不擂,这个ADS1115 ADC模块,那是相当的好用。

一共提供了4个输入通道,16bit的,精细度很高。

既然好用,那就要上咱们ROC-RK3568-PC开发板试一试。

一、硬件连线

ADS1115 ADC模块是一个I2C模块,根据开发板的资料,找到具体的I2C在GPIO扩展接口上的位置:

81fcbdea-66dd-11ed-8abf-dac502259ad0.png

板子上,GPIO扩展接口提供了多组I2C接口,选用I2C1即可。

826dd642-66dd-11ed-8abf-dac502259ad0.png

ADS1115模块接线如下:

834c424c-66dd-11ed-8abf-dac502259ad0.jpg

最终实物连线后如下:

835ab1ce-66dd-11ed-8abf-dac502259ad0.jpg

在上图中,使用了一块迷你 IoT电源,用于提供不同的电压,方便进行实际测试。电源要和开发板共地,然后,+连接到ADS1115的AIN0~3任一接口,上述图中接在AIN0。

二、检测I2C连接是否正常

使用sudo i2cdetect -r -y 1命令检查连接:

839a444c-66dd-11ed-8abf-dac502259ad0.png

上图中,48即为ADS1115的I2C地址0x48。如果没有出现,仔细检查接线是否正确。因为GPIO扩展接口是2.0的,我手头的线都是2.54的,所以5V和GND接到了别的位置,免得挤得太紧。

三、编写程序

Adafruit为ADS1115提供了开发库:adafruit/Adafruit_ADS1X15: Driver for TI's ADS1015: 12-bit Differential or Single-Ended ADC with PGA and Comparator (github.com)

不过,该扩展库,主要是给Arduino提供的,在咱们板子上,不能直接使用。

于是fork后,添加了Linux环境支持,已经发布到github:HonestQiao/Adafruit_ADS1X15: Driver for TI's ADS1015: 12-bit Differential or Single-Ended ADC with PGA and Comparator (github.com)

另外,还有Python版本的,是给CircuitPython提供的,有时间我也会fork一下,再提供Linux支持。

上面我修改后的库,下载后,结构如下:

83b21d24-66dd-11ed-8abf-dac502259ad0.png

测试代码具体如下:

#include "../../Adafruit_ADS1X15.h"


Adafruit_ADS1115 ads(); /* Use this for the 16-bit version */
// Adafruit_ADS1015 ads;   /* Use this for the 12-bit version */


void setup(void) {
 printf("Getting single-ended readings from AIN0..3");
 printf("ADC Range: +/- 6.144V (1 bit = 3mV/ADS1015, 0.1875mV/ADS1115)");


 if (!ads.begin(0x48, 1)) {
  // Serial.println("Failed to initialize ADS.");
  printf("Failed to initialize ADS.");
  while (1)
   ;
 }
}


void loop(void) {
 int16_t adc0, adc1, adc2, adc3;
 float volts0, volts1, volts2, volts3;


 adc0 = ads.readADC_SingleEnded(0);
 adc1 = ads.readADC_SingleEnded(1);
 adc2 = ads.readADC_SingleEnded(2);
 adc3 = ads.readADC_SingleEnded(3);


 volts0 = ads.computeVolts(adc0);
 volts1 = ads.computeVolts(adc1);
 volts2 = ads.computeVolts(adc2);
 volts3 = ads.computeVolts(adc3);
 printf("-----------------------------------------------------------
");
 printf("AIN0: %d %f V
", adc0, volts0);
 printf("AIN0: %d %f V
", adc1, volts1);
 printf("AIN0: %d %f V
", adc2, volts2);
 printf("AIN0: %d %f V
", adc3, volts3);


 delay(1000);
}


int main(int argc, char *argv[]) {
 setup();
 while (true) {
  loop();
 }
}

(左右移动查看全部内容)

上述代码中,关键调用如下:

  • 实例化ADS1115对象:Adafruit_ADS1115 ads* 开启设备I2C通信:ads.begin(0x48, 1),两个参数,一个为ADS1115的地址0x48,一个为/dec/i2c-1的序号1

  • 读取数据:ads.readADC_SingleEnded(0),表示读取通道0的数据,也就是A0;可用通道为0~3

  • 电压转换:ads.computeVolts(adc0);表示转换adc0的数据到实际的电压值

四、编译运行

编写好代码,保存后,使用下面的步骤编译运行:

# 编译
gcc -o singleended singleended.cpp ../../Adafruit_ADS1X15.cpp


# 查看编译结果:aarch64
file singleended
singleended: ELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, BuildID[sha1]=be3e02ae2223c4431de1bdb70c6f942f9016d8fa, for GNU/Linux 3.7.0, not stripped


# 运行编译后的程序
./singleended

(左右移动查看全部内容)

五、实际运行结果

当IoT电源没有输出的时候,结果如下:

83c111c6-66dd-11ed-8abf-dac502259ad0.jpg

83cf7428-66dd-11ed-8abf-dac502259ad0.png

打开IoT电源输出,设定为4.2V,结果如下:

83e12402-66dd-11ed-8abf-dac502259ad0.jpg

83f375e4-66dd-11ed-8abf-dac502259ad0.png

84065ff6-66dd-11ed-8abf-dac502259ad0.png

可以看出,电压的测量,精度还是很高的。

六、总结

使用ADS1115模块,可以很方便的为 ROC-RK3568-PC开发板 扩展ADC功能,后续不管是接入按键,还是其他的模拟传感器等,都会非常的方便。

更多热点文章阅读

  • 玩嗨OpenHarmony:基于OpenHarmony的智能助老服务机器人
  • 玩嗨OpenHarmony:基于OpenHarmony的智慧农业环境监控系统
  • HarmonyOS 3.1版本发布,全面进入声明式开发
  • OpenHarmony开发之MQTT讲解
  • OpenHarmony集成OCR三方库实现文字提取

提示:本文由电子发烧友社区发布,转载请注明以上来源。如需社区合作及入群交流,请添加微信EEFans0806,或者发邮箱liuyong@huaqiu.com。


原文标题:使用ADS1115扩展ROC-RK3568-PC开发板ADC功能

文章出处:【微信公众号:电子发烧友开源社区】欢迎添加关注!文章转载请注明出处。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 电子发烧友
    +关注

    关注

    33

    文章

    549

    浏览量

    32938
  • 开源社区
    +关注

    关注

    0

    文章

    94

    浏览量

    406

原文标题:使用ADS1115扩展ROC-RK3568-PC开发板ADC功能

文章出处:【微信号:HarmonyOS_Community,微信公众号:电子发烧友开源社区】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    RK3568内置MCU开发介绍之一

    A55(下文简称AP)和1个RISCV(下文简称MCU)。 硬件准备 首先介绍一下硬件。主板为风火轮科技的YY3568开发板,主控RK3568。此开发板的相关介绍可以参考 https
    的头像 发表于 12-01 16:09 151次阅读
    <b class='flag-5'>RK3568</b>内置MCU<b class='flag-5'>开发</b>介绍之一

    【迅为电子】叮!您的RK3568开发板系统镜像备份方法请查收

    【迅为电子】叮!您的RK3568开发板系统镜像备份方法请查收
    的头像 发表于 11-27 14:02 199次阅读
    【迅为电子】叮!您的<b class='flag-5'>RK3568</b><b class='flag-5'>开发板</b>系统镜像备份方法请查收

    迅为RK3568开发板定制扩展分区SDK源码编译-获取Linux-定制扩展分区源码包

    、ubuntu24 环境均可在不进行任何配置的情况下编译编译通过。 Linux-定制扩展分区源码网盘下载路径:“iTOP-3568 开发板\\\\01_【iTOP-RK3568
    发表于 11-25 10:24

    基于迅为RK3568开发板全国产平台,快速实现APP开机自启动技术分享

    基于迅为RK3568开发板全国产平台,快速实现APP开机自启动技术分享
    的头像 发表于 11-21 13:58 298次阅读
    基于迅为<b class='flag-5'>RK3568</b><b class='flag-5'>开发板</b>全国产平台,快速实现APP开机自启动技术分享

    【迅为】瑞芯微RK3588开发板RK3568开发板区别及优势

    RK3568开发板
    的头像 发表于 11-18 14:19 261次阅读
    【迅为】瑞芯微<b class='flag-5'>RK</b>3588<b class='flag-5'>开发板</b><b class='flag-5'>RK3568</b><b class='flag-5'>开发板</b>区别及优势

    能力再次提升! 迅为RK3588/RK3568开发板&amp;amp;核心新增定制分区镜像

    能力再次提升! 迅为RK3588/RK3568开发板&核心新增定制分区镜像
    的头像 发表于 11-06 15:11 339次阅读
    能力再次提升! 迅为<b class='flag-5'>RK</b>3588/<b class='flag-5'>RK3568</b><b class='flag-5'>开发板</b>&amp;amp;核心<b class='flag-5'>板</b>新增定制分区镜像

    迅为iTOP-RK3568/RK3588开发板获麒麟软件适配认证

    迅为iTOP-RK3568/RK3588开发板获麒麟软件适配认证
    的头像 发表于 10-18 14:56 466次阅读
    迅为iTOP-<b class='flag-5'>RK3568</b>/<b class='flag-5'>RK</b>3588<b class='flag-5'>开发板</b>获麒麟软件适配认证

    瑞芯微RK3568鸿蒙开发板OpenHarmony系统修改cfg文件权限方法

    本文适用于OpenHarmony开源鸿蒙系统修改cfg文件权限方法,深圳触觉智能研发的RK3566、RK3568RK3588等开发板、主板等产品均适用此教程
    的头像 发表于 09-11 13:26 806次阅读
    瑞芯微<b class='flag-5'>RK3568</b>鸿蒙<b class='flag-5'>开发板</b>OpenHarmony系统修改cfg文件权限方法

    北京迅为RK3568开发板嵌入式学习之Linux驱动全新更新-CAN+

    北京迅为RK3568开发板嵌入式学习之Linux驱动全新更新-CAN+
    的头像 发表于 09-04 15:29 438次阅读
    北京迅为<b class='flag-5'>RK3568</b><b class='flag-5'>开发板</b>嵌入式学习之Linux驱动全新更新-CAN+

    国产核心全面进攻-RK3568开发板评测

    随着端侧AI应用的落地,预计集成NPU的SoC产品将迎来爆发式的增量市场。本期与非网给大家带来一款采用国内知名SoC厂商的产品——基于瑞芯微RK3568开发板
    的头像 发表于 08-30 11:49 1049次阅读
    国产核心<b class='flag-5'>板</b>全面进攻-<b class='flag-5'>RK3568</b><b class='flag-5'>开发板</b>评测

    RK3568开发板支持AMP双系统

    RK3568开发板支持AMP双系统
    的头像 发表于 06-04 15:33 667次阅读
    <b class='flag-5'>RK3568</b><b class='flag-5'>开发板</b>支持AMP双系统

    鸿蒙OpenHarmony南向:【RK3568开发板介绍】

    RK3568开发板基于Rockchip RK3568芯片,集成双核心架构GPU以及高效能NPU;搭载四核64位Cortex-A55处理器,采用22nm先进工艺,主频高达2.0GHz;支持蓝牙
    的头像 发表于 05-07 10:13 801次阅读
    鸿蒙OpenHarmony南向:【<b class='flag-5'>RK3568</b><b class='flag-5'>开发板</b>介绍】

    鸿蒙OpenHarmony【标准系统编译】 (基于RK3568开发板

    DevEco Device Tool支持Rockchip RK3568开发板的源码一键编译功能,提供编译工具链和编译环境依赖的检测及一键安装,简化复杂编译环境的同时,提升了编译的效率。
    的头像 发表于 04-24 20:55 1177次阅读
    鸿蒙OpenHarmony【标准系统编译】 (基于<b class='flag-5'>RK3568</b><b class='flag-5'>开发板</b>)

    迅为RK3568开发板驱动开发指南-输入子系统

    迅为RK3568开发板驱动开发指南-输入子系统
    的头像 发表于 02-23 15:11 813次阅读
    迅为<b class='flag-5'>RK3568</b><b class='flag-5'>开发板</b>驱动<b class='flag-5'>开发</b>指南-输入子系统

    迅为RK3568开发板助力智能车载产业快速发展

    迅为RK3568开发板助力智能车载产业快速发展
    的头像 发表于 01-23 13:59 549次阅读
    迅为<b class='flag-5'>RK3568</b><b class='flag-5'>开发板</b>助力智能车载产业快速发展