散歩師・漫画居士のくだらなクラブ日記

ども、散歩師・漫画居士っす。散歩したり実働模型作ったりが趣味なんで、その時に思いついたこととか書くッス

FPGAでボリュームの位置を読み取る方法

FPGAの デジタルIO pinのみで、ボリュームの位置を読み取る回路。

胃腸完成しましたので、公開させて頂きます。

 

 

 

github.com

 

動作

こんな感じに動作します。

 


20170416_120825.mp4

 

原理

f:id:mangakoji:20170416200013p:plain

ごくかいつまんで言うと

1. 2種類の乱数(TPAT_P/N)を発生

2. ボリュームの位置が、TPAT_Pに近ければ、TPAT_Pに一致する割合が多く

  TPAT_Nに近ければTPAT_Nに一致する割合が多くなります。

3.中間位置では、一致する確率は半々になります(乱数なので)

4.TPAT_Pだけが一致した場合はFF,T_PAT_Nだけが一致した場合は01、それ以外は中点の'h80を出力し、

 それをIIRフィルターでローパス平均化して出力します。

 

大体5bitくらいの制度が出ています。ケースに触るだけで、そのくらい変動しますが、

CR時定数法などに比べると格段に安定しています。

 

ボリュームは10kohm,キャリアは48MHzであることが、キーポイントかもしれません。

実際1kohmにすると、若干中央によってしまい、読み取れる角度が狭くなります

(両端よりも遠い位置で、100%一致してしまう)

 

 

本当のことを言うと、過渡現象がよくわからず、且つ過渡現象にたよった回路なため、

なぜ動くのかよくわからない謎の回路になってます。

FPGAの入力は若干シュミット気味ですが、時定数をもったシュミットで、

且つ逆シュミットっぽく動作することもあって、本当によくわかりません。

 

 

 

 

 ごらんのように、ボリュームには外付け部品をつけておりません。

 

 

ご自由にお使いください。

 

enjoy!