見出し画像

レコードプレーヤー、回転数を測るには!

ArduinoでDCモーターの回転をPWM制御で行うところまではできた。
問題は、実際のターンテーブルが、できるだけ正確に、そして安定して33.3回転を回ってくれる事が大事である。

ところが、実際に回してみると、どこかで回転のロスが出ているのか、抵抗が不規則にかかるのか、電圧が安定しないのかはわからないが、PWM制御だけでは、安定した回転にならない。

だんだん遅くなったり、速くなったりしだすし、また、回転ムラで時よりうなったやような音になる事もある。

これを、補正するためには、多分、実際のターンテーブルの回転数を計り、瞬時にフィードバックをかける機能が必要になるのだろう。

このセンサーを使ったフィードバックの機能から、Arduinoへ情報を送り、正しい回転数に補正するプログラムを実装する必要がある様である。

センサーを使った回転数のフィードバックの機能だが、ターンテーブルを裏返すと8本の筋があるのでこの筋に沿って黒マジックで色をつけて明暗をつけ、その下に、CdSという光の明暗で反応するセンサーを置いた。

ターンテーブルの裏にマジックで黒く塗った所
CdSというセンサーをターンテーブルの裏側に配置

つまり、一回転する毎に、8回の暗部を感知し、アナログ波形に現れるという物。
それを、Arduinoのプロット機能を使ったのが上の写真。

一回転で、8回分の山、谷の波形が現れる事がわかった。

ネットで調べると、このアナログ波を抵抗付トランジスタを経由してデジタル波に変える事ができるそうである。そうすれば、そのデジタル情報(1,0)をArduinoで読み取って一分間に何回回っているかという情報を計算する事ができそう。ArduinoのattachInterruptという関数を使うと良い様である。

その情報を使って、一分間に33.3回転よりも早ければ、PWMを少し弱める、逆だとに早ければ、少し強めるという指示を出してあげれば、回転数は安定するのではないだろうか?

実際は、もっと0.数秒単位での制御が要求されそうなので、一回転で8個の信号では少なすぎる。できれば、ターンテーブルの側面についている、回転数測定用の明暗でシグナルを受け取れれば、1秒未満での処理も可能の様である。

明暗のミゾ

また、センサーもCdSでは、別途光源が必要なので、反射型フォトセンサーというLED付のものであればより簡単に使えそうである。

秋葉原にひょいと行って、抵抗付きトランジスタや、反射型フォトセンサーを手に入れたいところだが、行き帰りの交通費だけで万単位になってしまうので、何かのついでにかこつけてカミさんに納得してもらおうか?ネットでの注文は、送料だけで済むので、そっちの方が、手っ取り早いのはわかっているのだが、、、