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

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

3天内不再提示

【合宙Air105开发板试用体验】PWM+ADC+TIME联测

开发板试用精选 来源:开发板试用 作者:电子发烧友论坛 2022-12-01 11:00 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

本文来源电子发烧友社区,作者:z赵先森, 帖子地址:https://bbs.elecfans.com/jishu_2290905_1_1.html


pwm测试视频(开发板体验视频,详见作者原文链接内容)

@TOC

**本文使用环境:

电脑:windows10

主控:air105(204MHZ)**

注意:本文默认已经搭建好平台。

前言

首先非常感谢电子发烧友合宙的大力支持。

这篇文章主要记录air105的初始lutaos尝试,之前一直在使用C语言进行开发,这次换一个开发方式。

主要使用ADC-TIM-PWM,为了提升技术难度,将三个串起来:

使用PC7/PWM5(其他的PWM都不方便接出来)产生1MHZ动态变化的的PWM,然后由PC4的ADC5获取,并转化成实际的电压。C7产生的PWM通过不断的改变比较值可以输出不同的电压,所以就能够满足ADC的采集要求,这里需要注意的是,不能直接测量电源电压,要不然要烧。。。。。ADC的电压范围为0-1.8V

LuatOS对于方案来说非常友好,对新手也比较友好,隔离了底层的驱动,不需要关心底层怎么实现,只需要调用官方的API就行,极大的解决了不同芯片重复使用相同外设的问题,非常方便。

一、手册

1、 AIR105的硬件手册

查看105的手册了解其IO分布和各方面的性能,主要看以下几个:

手册分别为:

在线wiki

105手册

1.1、主频:

在这里插入图片描述

1.2、ADC和PWM:

在这里插入图片描述

2、LutaOS编程手册

2.1. PWM编程

找到在线文档的LuatOS-SOC接口文档,并找到PWM模块,

在这里插入图片描述

往下翻官方给出了demo实例,手册中有详细的说明对于每一个参数:

-- 打开PWM5, 频率1kHz, 占空比50%
pwm.open(5, 1000, 50)
-- 打开PWM5, 频率10kHz, 分频为 31/256,即31的高电平256-31的低电平
pwm.open(5, 10000, 31, 0, 256)

本文需要关心占空比和PWM的频率,ADC测量电压时,最好将PWM的频率稍微打一下二,否者检测的数据可能不准,因为电路没有滤波采样到的数据不是那么准确。两个函数都可以使用。后续只需要改变占空比即可。

2.2. ADC编程

同样找到ADC的数模转换章节:

在这里插入图片描述

adc有三个函数:open、read、close。功能和名字一样非常简单,各参数也都有详细的讲解,不再赘述。特别要注意。==AIR105的ADC只能检测外部1.8V的电压,不能超过==。。。。。如果需要检测高电压,采用电阻分压的方式,两个电阻串联检测中间的电压即可。

在这里插入图片描述

2.3. TIME编程

查看sys库,定时器在sys中:

在这里插入图片描述

如图该函数为循环定时功能函数,需要注意该函数内==不能使用wait函数。==

二、编程

本文采用定时器对pwm进行调节,首先对定时器和ADC进行编程介绍,然后是PWM。

1、 TIME和ADC编程

local time_num = 0;
local dir_num = 0;
sys.timerLoopStart(function()

    if time_num >= 55 then
        dir_num = 0
    elseif time_num <= 0 then
        dir_num = 1
    end
    
    if dir_num == 1 then
        time_num = time_num + 1;
    else 
        time_num = time_num - 1;
    end
    
   log.info("task", time_num,"adc_read:",adc.read(5)) -- 500毫秒后才会执行
    
end, 500)

首先定义两个变量,一个自加,一个方向。当自加到最大值时,方向取反,依次内推,减到最小亦是如此。==最大值为什么设置为55?因为IO口电压为3V3,按照0-100等份,及55为1.8V左右== 根据前面的介绍可知,ADC打开后仅使用读取函数即可,故在输出的位置进行打印读取。

测试结果如下:

在这里插入图片描述

可以看见测试结果和预想的一样。

2、PWM编程

有了前面的基础,PWM编程就会非常简单,只需要调用相关的函数即可,同时需要在程序循环之前的位置打开adc。直接上程序:

sys.taskInit(function()
    adc.open(5) -- 5通道是PC4, 0~1.8v,不要超过范围使用!!!,其它通道也是同样的范围
    while 1 do
        pwm.open(5, 1000000, time_num, 0, 100)  
        sys.wait(200)
    end
    adc.close(1)
end)

这里只看pwm.open(5, 1000000, time_num, 0, 100)即可。time_num为定时器修改的PWM值,范围是0-55。最后的100表示比较的最大值为100。

为了对PWM进行测试,使用万用便测量IO口的电压。测试结果如下:

见开头视频

3、 完整程序

话不多说直接上程序。

-- LuaTools需要PROJECT和VERSION这两个信息
PROJECT = "mytest"
VERSION = "1.0.0"

log.info("mymain", PROJECT, VERSION)

-- 一定要添加sys.lua !!!!
local sys = require "sys"
local time_num = 0;
local dir_num = 0;

--添加硬狗防止程序卡死
if wdt then
    wdt.init(15000)--初始化watchdog设置为15s
    sys.timerLoopStart(wdt.feed, 10000)--10s喂一次狗
end
--定时器1s

sys.timerLoopStart(function()

    if time_num >= 55 then
        dir_num = 0
    elseif time_num <= 0 then
        dir_num = 1
    end
    
    if dir_num == 1 then
        time_num = time_num + 1;
    else 
        time_num = time_num - 1;
    end
    
    log.info("task", time_num,"adc_read:",adc.read(5)) -- 1000毫秒后才会执行, 打印 task A B C
    
end, 500)


sys.taskInit(function()
    adc.open(5) -- 5通道是PC4, 0~1.8v,不要超过范围使用!!!,其它通道也是同样的范围
    while 1 do
        pwm.open(5, 1000000, time_num, 0, 100)  
        sys.wait(200)
        --log.info("adc_read:",adc.read(5))
    end
    adc.close(1)
end)


-- 用户代码已结束---------------------------------------------
-- 结尾总是这一句
sys.run()
-- sys.run()之后后面不要加任何语句!!!!!

4、测试

电压是先变小再变大,然后再变小变大,依次循环。

见末尾视频

pwm_adc测试视频(开发板体验视频,详见作者原文链接内容)



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

    关注

    0

    文章

    148

    浏览量

    2381
  • Air105
    +关注

    关注

    0

    文章

    48

    浏览量

    424
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    有奖丨米尔 瑞芯微RK3506开发板免费试用

    米尔与瑞芯微合作发布的新品基于瑞芯微RK3506应用处理器的MYD-YR3506开发板免费试用名额来啦~~米尔提供了3块价值299元的MYD-YR3506开发板发起试用活动您不仅可以免
    的头像 发表于 06-19 08:04 854次阅读
    有奖丨米尔 瑞芯微RK3506<b class='flag-5'>开发板</b>免费<b class='flag-5'>试用</b>

    有奖丨米尔 瑞芯微RK3562开发板免费试用新增名额!

    米尔与瑞芯微合作发布的新品基于瑞芯微RK3562应用处理器的MYD-YR3562开发板免费试用名额增加
    的头像 发表于 06-13 08:04 855次阅读
    有奖丨米尔 瑞芯微RK3562<b class='flag-5'>开发板</b>免费<b class='flag-5'>试用</b>新增名额!

    基于RK3576处理器,米尔RK3576开发板免费试用

    年7月19日   评测数量: 3块   更多热点文章阅读 基于平头哥TH1520芯片,润开鸿HH-SCDAYU800A开发板免费试用 RISC-V开发板深度评测!顶级开发板免费
    的头像 发表于 06-09 15:00 933次阅读
    基于RK3576处理器,米尔RK3576<b class='flag-5'>开发板</b>免费<b class='flag-5'>试用</b>

    多功能+高扩展能力加持,Air8000开发板最新资料

    开发者福利来袭!Air8000开发板兼具全面功能与强大扩展性的开发神器,将让物联网开发、原型设计等任务更高效,加速项目从概念到产品的转化。
    的头像 发表于 06-09 14:18 514次阅读
    多功能+高扩展能力加持,<b class='flag-5'>Air</b>8000<b class='flag-5'>开发板</b>最新资料

    搭载OpenHarmony操作系统,视美泰SC-3568HA开发板免费试用

    : 10块   更多热点文章阅读 基于平头哥TH1520芯片,润开鸿HH-SCDAYU800A开发板免费试用 RISC-V开发板深度评测!顶级开发板免费
    的头像 发表于 06-05 16:45 1018次阅读
    搭载OpenHarmony操作系统,视美泰SC-3568HA<b class='flag-5'>开发板</b>免费<b class='flag-5'>试用</b>

    基于RK处理器,创龙TL3562-MiniEVM开发板试用体验

    数量: 10块   更多热点文章阅读 基于平头哥TH1520芯片,润开鸿HH-SCDAYU800A开发板免费试用 RISC-V开发板深度评测!顶级开发板免费
    的头像 发表于 06-05 16:31 917次阅读
    基于RK处理器,创龙TL3562-MiniEVM<b class='flag-5'>开发板</b><b class='flag-5'>试用</b>体验

    性能强悍!合众HZ-RK3568开发板试用体验

    月19日   评测数量: 10块   更多热点文章阅读 基于平头哥TH1520芯片,润开鸿HH-SCDAYU800A开发板免费试用 RISC-V开发板深度评测!顶级开发板免费
    的头像 发表于 06-05 16:30 1107次阅读
    性能强悍!合众HZ-RK3568<b class='flag-5'>开发板</b><b class='flag-5'>试用</b>体验

    【免费试用开发板评测大赛开启!OH 、RISC-V、Rockchip顶级开发板等你试用~

    技术人的狂欢,开发者的盛宴!2025年最值得期待的硬核赛事——电子发烧友开发板评测大赛正式启动!无论你是开源生态的探索者、芯片架构的极客,还是物联网领域的创新达人,本次大赛三大赛
    的头像 发表于 06-05 08:05 751次阅读
    【免费<b class='flag-5'>试用</b>】<b class='flag-5'>开发板</b>评测大赛开启!OH 、RISC-V、Rockchip顶级<b class='flag-5'>开发板</b>等你<b class='flag-5'>试用</b>~

    有奖丨米尔 NXP i.MX91开发板免费试用来啦

    米尔与NXP合作发布的新品基于NXPi.MX91应用处理器的MYD-LMX91开发板免费试用名额来啦~~米尔提供了3套价值588元的MYD-LMX91开发板发起试用活动您不仅可以免费体
    的头像 发表于 06-05 08:02 1117次阅读
    有奖丨米尔 NXP i.MX91<b class='flag-5'>开发板</b>免费<b class='flag-5'>试用</b>来啦

    技术篇——Air8000开发板,一站式满足多功能高扩展开发需求!

    对于追求高效开发的你来说,Air8000开发板最新资料库的开放绝对不容错过。无论是智能控制、数据采集还是多场景应用开发,其多功能内核与高扩展接口,为各类项目提供“即插即用”式的解决方案
    的头像 发表于 06-04 15:59 448次阅读
    技术篇——<b class='flag-5'>Air</b>8000<b class='flag-5'>开发板</b>,一站式满足多功能高扩展<b class='flag-5'>开发</b>需求!

    【评测试用】合众HZ-T536开发板免费试用体验

    【评测试用】合众HZ-T536开发板免费试用体验
    的头像 发表于 05-27 08:05 698次阅读
    【评测<b class='flag-5'>试用</b>】合众HZ-T536<b class='flag-5'>开发板</b>免费<b class='flag-5'>试用</b>体验

    免费丨米尔 STM32MP257开发板有奖试用

    米尔与ST合作发布的新品基于STM32MP257应用处理器的MYD-LD25X开发板免费试用活动来啦~~米尔提供了2块价值488元的MYD-LD25X开发板发起试用活动您不仅可以免费
    的头像 发表于 03-20 08:05 886次阅读
    免费丨米尔 STM32MP257<b class='flag-5'>开发板</b>有奖<b class='flag-5'>试用</b>

    有奖丨米尔 瑞芯微YR3562开发板免费试用

    米尔与瑞芯微合作发布的新品基于瑞芯微RK3562应用处理器的MYD-YR3562开发板免费试用活动来啦~~米尔提供了3块价值599元的MYD-YR3562开发板发起试用活动您不仅可以免
    的头像 发表于 03-20 08:05 806次阅读
    有奖丨米尔 瑞芯微YR3562<b class='flag-5'>开发板</b>免费<b class='flag-5'>试用</b>

    有奖试用!!RA-Eco-RA4M2-100PIN-V1.0开发板试用活动报名

    RA-Eco-RA4M2-100PIN-V1.0开发板试用活动
    的头像 发表于 03-13 12:10 827次阅读
    有奖<b class='flag-5'>试用</b>!!RA-Eco-RA4M2-100PIN-V1.0<b class='flag-5'>开发板</b><b class='flag-5'>试用</b>活动报名

    有奖丨米尔 全志T536开发板免费试用

    米尔与全志合作发布的新品基于全志T536应用处理器的MYD-LT536-GK开发板免费试用活动来啦~~米尔提供了3块价值750元的MYD-LT536-GK开发板发起试用活动您不仅可以免
    的头像 发表于 12-26 08:05 1314次阅读
    有奖丨米尔 全志T536<b class='flag-5'>开发板</b>免费<b class='flag-5'>试用</b>