質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Arduino

Arduinoは、AVRマイコン、単純なI/O(入出力)ポートを備えた基板、C言語を元としたArduinoのプログラム言語と、それを実装した統合開発環境から構成されたシステムです。

Q&A

解決済

2回答

880閲覧

照度センサの閾値を越えるとマイクの計測が開始されるプログラム

otonom

総合スコア0

Arduino

Arduinoは、AVRマイコン、単純なI/O(入出力)ポートを備えた基板、C言語を元としたArduinoのプログラム言語と、それを実装した統合開発環境から構成されたシステムです。

0グッド

0クリップ

投稿2020/07/11 06:59

前提・実現したいこと

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); } }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

光を当てなくてもADの値が548を超えるような回路構成になっているとか、そういう部品であるとか、配線間違いでそうなっているとか、そういうことではないかと想像します。情報が足りないので確定は出来ませんが。

それと、

閾値超えたらマイクが起動し始める

ではなく、「閾値を超えているならば5秒に一回マイクを起動(タイマーを初期化)する」というプログラムになっています。まぁ、5秒は長いので多少の乱れは問題ないのかも知れませんが。

投稿2020/07/11 07:46

thkana

総合スコア7610

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

otonom

2020/07/11 12:59

返信ありがとうございます。 この問題、かれこれ2週間ほど悩んでいたのですが先ほど解決できました。 一度、timeroneが起動してから再接続する前にArduinoをリセットするコードを書き足す必要があったようです。 そうしなければ、一度閾値を超えてしまえばあとは電源を切らない限りデータを送り続けてしまうようです。 たしかに情報不足でした。書き出すときりがなく簡潔にまとめてしまいました。回答にお時間をいただき、ありがとうございます。
thkana

2020/07/11 13:40

> 光を当てなくてもマイクが起動してしまいます. が問題の認識違いで、一度でも光が当たったあと停止していなかった、ということですか?
guest

0

自己解決

一度、timeroneが起動してから再接続する前にArduinoをリセットするコードを書き足す必要があったようです。
そうしなければ、一度閾値を超えてしまえばあとは電源を切らない限りデータを送り続けてしまうようです。

投稿2020/07/11 13:00

otonom

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問