2015年8月19日現在、マスタービルドからLua 5.1.4を実行しているNodeMCUからIR情報を読み取ろうとしています。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にIRレシーバが接続されています。 – holmes