扇風機には三枚の羽根が付いています。羽根にはそれぞれ金属板が貼ってあり、1の羽根に識別のために異形形態にしています。
波形を見るセンサーは扇風機の真上0度の位置に取り付けています。回転スピードは一定していません。(リズムボタンがあり、早くなったり遅くなったりです)。LEDの点灯順番は1,3,2,1,3,2・・・・です。
例えは1の波形がオフになった瞬間2の羽根が280度の位置に来るのでこの場合点灯しません、2の羽根がオフになった瞬間3の羽根が280度の位置に来るのでLEDをON,300度の位置でOFFします。これをプログラムで書けないかと思っています。よろしくお願いします。
タグにはArduinoとありますが、Arduinoにも各種あります。何を想定しているかを明示してください。
> 2,3の波形も表せる
どうなったら「波形を表せた」ことになるのでしょう?
図だけでなく、それぞれのパルスのバルス幅や間隙の最大値/最小値なども、暫定でもいいのでわかっていることは質問に記してください。
横軸に数字が入っていないのですが、0.001msの間に起こることなのか100msの間に起こることなのかによって、手抜き?で解決できるのかちゃんと考えなきゃいけないのかが変わってきます。
場合によってはもっと話が簡単になるかもしれないので
そもそも何をしようとしているのか教えて下さい
私が作っているのは、扇風機に3枚の羽根が付いています。羽根は120度間隔で取り付けられています。羽根にはパルスが取れるように金属板を取り付けています。1の羽根には識別のために異形の金属板にしています。扇風機の裏にセンサーを取り付けてこのパルスを読めるようにしているので、画像のような波形になっています。扇風機の回転スピードは可変で最大6500回転/分です。6500回転で回っているとすると1回転するのに9msで回ることになると思います。
私が考えているのは、例えば1の羽根が90度の位置に来た時にLEDを点灯させるという感じのプログラムを作りたいのです。先生このようなプログラムつくれますか?
今持っているのはArduino レオナルドです。
あぁ、読み取りの方だったのね。
90°とは何を原点として90度なの?そして消灯のタイミングは?
そして実際のパルス幅は?(大まかでいい)
金属版を点灯のタイミングの所に1つだけ取り付ければ簡単なんだけど。
そうです読み取りの方です。原点は時計の12時の位置で、この位置にセンサーを取り付けています。角度は特に限定していません。任意に変更できるようにしたいのです。パルス幅はmillis関数でだめですかね?消灯のタイミングはパルス幅の真ん中に来た時です。1の羽根が分かったら、例えば3の羽根が270度の位置に来た時にLEDを点灯とかできると思うので。よろしくお願いいたします。
基本的には、4つのパルス幅を測ればそれがどの位置なのかは判断付きます。
それと周期を測定したら済む事だと思います。
millisでは正確性に欠けるでしょうね。使うならmicrosでしょう。
ここでメモリをケチってもしょうがない気がします。
バーサライタの予備テストでもしているのでしょうか?
> 角度は特に限定していません。
何の角度ですか? 主語を略されるとわかりません。直前の文は「原点」あるいは「センサー」が主題でしたが、原点は原点で動きませんし、センサーは既に原点に取り付けられています。
> 任意に変更できるようにしたいのです。
同様に、変更する要素は何ですか?
> 消灯のタイミングはパルス幅の真ん中に来た時です。
どのパルスですか?
一周に一回、Z相だけセンスして、その周期から角度を求めて制御すればよいものを3枚の羽根それぞれをセンサーに反応させるようにしたが故に話が面倒になっている気がします。
それぞれの羽根につけるにしても、切り欠きができるくらいなら、パルスの立ち下がりが羽根の真ん中の位置になるようにすることもできるはずですね? そうすれば、「羽根の真ん中」を調べる必要もなくパルスの立ち下がりで制御すればいいだけ。
あちこちで「わざわざ話を面倒にしている」気がして仕方ありません。機構上出来ない、というのなら仕方ありませんが、どうなんでしょう。
3つ検出部がある理由はまぁわかりましたが。
> LEDの点灯順番は1,3,2,1,3,2・・・・です。
別に1の位置を識別しなくても、センサ1回おきにLEDを点灯すればいいだけなのではないですか? 1を知らなきゃいけない理由はなんでしょう?
> 1の波形がオフになった瞬間2の羽根が280度の位置に来るのでこの場合点灯しません、
> 2の羽根がオフになった瞬間3の羽根が280度の位置に来るのでLEDをON
「ので」というのはLEDを点灯したりしなかったりする理由を表しているはずですよね? この2つの文で、LEDをONとOFFをわける条件が全く見えないのですが?
点灯/消灯の角度は任意ではなかったのでしたっけ? 変動させたいパラメータはわかるように図に書き込んでいただけませんか。
1の位置を識別しているのはLEDの色を分けたいからです。1は赤、2は青、3は緑です。LEDを点灯する順番は、私がそうしたいからだけなんです。
LEDをoffするタイミングの式と変数T1を図に入れておいたので見てくれますか。