在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

    瀏覽量

    1840
  • Air105
    +關注

    關注

    0

    文章

    48

    瀏覽量

    313
收藏 人收藏

    評論

    相關推薦

    干貨分享:Air780E開發板如何使用?

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

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

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

    RNDIS網卡應用看這篇!Air780EP低功耗4G模組AT開發示例

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

    FTP應用看這篇!Air780EP低功耗4G模組AT開發示例

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

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

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

    4G模組Air780E開發板使用手冊

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

    LuatOS開發板Core_Air780EP使用說明

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

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

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

    LuatOS開發板使用手冊——Air700EAQ

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

    Air700EAQ硬件設計手冊——應用接口2

    Air700EAQ硬件設計的詳細介紹
    的頭像 發表于 08-27 14:23 ?493次閱讀
    <b class='flag-5'>合</b><b class='flag-5'>宙</b><b class='flag-5'>Air</b>700EAQ硬件設計手冊——應用接口2

    LuatOS開發板使用手冊——Air700ECQ

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

    Air700ECQ硬件設計手冊——應用接口3

    Air700ECQ硬件設計手冊——應用接口部分介紹
    的頭像 發表于 08-22 18:34 ?526次閱讀
    <b class='flag-5'>合</b><b class='flag-5'>宙</b><b class='flag-5'>Air</b>700ECQ硬件設計手冊——應用接口3

    Air700ECQ硬件設計手冊——應用接口1

    Air700ECQ硬件設計手冊——應用接口1
    的頭像 發表于 08-21 18:46 ?437次閱讀
    <b class='flag-5'>合</b><b class='flag-5'>宙</b><b class='flag-5'>Air</b>700ECQ硬件設計手冊——應用接口1

    Air780EP模塊——AT指令MQTT接入OneNET開發指南

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

    Air780EP模塊Lua開發阿里云應用指南

    Air780EP模塊Lua開發阿里云超詳細教學!看完包學會!
    的頭像 發表于 08-08 09:00 ?1075次閱讀
    <b class='flag-5'>合</b><b class='flag-5'>宙</b><b class='flag-5'>Air</b>780EP模塊Lua<b class='flag-5'>開發</b>阿里云應用指南
    主站蜘蛛池模板: 99久久综合国产精品免费 | 久久系列 | 天天干天日 | 欧美色图888 | 福利视频午夜 | 欧美激情αv一区二区三区 欧美激情第一欧美在线 | 久久久精品免费国产四虎 | 色无欲天天天影视综合网 | 国产精品久久久久影院免费 | chinese国产videoxx实拍 | 日韩毛片免费在线观看 | 四虎永久精品免费网址大全 | jizjizjizjiz日本护士出水 | 福利天堂 | 亚洲一区高清 | 色综合色综合色综合色综合 | 国产综合色精品一区二区三区 | 九九99视频在线观看视频观看 | 天天干天天射天天插 | 久久久午夜视频 | 免费看欧美理论片在线 | 亚洲欧洲综合网 | 在线看黄色的网站 | 天天上天天干 | 久久精品久 | 亚洲日本一区二区三区在线不卡 | 亚洲一区欧美一区 | 天天看夜夜操 | fenfencao在线观看免费视频 | 六月丁香婷婷激情国产 | 日本加勒比黑人 | 波多野结衣在线一区 | 日本三级黄色网址 | 免费看又爽又黄禁片视频1000 | 乱码精品一区二区三区 | 综合伊人久久 | 凸输偷窥xxxx自由视频 | 国产伦精品一区二区三区网站 | 日本特级黄录像片 | 西西人体44renti大胆亚洲 | 97超在线|