投稿

ラベル(MAX7219)が付いた投稿を表示しています

量子化レベルメーターの製作

イメージ
 相変わらずタイトルだけでは意味不明ですが。  このアイデアは今から約40年前、CDがまだ普及とは言えない頃のパイオニアのCDプレーヤーにあります。 そのCDプレーヤーには普通のバー式のサウンドメーターがついていたんですが、スイッチで切り替えると量子ビットをそのまま出すという機能がついてました。  まぁ44KHzでCDの全データーなんて流しても全ビット点灯するだけなので、ピークホールドか何かで適当にデーターを間引いて表示していたんでしょうけど。  それが何の意味があるかというと「何もありません」  ただただ見てて楽しい(※個人的な感想です)だけです。  そもそも素人が作るサウンドメーターなんて入力電圧に対しどうのこうのなんて必要は全くないので、LEDがなんかチカチカしてればいいのではないかという発想です。副作用として8個のLEDだと分解能8ビットが分解能256ビットに大幅にアップします。 8x8マトリクスLEDをMAX7219でドライブ、写真右から縦1列が5msごとにサンプリングした量子化ビットで、その値がホールドされて左に順次流れていく動作になっています。 つまり、 ←下辺  上辺→ ◯◯◯◯◯◯◯◯ = 入力レベル0x00  ●●●●●●●● = 入力レベル0xff とすればいいわけです。 スケッチのloopの一部   // A0, A1 (R-CH, L-CHの数値を読み取る)   float a00= analogRead ( A0 );   float a01= analogRead ( A1 );   // 量子化する。200は入力レベルにあわせただけで本来は1024   int i = a00/ 200 *0x ff ;   int j = a01/ 200 *0x ff ;   // LEDマトリクスの右から1列目と2列めの値をセット   dispbar [ 1 ]=i;   dispbar [ 2 ]=j;   // LEDマトリクスの左から描写していく。   for ( int k= 8 ;k>= 1 ;k--){     //maxTransferはMAX7912にデータを送る関数...