haas506 2.0开发教程-driver-ADC
B站haas开发教程 B站教学视频链接
最新案例教程点击下方链接跳转,CSDN已停止更新
点
击
跳
转
1.硬件图
2.板载ADC
(1)案例说明
- ADC(analog to digital conversion) 模拟数字转换。意思就是将模拟信号转化成
数字信号,常见的应用就是将变化的电压转成数字信号。 - Haas506开发板有一个ADC接口,本案例使用板载ADC引脚进行电压测量。
(2)main.py
# coding=utf-8
# This is a sample Python script.
from driver import ADC
import utime as time
print("-------------------start adc test--------------------")
adc0 = ADC()
adc1=ADC()
for i in range(100):
time.sleep(2)
adc0.open("ADC0")
adc1.open("ADC1")
value0=adc0.readVoltage()
value1=adc1.readVoltage()
# value2 = adc1.getHwParam()
value3 = adc1.readRaw()
print("values of adc0 and adc1 ",value0,value1)
print(value3)
time.sleep(1)
adc0.close()
adc1.close()
print("-------------------end adc test--------------------")
(3)board.json
{
"version": "2.0.0",
"io": {
"ADC0": {
"type": "ADC",
"port": 0,
"sampling": 12000000
},
"ADC1": {
"type": "ADC",
"port": 1,
"sampling": 12000000
}
},
"debugLevel": "ERROR"
}
(4)输出日志
- 打开串口工具可以看到输出内容
- 使用导线接触开发板ADC引脚(对照硬件图),电压发生变化
-------------------start adc test--------------------
[14:08:33.129]收←◆values of adc0 and adc1 269 291
0
[14:08:36.129]收←◆values of adc0 and adc1 269 294
0
[14:08:39.129]收←◆values of adc0 and adc1 269 293
0
[14:08:42.128]收←◆values of adc0 and adc1 269 294
0
[14:08:45.129]收←◆values of adc0 and adc1 271 293
0
[14:08:48.144]收←◆values of adc0 and adc1 271 294
0
[14:08:51.128]收←◆values of adc0 and adc1 271 293
0
...
-------------------end adc test---------------------
4.Class-ADC函数库
open | close | readVoltage | readRaw |
---|---|---|---|
打开ADC | 关闭ADC | 读取采集到电压数据 | 读取采集到原始值 |
ADC
实例化
adc = ADC()
参数:无
返回:ADC对象成功,返回ADC对象;ADC对象创建失败,抛出ENOMEN异常
ADC.open(nodeName)
函数功能:根据board.json中设备节点的配置打开ADC设备
参数说明:是一个字符串,需要在board.json中预先定义设备节点的名称,例如“ADC1”。
返回值:打开ADC设备成功返回0;打开ADC设备失败返回失败错误码
ADC.close()
函数功能:关闭数模转换设备,需确保要关闭的ADC处于open状态
参数说明:无
返回值:关闭ADC设备,成功返回0;失败返回失败错误码
ADC.readVoltage()
函数功能:读取ADC电压数据,需确保此ADC处于open状态
参数说明: 无
返回值:读取成功则返回读取到的电压值;负数代表读取数据失败
ADC…readRaw()
函数功能:读取ADC原始数据,需确保此ADC处于open状态
参数说明: 无
返回值:读取成功则返回读取到的原始值;负数代表读取数据失败
5.总结
本节介绍了如何使用haas506的driver库的ADC模块,进行数据测量。注意所测得的数据的单位是mv(毫伏)。