Luat例項教程:adc

weixin_34391445發表於2018-03-24

本示例實現的功能是:讀取adc值。

1.在編輯工具建立一個test.lua的檔案(不一定叫這個名字,使用者可以自己隨便取名)

2.設定本檔案被全體可見。也就意味著,一旦test被某一檔案載入,則test在任何檔案中均可被看見,即test中全域性變數和函式均可被任何檔案呼叫。

module(...,package.seeall)

3.定義print函式,除錯用

local function print(...)
    _G.print("test",...)
end

4.定義adc_id

local ADC_ID = 0

5.編寫ADC讀取函式

local function read()   
    --開啟adc
    adc.open(ADC_ID)
    --讀取adc
    --adcval為number型別,表示adc的原始值,無效值為0xFFFF
    --voltval為number型別,表示轉換後的電壓值,單位為毫伏,無效值為0xFFFF;adc.read介面返回的voltval放大了3倍,所以需要除以3還原成原始電壓
    local adcval,voltval = adc.read(ADC_ID)
    print("adc.read",adcval,voltval/3,voltval)
    --如果adcval有效
    if adcval and adcval~=0xFFFF then
    end
    --如果voltval有效   
    if voltval and voltval~=0xFFFF then
        --adc.read介面返回的voltval放大了3倍,所以此處除以3
        voltval = voltval/3
    end
end

6.迴圈讀取adc值

sys.timer_loop_start(read,1000)

7.在編輯工具中建立一個名為main.lua的檔案。lua指令碼的執行從main.lua開始,main.lua是入口檔案(注意:main.lua只能有一個)。在main.lua中把test載入進去就好了。sys.init()是對系統初始化,sys.run()是系統主程式。這兩句必須有。

--重要提醒:必須在這個位置定義MODULE_TYPE、PROJECT和VERSION變數
--MODULE_TYPE:模組型號,目前僅支援Air201、Air202、Air800
--PROJECT:ascii string型別,可以隨便定義,只要不使用,就行
--VERSION:ascii string型別,如果使用Luat物聯雲平臺韌體升級的功能,必須按照"X.X.X"定義,X表示1位數字;否則可隨便定義
MODULE_TYPE = "Air202"
PROJECT = "ADC"
VERSION = "1.0.0"
require"sys"
require"test"
sys.init(0,0)
sys.run()

!!!attention

一個工程只有一個main.lua

相關文章