0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

【合宙Air105開發(fā)板試用體驗(yàn)】PWM+ADC+TIME聯(lián)測(cè)

開發(fā)板試用精選 ? 來源:開發(fā)板試用 ? 作者:電子發(fā)燒友論壇 ? 2022-12-01 11:00 ? 次閱讀

本文來源電子發(fā)燒友社區(qū),作者:z趙先森, 帖子地址:https://bbs.elecfans.com/jishu_2290905_1_1.html


pwm測(cè)試視頻(開發(fā)板體驗(yàn)視頻,詳見作者原文鏈接內(nèi)容)

@TOC

**本文使用環(huán)境:

電腦:windows10

主控:air105(204MHZ)**

注意:本文默認(rèn)已經(jīng)搭建好平臺(tái)。

前言

首先非常感謝電子發(fā)燒友合宙的大力支持。

這篇文章主要記錄air105的初始lutaos嘗試,之前一直在使用C語言進(jìn)行開發(fā),這次換一個(gè)開發(fā)方式。

主要使用ADC-TIM-PWM,為了提升技術(shù)難度,將三個(gè)串起來:

使用PC7/PWM5(其他的PWM都不方便接出來)產(chǎn)生1MHZ動(dòng)態(tài)變化的的PWM,然后由PC4的ADC5獲取,并轉(zhuǎn)化成實(shí)際的電壓。C7產(chǎn)生的PWM通過不斷的改變比較值可以輸出不同的電壓,所以就能夠滿足ADC的采集要求,這里需要注意的是,不能直接測(cè)量電源電壓,要不然要燒。。。。。ADC的電壓范圍為0-1.8V

LuatOS對(duì)于方案來說非常友好,對(duì)新手也比較友好,隔離了底層的驅(qū)動(dòng),不需要關(guān)心底層怎么實(shí)現(xiàn),只需要調(diào)用官方的API就行,極大的解決了不同芯片重復(fù)使用相同外設(shè)的問題,非常方便。

一、手冊(cè)

1、 AIR105的硬件手冊(cè)

查看105的手冊(cè)了解其IO分布和各方面的性能,主要看以下幾個(gè):

手冊(cè)分別為:

在線wiki

105手冊(cè)

1.1、主頻:

在這里插入圖片描述

1.2、ADC和PWM:

在這里插入圖片描述

2、LutaOS編程手冊(cè)

2.1. PWM編程

找到在線文檔的LuatOS-SOC接口文檔,并找到PWM模塊,

在這里插入圖片描述

往下翻官方給出了demo實(shí)例,手冊(cè)中有詳細(xì)的說明對(duì)于每一個(gè)參數(shù)

-- 打開PWM5, 頻率1kHz, 占空比50%
pwm.open(5, 1000, 50)
-- 打開PWM5, 頻率10kHz, 分頻為 31/256,即31的高電平256-31的低電平
pwm.open(5, 10000, 31, 0, 256)

本文需要關(guān)心占空比和PWM的頻率,ADC測(cè)量電壓時(shí),最好將PWM的頻率稍微打一下二,否者檢測(cè)的數(shù)據(jù)可能不準(zhǔn),因?yàn)殡娐窙]有濾波采樣到的數(shù)據(jù)不是那么準(zhǔn)確。兩個(gè)函數(shù)都可以使用。后續(xù)只需要改變占空比即可。

2.2. ADC編程

同樣找到ADC的數(shù)模轉(zhuǎn)換章節(jié):

在這里插入圖片描述

adc有三個(gè)函數(shù):open、read、close。功能和名字一樣非常簡單,各參數(shù)也都有詳細(xì)的講解,不再贅述。特別要注意。==AIR105的ADC只能檢測(cè)外部1.8V的電壓,不能超過==。。。。。如果需要檢測(cè)高電壓,采用電阻分壓的方式,兩個(gè)電阻串聯(lián)檢測(cè)中間的電壓即可。

在這里插入圖片描述

2.3. TIME編程

查看sys庫,定時(shí)器在sys中:

在這里插入圖片描述

如圖該函數(shù)為循環(huán)定時(shí)功能函數(shù),需要注意該函數(shù)內(nèi)==不能使用wait函數(shù)。==

二、編程

本文采用定時(shí)器對(duì)pwm進(jìn)行調(diào)節(jié),首先對(duì)定時(shí)器和ADC進(jìn)行編程介紹,然后是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毫秒后才會(huì)執(zhí)行
    
end, 500)

首先定義兩個(gè)變量,一個(gè)自加,一個(gè)方向。當(dāng)自加到最大值時(shí),方向取反,依次內(nèi)推,減到最小亦是如此。==最大值為什么設(shè)置為55?因?yàn)镮O口電壓為3V3,按照0-100等份,及55為1.8V左右== 根據(jù)前面的介紹可知,ADC打開后僅使用讀取函數(shù)即可,故在輸出的位置進(jìn)行打印讀取。

測(cè)試結(jié)果如下:

在這里插入圖片描述

可以看見測(cè)試結(jié)果和預(yù)想的一樣。

2、PWM編程

有了前面的基礎(chǔ),PWM編程就會(huì)非常簡單,只需要調(diào)用相關(guān)的函數(shù)即可,同時(shí)需要在程序循環(huán)之前的位置打開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為定時(shí)器修改的PWM值,范圍是0-55。最后的100表示比較的最大值為100。

為了對(duì)PWM進(jìn)行測(cè)試,使用萬用便測(cè)量IO口的電壓。測(cè)試結(jié)果如下:

見開頭視頻

3、 完整程序

話不多說直接上程序。

-- LuaTools需要PROJECT和VERSION這兩個(gè)信息
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設(shè)置為15s
    sys.timerLoopStart(wdt.feed, 10000)--10s喂一次狗
end
--定時(shí)器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毫秒后才會(huì)執(zhí)行, 打印 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)


-- 用戶代碼已結(jié)束---------------------------------------------
-- 結(jié)尾總是這一句
sys.run()
-- sys.run()之后后面不要加任何語句!!!!!

4、測(cè)試

電壓是先變小再變大,然后再變小變大,依次循環(huán)。

見末尾視頻

pwm_adc測(cè)試視頻(開發(fā)板體驗(yàn)視頻,詳見作者原文鏈接內(nèi)容)



聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 合宙通信
    +關(guān)注

    關(guān)注

    0

    文章

    148

    瀏覽量

    1813
  • Air105
    +關(guān)注

    關(guān)注

    0

    文章

    48

    瀏覽量

    306
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    干貨分享:Air780E開發(fā)板如何使用?

    ? 一、概述 CORE-AIR780E 開發(fā)板通信推出的基于 Air780E 模組所開發(fā)
    的頭像 發(fā)表于 10-25 17:46 ?362次閱讀
    干貨分享:<b class='flag-5'>Air</b>780E<b class='flag-5'>開發(fā)板</b>如何使用?

    如何使用Air780E開發(fā)板?看這篇就夠了!

    ? 一、綜述 CORE-AIR780E 開發(fā)板通信推出的基于 Air780E 模組所開發(fā)
    的頭像 發(fā)表于 10-23 17:07 ?557次閱讀
    如何使用<b class='flag-5'>Air</b>780E<b class='flag-5'>開發(fā)板</b>?看這篇就夠了!

    RNDIS網(wǎng)卡應(yīng)用看這篇!Air780EP低功耗4G模組AT開發(fā)示例

    ** ? 1.1 硬件準(zhǔn)備 EVB_Air780EP開發(fā)板一套,包括天線、SIM卡; USB線 WIN10以上PC電腦 1.2 軟件準(zhǔn)備 串口工具 如果沒有準(zhǔn)備,推薦使用LLCO
    的頭像 發(fā)表于 09-30 06:59 ?670次閱讀
    RNDIS網(wǎng)卡應(yīng)用看這篇!<b class='flag-5'>合</b><b class='flag-5'>宙</b><b class='flag-5'>Air</b>780EP低功耗4G模組AT<b class='flag-5'>開發(fā)</b>示例

    FTP應(yīng)用看這篇!Air780EP低功耗4G模組AT開發(fā)示例

    780EX/Air724UG… **一、相關(guān)準(zhǔn)備工作 ** ? 1.1 硬件準(zhǔn)備 EVB_Air780EP開發(fā)板一套,包括天線、SIM卡
    的頭像 發(fā)表于 09-29 09:36 ?1895次閱讀
    FTP應(yīng)用看這篇!<b class='flag-5'>合</b><b class='flag-5'>宙</b><b class='flag-5'>Air</b>780EP低功耗4G模組AT<b class='flag-5'>開發(fā)</b>示例

    低功耗4G模組AIR780EX ——開發(fā)板使用說明

    EVB-AIR780EX 開發(fā)板通信推出的基于 Air780EX 模組所開發(fā)的,包含電源,
    的頭像 發(fā)表于 09-11 11:55 ?803次閱讀
    <b class='flag-5'>合</b><b class='flag-5'>宙</b>低功耗4G模組<b class='flag-5'>AIR</b>780EX ——<b class='flag-5'>開發(fā)板</b>使用說明

    4G模組Air780E開發(fā)板使用手冊(cè)

    開發(fā)板Air780E使用說明
    的頭像 發(fā)表于 09-09 18:22 ?828次閱讀
    <b class='flag-5'>合</b><b class='flag-5'>宙</b>4G模組<b class='flag-5'>Air</b>780E<b class='flag-5'>開發(fā)板</b>使用手冊(cè)

    LuatOS開發(fā)板Core_Air780EP使用說明

    Core-Air780EP 開發(fā)板通信推出的基于 Air780EP 模組所開發(fā)的,包含電源
    的頭像 發(fā)表于 09-03 17:38 ?659次閱讀
    <b class='flag-5'>合</b><b class='flag-5'>宙</b>LuatOS<b class='flag-5'>開發(fā)板</b>Core_<b class='flag-5'>Air</b>780EP使用說明

    低功耗4G模組Air700EAQ——開發(fā)板使用說明

    低功耗4G模組Air700EAQ——開發(fā)板使用說明
    的頭像 發(fā)表于 08-30 17:14 ?1194次閱讀
    <b class='flag-5'>合</b><b class='flag-5'>宙</b>低功耗4G模組<b class='flag-5'>Air</b>700EAQ——<b class='flag-5'>開發(fā)板</b>使用說明

    LuatOS開發(fā)板使用手冊(cè)——Air700EAQ

    本文詳細(xì)講解了Air700EAQ開發(fā)板的使用說明。
    的頭像 發(fā)表于 08-28 14:37 ?573次閱讀
    <b class='flag-5'>合</b><b class='flag-5'>宙</b>LuatOS<b class='flag-5'>開發(fā)板</b>使用手冊(cè)——<b class='flag-5'>Air</b>700EAQ

    Air700EAQ硬件設(shè)計(jì)手冊(cè)——應(yīng)用接口2

    Air700EAQ硬件設(shè)計(jì)的詳細(xì)介紹
    的頭像 發(fā)表于 08-27 14:23 ?480次閱讀
    <b class='flag-5'>合</b><b class='flag-5'>宙</b><b class='flag-5'>Air</b>700EAQ硬件設(shè)計(jì)手冊(cè)——應(yīng)用接口2

    LuatOS開發(fā)板使用手冊(cè)——Air700ECQ

    LuatOS開發(fā)板使用說明——Air700ECQ
    的頭像 發(fā)表于 08-23 16:28 ?631次閱讀
    <b class='flag-5'>合</b><b class='flag-5'>宙</b>LuatOS<b class='flag-5'>開發(fā)板</b>使用手冊(cè)——<b class='flag-5'>Air</b>700ECQ

    Air700ECQ硬件設(shè)計(jì)手冊(cè)——應(yīng)用接口3

    Air700ECQ硬件設(shè)計(jì)手冊(cè)——應(yīng)用接口部分介紹
    的頭像 發(fā)表于 08-22 18:34 ?509次閱讀
    <b class='flag-5'>合</b><b class='flag-5'>宙</b><b class='flag-5'>Air</b>700ECQ硬件設(shè)計(jì)手冊(cè)——應(yīng)用接口3

    Air700ECQ硬件設(shè)計(jì)手冊(cè)——應(yīng)用接口1

    Air700ECQ硬件設(shè)計(jì)手冊(cè)——應(yīng)用接口1
    的頭像 發(fā)表于 08-21 18:46 ?425次閱讀
    <b class='flag-5'>合</b><b class='flag-5'>宙</b><b class='flag-5'>Air</b>700ECQ硬件設(shè)計(jì)手冊(cè)——應(yīng)用接口1

    Air780EP模塊——AT指令MQTT接入OneNET開發(fā)指南

    過程,Air780EP和MQTT是最佳拍檔,讓設(shè)備互聯(lián)變得輕松又靠譜。想不想試試這簡單又神奇的操作?那就來吧!本文詳細(xì)講解了基于Air80EP
    的頭像 發(fā)表于 08-19 16:40 ?2417次閱讀
    <b class='flag-5'>合</b><b class='flag-5'>宙</b><b class='flag-5'>Air</b>780EP模塊——AT指令MQTT接入OneNET<b class='flag-5'>開發(fā)</b>指南

    Air780EP模塊Lua開發(fā)阿里云應(yīng)用指南

    Air780EP模塊Lua開發(fā)阿里云超詳細(xì)教學(xué)!看完包學(xué)會(huì)!
    的頭像 發(fā)表于 08-08 09:00 ?1056次閱讀
    <b class='flag-5'>合</b><b class='flag-5'>宙</b><b class='flag-5'>Air</b>780EP模塊Lua<b class='flag-5'>開發(fā)</b>阿里云應(yīng)用指南