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

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

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

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

Q&A

2回答

4580閲覧

パルスの立ち上がり時間と立ち下がり時間を計測してLCDで表示させるプログラムがわかりません。よろしくお願いします。

oota123

総合スコア6

Arduino

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

0グッド

0クリップ

投稿2018/05/17 05:51

前提・実現したいこと

ここに質問の内容を詳しく書いてください。
(例)PHP(CakePHP)で●●なシステムを作っています。
■■な機能を実装中に以下のエラーメッセージが発生しました。

発生している問題・エラーメッセージ

エラーメッセージ

該当のソースコード

ソースコード

試したこと

ここに問題に対して試したことを記載してください。
本を見たり検索したがパルスの立ち上がり時間と立ち下がり時間を計測してLCDで表示させるプログラムが見つからない

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

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

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

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

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

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

guest

回答2

0

パルスの立ち上がり時間、立下り時間はJIS C 0161の定義に従います。
立ち上がり/立ち下がり時間に詳細が図入りで説明されていますから、基礎知識として読んでください。

パルスの立ち上がり時間、立下り時間を計測する手順
1)立ち上がり時間と立ち下がり時間を計測するためには、パルスの波形を観測する必要があります。
Arduinoのアナログ入力ピンにパルス信号を入れておき、一定周期でanalogReadで値を読み取る操作を繰り返してデータを蓄積してください。パルス信号の100周期(パルス100個)分ぐらいのデータがあれば良いと思います。

2)波形データから、最低の値(maxVal)と最高の値(minVal)を見つけます(それらが0%の値と100%の値になります)。
ArduinoのADコンバータは10ビットなのでanalogReadで0~1023の範囲の値が得られます。
[(注)maxVal - minVal が少ない(500以下)の場合には、測定の精度が低くなるので、パルス信号を増幅してからアナログ入力ピンに入れる等の対策を検討すべきだと思います]

3)そして立ち上がりの開始点(lowVal(10%値))と終了点(highVal(90%値))を以下の式で求めます。
lowVal = minVal + (maxVal - minVal)*0.1
highVal = minVal + (maxVal - minVal)*0.9
highValは立下りの開始点でもあり、lowValは立下りの終了点でもあります。

4)波形データを測定開始から時刻順に調べていって、lowValを超えてhighValに達するまでの時間(立ち上がり時間)、highValから下ってlowValに達するまでの時間(立下り時間)をそれぞれの配列に記録してゆきます。

5)立ち上がり時間の配列から平均値を求めたものがパルスの立ち上がり時間、立ち下がり時間の配列から平均値を求めたものがパルスの立下り時間です。

==
測定した値をLCDに表示するプログラムの例は、ネット検索でたくさん見つかるでしょうから略します。

投稿2018/05/18 01:40

coco_bauer

総合スコア6915

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

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

0

そのパルスというのがどれだけの幅かわからないけど、ループでポートを読んでいき、1から0、0から1に変化する時点のタイマ値を読んで、その差分を算出、それをLCDに表示する、というコードを組むことで実現できますねー

投稿2018/05/17 11:51

y_waiwai

総合スコア87774

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問