obnizで繰り返し実行を押した後に、Errorで止まってしまうので、 繰り返し実行をし続けたい
Q&A
Closed
解決したいこと
Javascryptでobnizで一定の距離が開いたらスピーカーが鳴るIoTを作成しています。
実装中に途中までは正常に動くのですが、
どうしても途中で止まってしまいます。
解決方法を教えていただけると嬉しいです。
発生している問題・エラー
PS C:\Users\Desktop\Obniz-iot> node distance.js
distance 32.00072604508428 mm
distance 28.08574360339843 mm
distance 144.343700458678 mm
distance 237.45219591964127 mm
distance 181.45092534074377 mm
distance 63.83123546226917 mm
distance 66.04405162496114 mm
C:\Users\Echas\Desktop\Obniz-iot\node_modules\obniz\dist\src\obniz\ObnizConnection.js:378
throw err;
^
Error: No More pwm Available.
at Obniz._getFreePeripheralUnit (C:\Users\Echas\Desktop\Obniz-iot\node_modules\obniz\dist\src\obniz\ObnizComponents.js:322:15)
at Obniz.getFreePwm (C:\Users\Desktop\Obniz-iot\node_modules\obniz\dist\src\obniz\ObnizComponents.js:84:21)
at Speaker.wired (C:\Users\Desktop\Obniz-iot\node_modules\obniz\dist\src\parts\Sound\Speaker\index.js:20:26)
at Obniz.wired (C:\Users\Desktop\Obniz-iot\node_modules\obniz\dist\src\obniz\ObnizParts.js:103:15)
at C:\Users\Desktop\Obniz-iot\distance.js:10:25
at callback (C:\Users\Desktop\Obniz-iot\node_modules\obniz\dist\src\parts\DistanceSensor\HC-SR04\index.js:64:21)
at Obniz._runUserCreatedFunction (C:\Users\Desktop\Obniz-iot\node_modules\obniz\dist\src\obniz\ObnizConnection.js:374:23)
at C:\Users\Desktop\Obniz-iot\node_modules\obniz\dist\src\obniz\libs\measurements\measure.js:85:28
at ObnizMeasure.notifyFromObniz (C:\Users\Desktop\Obniz-iot\node_modules\obniz\dist\src\obniz\libs\ComponentAbstact.js:46:21)
at Obniz._notifyToModule (C:\Users\Desktop\Obniz-iot\node_modules\obniz\dist\src\obniz\ObnizComponents.js:271:37)
7回ほど処理を実行した後に処理が止まってしまいます。
該当するソースコード
const Obniz = require('obniz');
const obniz = new Obniz('xxxx-xxxx'); // Obniz_IDに自分のIDを入れます
obniz.onconnect = async function () {
var hcsr04 = obniz.wired("HC-SR04", {gnd:8, echo:9, trigger:10, vcc:11});
setInterval(async function(){
hcsr04.measure(function( distance ){
console.log("distance " + distance + " mm")
const speaker = obniz.wired('Speaker', { signal: 0, gnd: 1 });
if (distance > 200) {
speaker.play(1000);
} else {
speaker.stop();
}
})
}, 1000);
}
自分で試したこと
こちらを参考にobniz.onloop
も試したのですが、
7回で同じエラーが出て止まってしまいました。
PWMに何かヒントがある気がするのですが、
これがどうエラーに繋がっているかまでは分かりませんでした。
どなたかご教示いただけますと幸いです。
よろしくお願いします。
0