前提・実現したいこと
Arduinoを用いて,照度センサの閾値を越えるとマイクロフォンが計測開始するシステムの製作
発生している問題
事前に,照度センサの値のみを受け取り光を当てた時の閾値を取得しています.
その後,if文を使って閾値超えたらマイクが起動し始めるというプログラムを書いたのですが,光を当てなくてもマイクが起動してしまいます.
該当のソースコード
#include <TimerOne.h> #include <SoftwareSerial.h> SoftwareSerial mySerial(10, 11); // RX, TX int val,timer1,timer2; int count=0; int light; int loopcount; int analog_sensor = A1; void timerFire() { val = analogRead(analog_sensor); mySerial.write('H'); // ヘッダの送信 mySerial.write(highByte(val)); // 上位バイトの送信 mySerial.write(lowByte(val)); // 下位バイトの送信 } void setup(){ Serial.begin(115200); mySerial.begin(115200); // ソフトウェアシリアルの初期化 loopcount=0; } void loop(){ light=analogRead(A5); if(light>548){//閾値:548 ///MICROPHONE/////// Timer1.initialize(500); //マイクロ秒単位で設定 Timer1.attachInterrupt(timerFire); delay(5000); } }
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/07/11 12:59
2020/07/11 13:40