我試圖從主版本中的NodeMU中讀取運行Lua 5.1.4的IR信息,截止日期爲8/19/2017。NodeMCU gpio觸發不正確
我可能會誤解GPIO的工作原理,而且我很難找到與我正在做什麼有關的示例。
pin = 4
pulse_prev_time = 0
irCallback = nil
function trgPulse(level, now)
gpio.trig(pin, level == gpio.HIGH and "down" or "up", trgPulse)
duration = now - pulse_prev_time
print(level, duration)
pulse_prev_time = now
end
function init(callback)
irCallback = callback
gpio.mode(pin, gpio.INT)
gpio.trig(pin, 'down', trgPulse)
end
-- example
print("Monitoring IR")
init(function (code)
print("omg i got something", code)
end)
我觸發低頻初始中斷,然後從低交替到高trgPulse
。在這樣做的時候,我希望水平從1到0以完美的模式交替出現。但是,輸出顯示其他:
1 519855430
1 1197
0 609
0 4192
0 2994
1 589
1 2994
1 1198
1 3593
0 4201
1 23357
0 608
0 5390
1 1188
1 4191
1 1198
0 3601
0 3594
1 25147
0 608
1 4781
0 2405
1 3584
0 4799
0 1798
1 1188
1 2994
所以我清楚地做錯事或根本不明白GPIO是如何工作的。如果這是預期的,爲什麼如果低/高電平沒有改變,中斷被多次調用?如果這看起來不對,任何想法如何解決它?
我對這個平臺並不熟悉,但是你確定你沒有在IR輸入上發出噪聲?我要做的第一件事是斷開連接並將輸入連接到地並看看會發生什麼。也不確定該平臺,但在某些微控制器上,如果您有空閒輸入可能連接到IR接收器併爲每個邊緣設置一個,則在中斷例程中更改中斷邊沿不能很好地工作。 – PeterJ
閱讀IR信息是什麼意思?你連接到第4針是什麼? – Piglet
我懷疑我是否聽到噪音,只是在點擊遙控器上的一個按鈕後,我纔看到數據中斷更改。它持續按下按鈕的時間,所以它看起來相當穩定。 我有一個紅外接收器連接到引腳4. – holmes