IOT-9608I-L ADC端口的使用(连续采样ADC值)

目录

概述

1 硬件介绍

1.1 认识硬件

 1.2 引脚信号定义

2 软件功能实现

2.1 查看iio:device0下的接口信息

2.2 实现连续采样ADC

2.2.1 功能描述

2.2.2 代码实现

2.2.3 详细代码

3 测试


概述

本文主要讲述IOT-9608I-L ADC端口的使用方便,其内容包括板卡上的硬件接口位置,以及内核中驱动的查看方法。还通过编写一个案例以验证ADC使用的方法,并测试器输出的log内容。

1 硬件介绍

1.1 认识硬件

IoT-9608提供8路模拟量输入,连接器为2×5Pin, 2.54mm间距的简易牛角座,主板上的标志为“ADC”,工位为J5。

 1.2 引脚信号定义

IoT-9608提供8路模拟量输入,其中pin-10为电源地信号线。

引脚名称说明引脚名称说明
1AI_0模拟量输入通道 02AI_1模拟量输入通道 1
3AI_2模拟量输入通道 24AI_3模拟量输入通道 3
5AI_4模拟量输入通道 46AI_5模拟量输入通道 5
7AI_6模拟量输入通道 68AI_7模拟量输入通道 7
9NC未连接10GND系统电源地

2 软件功能实现

Linux 的 ADC 在应用层上可以直接操作/sys/bus/iio/devices/iio:device0/目录的文件,而对于 Linux 的 ADC 操作有两种模式,一种是单次读取模式,第二种是多次读取模式。

2.1 查看iio:device0下的接口信息

使用命令:

cd /sys/bus/iio/devices/iio:device0/

执行命令之后,可以看见如下信息: 

2.2 实现连续采样ADC

2.2.1 功能描述

使用IoT-9608的ADC接口通道4,实现多次连续采样功能。具体要求如下:

1)读取ADC RAW count值

2)将RAW count转换为实际电压值

3)终端上打印ADC的raw count值和实际电压值

2.2.2 代码实现

创建IOT_9608_ADC_Test.c,并编写如下代码:

代码第29行: 打开ADC通道文件

代码第30行:读取当前通道的ADC raw count

代码第32行:将读到的数值转换为实际的电压值

代码第33行: 打印数据到终端

2.2.3 详细代码

1)测试代码:

/***************************************************************
Copyright  2024-2029. All rights reserved.
文件名     : IOT_9608_ADC_Test.c
作者       : tangmingfei2013@126.com
版本       : V1.0
描述       : IOT_9608 ADC测试程序
其他       : 无
日志       : 初版V1.0 2024/04/23
***************************************************************/
#include <stdio.h>
#include <string.h>
#include <stdlib.h>#define   FILE_ADC_PATH   "/sys/bus/iio/devices/iio:device0/in_voltage4_raw"int main()
{int cnt = 0;int count = 100;FILE  *fd=NULL;char strValue[5];int value;float adc;while(count--){fd=fopen(FILE_ADC_PATH,"r");fscanf(fd,"%s",strValue);   //读端口的ADC值value=atoi(strValue);adc=((float)value/4096.0)*3.3;printf("%03d  row count = %s adc=%.4fV\n",cnt, strValue, adc);fclose(fd);sleep(1);cnt++;}return 0;
}

2)测试代码的Makefile

#!/bin/sh
all:arm-none-linux-gnueabi-gcc IOT_9608_IO_Test.c -o adc-test02clean:rm -f adc-test*

3 测试

编译代码,然后将生成的可执行文件共享到nfs目录中

1) 挂载nfs命令:

mount -t nfs 192.168.1.193:/home/nfsroot /mnt -o nolock

2)执行文件

通过调节电阻的值,采集到ADC的数值也会随着调节幅度而变化

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/3018102.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

自动化机器学习——贝叶斯优化

自动化机器学习——贝叶斯优化 贝叶斯优化是一种通过贝叶斯公式推断出目标函数的后验概率分布&#xff0c;从而在优化过程中不断地利用已有信息来寻找最优解的方法。在贝叶斯优化中&#xff0c;有两个关键步骤&#xff1a;统一建模和获得函数的优化。 1. 统一建模 在贝叶斯优…

Windows端之Python3.9及以上高版本工程打包得到的exe逆向工程解包得到pyc文件进而得到py文件的流程实现

参考来自 【python逆向 pyc反编译】python逆向全版本通杀_python反编译pyc-CSDN博客https://blog.csdn.net/zjjcxy_long/article/details/127346296Pyinstaller打包的exe之一键反编译py脚本与防反编译_pyinstaller防止反编译-CSDN博客https://blog.csdn.net/as604049322/artic…

嵌入式RTOS面试题目

用过哪些嵌入式操作系统&#xff1f;使⽤RTOS和裸机代码开发有什么区别&#xff08;优缺点&#xff09;&#xff1f; 之前的⼀个项⽬是采⽤裸机代码开发的&#xff0c;写起来还⾏&#xff0c;通过状态机来管理业务逻辑和各种外设。 但是随着外设的增加&#xff0c;任务之间的…

【数学建模】天然肠衣搭配问题

2011高教社杯全国大学生数学建模竞赛D题 天然肠衣&#xff08;以下简称肠衣&#xff09;制作加工是我国的一个传统产业&#xff0c;出口量占世界首位。肠衣经过清洗整理后被分割成长度不等的小段&#xff08;原料&#xff09;&#xff0c;进入组装工序。传统的生产方式依靠人工…

【深度学习】实验1 波士顿房价预测

波士顿房价预测 代码 import numpy as np import matplotlib.pyplot as pltdef load_data():# 1.从文件导入数据datafile D:\Python\PythonProject\sklearn\housing.datadata np.fromfile(datafile, sep )# 每条数据包括14项&#xff0c;其中前面13项是影响因素&#xff0c…

iOS xib布局

1.多次启动发现启动图和截屏的图片不一致,设置launch storyboard 不能到顶部 https://blog.csdn.net/u011960171/article/details/104053696/ 2.multipiler是比例&#xff0c;需要控制顺序1.视图&#xff0c;2父视图&#xff0c;选择宽度比例&#xff0c;默认是1 3.Aspect R…

CSS-伪类选择器

结构伪类选择器 作用&#xff1a;根据元素的结构关系查找元素 分类&#xff1a; 选择器说明元素名:first-child查找第一个元素元素名:last-child查找最后一个元素元素名:nth-child(N)查找第N名元素 <!DOCTYPE html> <html lang"en"> <head><me…

《Beginning C++20 From Novice to Professional》第十章 Function Templates

C Template 基础篇&#xff08;一&#xff09;&#xff1a;函数模板_函数模板的定义及使用-CSDN博客 这篇博客提到模板是泛型编程的基础&#xff0c;把类型也当做参数&#xff0c;这样使得静态类型语言对类型的处理更强大&#xff0c;提高了代码的可重用性&#xff0c;目标和软…

Java 框架安全:Spring 漏洞序列.(CVE-2022-22965)

什么叫 Spring 框架. Spring 框架是一个用于构建企业级应用程序的开源框架。它提供了一种全面的编程和配置模型&#xff0c;可以简化应用程序的开发过程。Spring 框架的核心特性包括依赖注入&#xff08;Dependency Injection&#xff09;、面向切面编程&#xff08;Aspect-Or…

【漏洞复现】CData API Server 路径遍历漏洞(CVE-2024-31849)

0x01 产品简介 CData API Server是CData公司的一个强大的数据连接平台&#xff0c;旨在帮助企业轻松地访问、整合和分析各种数据源。 0x02 漏洞概述 CData API Server 23.4.8846之前版本存在安全漏洞&#xff0c;该漏洞源于存在路径遍历漏洞。攻击者可利用该漏洞获得对应用程…

深度剖析Comate智能产品:科技巧思,实用至上

文章目录 Comate智能编码助手介绍Comate应用场景Comate语言与IDE支持 Comate安装步骤Comate智能编码使用体验代码推荐智能推荐生成单测注释解释注释生成智能问答 Comate实战演练总结 Comate智能编码助手介绍 市面上现在有很多智能代码助手&#xff0c;当时互联网头部大厂百度也…

Selenium——获取元素和操纵元素的方法

1、获取元素的方法 1、通过id获取 element wd.find_element(By.ID,"id")2、通过classname获取 elements wd.find_elements_by_class_name("plant") for element in elements:print(element.text)3、通过tagname获取元素 elements wd.find_elements_…

Node.js版本管理工具nvm的安装和使用

介绍 nvm全称 Node Version Manager 顾名思义它是用来管理 node 版本的工具&#xff0c;方便切换不同版本的Node.js。 使用 nvm的使用非常简单&#xff0c;跟npm的使用方法类似 下载 首先下载nvm&#xff0c;下载地址https://github.com/coreybutler/nvm-windows/releases…

目前最便宜的VPS多少钱一个月?

目前最便宜的VPS一个月的价格在5美元左右&#xff0c;换算成人民币约为35元。 VPS服务器的配置、性能、所在地区都是影响其价格的因素&#xff0c;价格与性能呈正相关&#xff0c;也有的廉价VPS的服务商会提供性能低的配置&#xff0c;让用户可以进行简单的网站托管或开发环境…

Elasticsearch FSCrawler 一个bug及解决方案

1、FSCrawler Bug 发现过程及描述 书接上一回&#xff0c;在使用 Elasticsearch FSCrawler 实现文档知识库检索的时候。 发现基于本地磁盘文件轮询导入 Elasticsearch 都没有问题。 但是&#xff0c;借助其 REST API 接口上传文件的时候&#xff0c;发现其字段 filesize 字段没…

安装Nox夜神模拟器关闭了HyperV后Docker运行不了怎么办?

1.背景 为了模拟真机&#xff0c;尝试安装了Nox夜神模拟器&#xff0c; 安装过程要求关闭Hyper-V。当时只是在程序安装卸载中关闭了系统服务。以为到时勾选上就好了。操作路径&#xff1a;控制面板\所有控制面板项\程序和功能\启用或关闭Windows功能\Hyper-V。 后来卸载掉了夜神…

C++ list 介绍

&#x1f308;一、认识list这个模版 ist是一个模版&#xff0c;需要结合一个具体的数据类型作为模版参数&#xff0c; 即list < T > <T> <T>&#xff0c;才能成为一个类类型。list是双向循环链表&#xff0c;是序列容器&#xff0c;允许在序列中的任何位置进…

智启算力平台基本操作

智启算力平台 智启算力平台路径搭载数据集搭载镜像配置 智启算力平台 开发文档 帮助文档 - OpenI - 启智AI开源社区 路径搭载 OpenIOSSG/promote: 启智AI协作平台首页推荐组织及推荐项目申请。 - notice/Other_notes/SDKGetPath.md at master - promote - OpenI - 启智AI开…

深入剖析Tomcat(七) 日志记录器

在看原书第六章之前&#xff0c;一直觉得Tomcat记日志的架构可能是个“有点东西”的东西。在看了第六章之后呢&#xff0c;额… 就这&#xff1f;不甘心的我又翻了翻logback与新版tomcat的源码&#xff0c;额…&#xff0c;日志架构原来也没那么神秘。本篇文章先过一遍原书内容…

CSS选择器(基本+复合+伪类)

目录 CSS选择器 基本选择器 标签选择器&#xff1a;使用标签名作为选择器->选中同名标签设置样式 类选择器&#xff1a;给类选择器定义一个名字.类名&#xff0c;并给标签添加class"类名" id选择器&#xff1a;跟类选择器非常相似&#xff0c;给id选择器定义…