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

server/2025/1/16 0:48:45/

目录

概述

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://www.ppmy.cn/server/37480.html

相关文章

我用 GitHub 9.8k 的 Go 语言 2D 游戏引擎写了个游戏

前言 hi&#xff0c;大家好&#xff0c;这里是白泽。今天给大家分享一个 GitHub &#x1f31f;9.8k 的 Go 语言 2D 游戏引擎。 https://github.com/hajimehoshi/ebiten 引擎的贡献者依旧在积极维护&#xff0c;是一个兼具学习 & 娱乐的项目&#xff01; 为此我也用这个…

LY/T 3131-2019 木质拼花地板检测

木质拼花地板是指通过单元设计&#xff0c;组拼成具有特定图案的木质地板&#xff0c;按照材料组分分为实木拼花地板&#xff0c;实木复合拼花地板和浸渍纸层压拼花地板。 LY/T 3131-2019 实木拼花地板测试项目 测试项目 测试标准 含水率 GB/T 15036.2 漆膜附着力 GB/T 1…

Linux——mysql运维篇

回顾基本语句&#xff1a; 数据定义语言 ( DDL ) 。这类语言用于定义和修改数据库的结构&#xff0c;包括创建、删除和修改数据库、表、视图和索引等对象。主要的语句关键字包括 CREATE 、 DROP 、 ALTER 、 RENAME 、 TRUNCATE 等。 create database 数据库 &…

08-MVC处理流程

当浏览器发送一个http://127.0.0.1:8080/hello到达服务器后, 其处理流程如下: 服务器提供了一个DispatcherServlet, 继承自HttpServlet提供了标准的servlet技术. 路径: 默认映射路径为: / , 即会匹配所有请求路径, 可作为请求的统一入口. 也被称为前控制器. jsp不会匹配到Disp…

【快捷部署】022_ZooKeeper(3.5.8)

&#x1f4e3;【快捷部署系列】022期信息 编号选型版本操作系统部署形式部署模式复检时间022ZooKeeper3.5.8Ubuntu 20.04tar包单机2024-05-07 一、快捷部署 #!/bin/bash ################################################################################# # 作者&#xff…

Study--Oracle-02-单实例部署Oracle19C

一、CentOS 7 环境准备 1、软件准备 操作系统&#xff1a;CentOS 7 数据库版本: Oracle19C 2、操作系统环境配置 关闭selinux &#xff0c;编辑 /etc/selinux/config文件&#xff0c;设置SELINUX enforcing 为SELINUXdisabled [rootoracle ~]# grep SELINUX /etc/seli…

动态规划——路径问题:LCR 166.珠宝的最高价值

文章目录 题目描述算法原理1.状态表示&#xff08;题目经验&#xff09;2.状态转移方程3.初始化4.填表顺序5.返回值 代码实现CJava 题目描述 题目链接&#xff1a;LCR 166.珠宝的最高价值 算法原理 1.状态表示&#xff08;题目经验&#xff09; 对于这种路径类的问题&…

STC15W1K16S和VC6.0串口通讯收发测试实例

/********************************************* STC USB 串口板 2014 4 7 20:12 发送接收数据 使用STC串口调试助手通讯正常&#xff0c;L161 **********************************************/ #include "reg51.h" #include "intrins.h" #define…