最近のマイコンICはとっても便利だなあ。
簡単なプログラミングをするだけで外部機器を自由に制御出来るので。
さて、表題の「赤外線リモコン式 4入力スピーカーセレクター ATmega328P ラッチリレー 表面実装部品採用」の製作プロジェクトであるが、PCBWayさんに発注していた専用基板が到着した。
その専用基板にパーツをハンダ付けして、ATmega328Pマイコンにプログラムを書き込んだら動作がおかしい。
でもワテの必死のデバッグで最終的には期待通りに動作したのだ!
写真 完成した赤外線リモコン式4入力スピーカーセレクター(ATmega328P、ラッチリレー、表面実装部品採用)
このスピーカーセレクターの仕様は以下の通り。
- 4入力1出力
- スピーカー信号の正負両方を切り替える(BTL接続対応)
- 照光LED付き4連プッシュボタン又は赤外線リモコン切り替え
- エレコム製赤外線リモコン採用(5メートル程度離れてもOK)
- ラッチリレー採用(最大定格 16A/277V AC、接触抵抗 Max. 100 mΩ)
- ATmega328Pマイコン採用
- 表面実装部品採用
- スピーカー接続は端子台を採用
- ACアダプター DC12V/1A
- タカチ高級アルミシャーシ(AU44-20-25AH-BB)採用
- 寸法 44Hx200Wx250D(アルミ脚除く。アルミ脚付けるとH12mmほど増える)
だ。
入出力を逆に使えばアンプセレクターとしても使える。
では本題に入ろう。
前回記事はこちら⤵️
赤外線リモコン式4入力スピーカーセレクター専用基板(PCBWay製)紹介
PCBWayさんに基板のガーバーデータZIPファイルをアップロードしてから約一週間で自宅に到着した。
具体的には、2024/9/10に発注して2024/9/17に自宅に到着した。
速いわ。
写真 PCBWayさんから届いた赤外線リモコン式4入力スピーカーセレクター用基板
上写真のようにワテの場合は最近はFedexを発送業者さんに指定することが多い。
小包を開封した(下写真)。
写真 小包を開封
上写真のように梱包材でしっかり包まれている。
輸送中の振動で基板が互いに擦れて傷が付く事がないように基板は厳重に真空パックされている。
今回発注したプリント基板は三種類だ(下写真)。
写真 左:タカチシャーシ用パネル基板、中:SPセレクターメイン基板、右:押しボタン操作部
これらの基板の仕様を以下の表にまとめてみた。
寸法 | 150 x 33 mm、140 x 134 mm、100 x 25 mm |
層 | 2 層 |
材質 | FR-4: TG150 |
板材の厚み | 1.6 mm |
レジスト | 黒や白 |
シルク | 白や黒 |
表面処理 | 有鉛はんだレベラー |
銅箔の厚み | 1 oz Cu(=35μm) |
要するにガラスエポキシ1.6mm厚の両面スルーホール基板だ。
両面スルーホール基板が一週間で自宅に届くのだから、電子工作をやるなら専用基板を設計するのが絶対にお勧めだ。
タカチのシャーシパネルをプリント基板で作成
今回製作するスピーカーセレクターは機能も重要だが見た目にも配慮して入念に設計したのだ。
下写真のようにタカチ電機工業さんの高級アルミサッシケース(AU44-20-25)を採用した。
写真 タカチ(AU44-20-25)ケースのパネルをPCBWay製プリント基板に置き換える作戦
このタカチ電機工業のAUシリーズのアルミケースのフロントパネルをPCBWayさんに発注したプリント基板に置き換えるのだ。
さっそくPCBWay製プリント基板を嵌め込んでみたところ、上写真のようにピッタリと嵌ったのだ。
ただし、タカチ純正アルミパネルは厚みが1.5ミリ。一方、PCBWay製プリント基板は1.6ミリ厚で発注していたが、デジタルノギス実測で1.67ミリ程度あった。
なので上写真あるいは下写真ではPCBWay製プリント基板は上手く収まっているけれど、上下のアルミ部材にかなり強く嵌め込んでいる。
兎に角、設計通りにプリント基板製パネルがタカチケースに収まったので大成功だ。
四連プッシュボタン基板も位置合わせがピッタリ成功
下写真のようにLED付きプッシュボタンを四個搭載するサブ基板はこのパネル基板の裏側に取り付ける。
写真 サブ基板(LED付きプッシュボタン四連と赤外線受信モジュール搭載)とパネル基板
取り敢えず四連プッシュボタンや赤外線受信モジュールの位置が設計通りにパネル基板の穴位置にピッタリと合っているかどうか確認した結果、下写真のようにいい感じだ。
写真 プッシュボタンや赤外線受信モジュール位置が設計通りパネル基板穴位置に合っている
いや~、素晴らしい。
Fusion360やKiCadを駆使してこれらのプリント基板を設計したのだが、寸分の狂いもなくワテの設計通りに基板が仕上がっている。
プリント基板を電子機器を収納するシャーシのパネルに採用する作戦は、色んなメリットがある。
- 費用が安い(10枚で5ドルから数十ドル程度、サイズによる)
- 色が使える(基板レジスト色:黒、白、赤、青、緑、黄、紫、金メッキ、その他)
- シルク文字が入れられる(文字色:黒、白、金メッキなど)
- 厚さも選択可能(0.2/0.3/0.4/0.6/0.8/1.0/1.2/1.6/2.0/2.4/2.6/2.8/3.0/3.2ミリ)
SPセレクターメイン基板
下写真の白色基板が今回製作するスピーカーセレクターのメイン基板だ。
白色レジストに黒シルク文字で製作してみた。
写真 白色基板が今回製作するスピーカーセレクターのメイン基板
スピーカーセレクターのメイン基板の特徴としてはICや抵抗やコンデンサは表面実装部品を採用した。その理由はなるべくコンパクトなスピーカーセレクターにしたかったので。
一方、16個のラッチリレーや端子台は基板のスルーホールにハンダ付けする仕様にしている。
下写真のように2段20P(10Px2段)の端子台も設計通りにプリント基板に差し込む事が出来た。
写真 2段20P(10Px2段)の端子台も設計通りにプリント基板に差し込む事が出来た
タカチシャーシ用パネル基板、四連プッシュボタンのサブ基板、メイン基板の三種類の基板に大きな設計ミスが無いことが確認出来たので一安心だ。
では、早速ハンダ付けを開始する。
ハンダ付け作業を開始する
ホットプレートリフローで3端子レギュレータをハンダ付けする
まずは下写真の表面実装型3端子レギュレータ7805をホットプレートリフローの手法でハンダ付けする。
写真 3端子レギュレータの背面電極を付ける基板上のパッドにハンダを盛っておく
上写真のように3端子レギュレータを取り付ける三箇所のパッドに事前にハンダを適量盛っておく。つまり背面電極の大きな長方形部分と二箇所の足の部分だ。
なお、今回作成した白色レジスト基板はスマホのカメラで撮影してもコントラストが強く出てしまい写真の見た目があまり良くないが、ご了承下さい。
緑や青などの他の色の基板なら、綺麗に撮影出来るのだが。
なぜワテが今回は白色基板を採用したのかと言うと、スピーカーセレクターのようなオーディオ機器はオーディオ信号に対して出来る限り影響を与えない事が望ましいが、そう言う点でも白色は見た目の観点でも色付けが無いので採用したのだ。
要するに柔道着が白色であるのと同じだ。青色柔道着なんてのは柔道ではなくてJUDOでしょ。
下写真がワテがホットプレートリフロー作業をする際の道具一式だ。
写真 小型ホットプレートの上に表面実装3端子レギュレータを載せた基板を置いて加熱
この小型ホットプレートには温度調整スイッチは無いが全く問題なくハンダ付けが出来る。
ラジオペンチは二丁あると作業がやり易い。基板を移動させる時に基板四隅のネジ穴の二箇所をラジオペンチで摘むとやり易いのだ。ワテのお勧めはフジ矢のラジオペンチだ。
ホットプレートの電源をONして数分加熱すると事前に盛っておいたハンダが溶けるので、3端子レギュレータが基板に密着して良く馴染んだら基板四隅をラジオペンチで摘んで引き上げる。
写真 ハンダが溶けて3端子レギュレータが基板に密着したらリフロー完了
作業机の上に敷いているダンボールの上に熱い基板をおいて冷ませばリフロー作業終了だ。
なお、今回は二箇所の足の部分のハンダ量が少し足りていなかったので、このあとで手ハンダ作業でハンダを追加しておいた。
下写真のように3端子レギュレータ周りの数個の抵抗、コンデンサ、ダイオードを手作業でハンダ付けした。
写真 3端子レギュレータ周りの抵抗、コンデンサ、ダイオードを手ハンダ付けした
このあと、上写真に写っているDC12V入力用のDCジャック(Φ2.1/5.5mm)をハンダ付けした。
このメイン基板に搭載するラッチリレーはDC12VタイプなのでDC12VのACアダプターをこのDCジャックに接続するのだ。
そのDC12VからDC5Vを生成するのが3端子レギュレータ(7805)で、そのDC5VでATmega328Pや表面実装型の各種ICを駆動する。
上写真のDCジャックをハンダ付けする時に、なぜかハンダが基板のパッドに馴染まない問題が起こった。
良く確かめたらフラックスではなく洗浄液を基板に塗っていたのだ。あかんがな。
写真 左:フラックス瓶とフラックス洗浄剤瓶が良く似ている。右:対策後
上写真左のようにフラックス瓶とフラックス洗浄剤瓶の蓋に「フラ」と「洗」と手書きしていたのだが、それでも間違えてしまった。
そこで写真右のように赤マジックで洗浄剤を目立つように改善しておいた。
これで間違えることは無いだろう。ちなみにフラックスと洗浄剤とを間違えたのはワテの場合は確か人生で二回目だ。
電源部の動作確認成功
電源部のハンダ付けが完了したので下写真のように動作確認した。
写真 電源部のハンダ付けが完了したので動作確認成功
上写真のようにDC12VのACアダプターをDCジャックに差し込むと、小型の表面実装LED(黄緑色)が点灯した。
基板上にある電圧チェックポイントをデジタルテスターで計測すると以下の通り。
写真 左:DC12V入力部の計測値、右:3端子レギュレータ(7805)の出力部計測値
上写真のように設計通りの電圧が計測されたので電源部は正常動作している事が確認出来た。
このように電子工作ではまずは電源部を製作するのが良いだろう。電源が無くては何も動かないので。
表面実装型のICのや抵抗などのハンダ付け完了
下写真のように表面実装型のIC(フラットパッケージタイプ)や抵抗、コンデンサ、ダイオードなどのハンダ付けを一気に行った。
写真 フラットパッケージタイプICや抵抗、コンデンサ、ダイオードなどのハンダ付け完了
まずは最初にフラットパッケージタイプのICのハンダ付けを行った。
そのあとで抵抗、コンデンサ、ダイオードのハンダ付けを行った。
ちなみに前回記事でも紹介したが、ワテが使っているハンダゴテのコテ先を下写真に示す。
写真 白光のBC型(T12-BC2)やD型(T12-D24Z)コテ先
ワテは上写真のように大小2種類のハンダゴテを使っている。
BC型は先端を斜めカットしたやつだ。
D型は先端がマイナスドライバーのような形状だ。
ワテは表面実装部品の場合でもD型の大きい方のコテ先を使う場合が多い。
部品が密集していて大きなコテ先だと作業がやり辛いなどの場合には小さい方のBC型のコテ先を使う。
白光 D型 コテ先 をアマゾンで見る。
白光 BC型 コテ先 をアマゾンで見る。
表面実装部品のハンダ付けは慣れてしまえばそんには難しく無い。
今回設計した基板はなるべく面積を小さくするために、基板の裏側にも部品をハンダ付けするようにしている(下写真)。
写真 基板面積を小さくするために基板裏側にも表面実装ダイオードをハンダ付けした
表面実装部品はハンダ付け場所にスルーホールを必要としないので、基板に穴が開かない。
その結果、KiCadで基板設計する時に基板の表や裏に配線を引っ張る作業で配線の自由度が増えるので、配線作業がやり易いのが良い。
ちなみにこれらのダイオードはリレーを並列で接続する時に追加することが推奨されているダイオードだ。
つまり、この4チャンネルスピーカーセレクターは1から4までの4入力を一つの出力OUTPUTに接続する。
それぞれの入力はR+、R-、L+、L-の4信号があるのでそれらをラッチリレーで同時に切り替えている。
採用したラッチリレーは1回路タイプなので1チャンネル当たり4個のラッチリレーを使っている。それが4入力分あるので16個のラッチリレーを使っている。
4個のラッチリレーを同時に駆動するためにそれらを並列接続しているのだが、そのリレーコイル部分にダイオードを追加しているので、上写真のように沢山のダイオードが並んでいるのだ。
写真 ラッチリレーハンダ付け前
下写真のように16個のラッチリレーのハンダ付けがサクサクと完了した。
やっぱり専用基板は素晴らしいなあ。
写真 16個のラッチリレーのハンダ付けが順調に完了
ここまではフラックスと洗浄剤を間違える失敗以外はすべてが順調だ!
残す作業は2段式端子台のハンダ付けだが、それも冒頭で端子台の電極が設計通りに基板のスルーホールに差し込める事は確認済なので、一分も掛からずに無事にハンダ付け作業が完了した。
お~、素晴らしいぞ。
プッシュボタン操作部(赤外線受信モジュール含む)のハンダ付け
メイン基板のハンダ付けが無事に完了したので、次は照光LED付き四連プッシュボタンや赤外線受信モジュールのハンダ付けだ。
写真 照光LED付き四連プッシュボタンや赤外線受信モジュールのハンダ付け完了
この場合も専用基板に部品をハンダ付けするだけなので作業は簡単だ。
ただし、四連プッシュボタンや赤外線受信モジュールはタカチシャーシ用に製作したプリント基板製パネルの丸穴から顔を出すので、位置合わせは重要だ。
照光LED付きプッシュボタンスイッチは全部で8本の電極があるが(LED用2本、2極双投スイッチ用6本)、一気に全部ハンダ付けすると位置合わせが出来ないので、LED用の2本の電極をハンダ付けして仮止めした状態で、パネルの穴の中心にスイッチが来るように位置合わせした。
そのあとで残りの電極をハンダ付けして上手く位置合わせすることが出来た。
赤外線リモコン式4入力SPセレクター(ラッチリレー式)の動作確認
ハンダ付け作業が完了したので、メイン基板とプッシュボタン基板とをフラットケーブルで接続する。
写真 メイン基板とプッシュボタン操作部(赤外線受信モジュール付き)はフラットケーブル接続
入念に設計した専用基板なので、上写真のように外付けの手配線が一本も無い。メイン基板とボタン操作部基板の接続は一本のフラットケーブルをソケットに挿すだけで良いのだ。
ちなみに以前に製作したラッチリレー式スピーカーセレクターの写真を以下に示す。
写真 正面から見たモノーラル構成のラッチングリレー式スピーカーセレクター
上写真のように、手作業で沢山の配線作業を行った。
かつ、マイコンは使わずに(その当時はワテはマイコンを使った経験が無かったので)、SN7400シリーズのロジックICだけを組み合わせてラッチリレー制御をしているワテの力作である。
左右モノラル仕様と言う世界で類を見ないスピーカーセレクターだ。現在もワテのオーディオ環境で活用している。
今回製作するスピーカーセレクターはこれを赤外線リモコン化したものだ。なお、今回製作するスピーカーセレクターはステレオ仕様だが、モノラル仕様に改造することも割と簡単に出来る。
下写真のようにフラットケーブルでメイン基板とプッシュボタン操作基板とを接続した。
写真 フラットケーブルでメイン基板とプッシュボタン操作基板とを接続
フラットケーブルを一本挿し込むだけなので、楽ちんで良い。
プログラムを書き込んで動作確認したが挙動がおかしい
下写真のようにDC12VのACアダプター、ATMEL-ICEプログラマ・デバッガを接続して電源ONした。
写真 DC12VのACアダプター、ATMEL-ICEプログラマ・デバッガを接続して電源ONした
まずプッシュボタンスイッチを押してみたら押したボタンと点灯するLEDが表示がずれている。
SW1押下 ➡️ LED2点灯 SW2押下 ➡️ LED3点灯 SW3押下 ➡️ LED4点灯 SW4押下 ➡️ 変化なし
あかんがな。
さらにリレーが切り替わる音が全くしない。
全然あかんがな。
さらに赤外線リモコンに全く反応しない。
もうあかんわ。お先真っ暗。
オーディオアンプなどの自作なら、期待通りに動作しない場合には配線間違いや部品取り付け間違いなどをチェックすれば良い。
一方、マイコンを使った電子工作の場合には、それに加えてプログラムのバグも疑わなくてはならないので、ややこしい。
でもまあここで諦めると何の成果も得られない。
それに前々回記事で紹介したように、DIP型デジタルICを使ったリモコン式オーディオセレクターの実験機も最初は正常動作しなかったが、その後、配線ミスやプログラムのバグを修正して無事に正常動作するようになった。
今回のフラットパッケージ版IC採用のスピーカーセレクターも地道にデバッグすれば完成させられるだろう。
リレーが全く反応しない問題解決
まず、リレーが全く反応しない原因は直ぐに判明した。
プリント基板の設計ミスだった。
ACアダプターで供給したDC12V電源をDC12Vラッチリレー駆動用のSETコイルやRESETコイルへ配線するのを忘れていたので下写真のように赤色ワイヤーを追加して修正した。
写真 DC12V電源をDC12VラッチリレーのSETコイル・RESETコイルへ配線忘れ修正
その結果、プッシュボタン押下でリレーが反応するようになった。ただし、設計通りにリレーが正しく切り替わっているのかはこの時点では未確認。
押したボタンと点灯するLEDが表示がずれている問題解決
次に、押したボタンと点灯するLEDが表示がずれている問題の原因も直ぐに判明した。
今回用いたプログラムは前々回記事で紹介したDIP型デジタルICを使ったリモコン式オーディオセレクターの実験機用に開発していたやつだ。
DIP版と今回のフラットパッケージ版は回路図は似ているが、若干変更箇所がある。
具体的にはDIP版では回路設計ミスでプッシュボタンSW1押下が認識出来ない問題があり、ジャンパー線などを追加して手作業で修正した。
その反省を元に、DIP版のSW1を廃止して、SW2、SW3、SW4に加えてSW5に相当する四つのスイッチを、フラットパッケージ版のSW1、SW2、SW3、SW4としたのだ。
ハードウェアのその変更をATmega328Pマイコンのプログラムに反映していなかったので押下プッシュボタンとLED表示位置が一つずれたのだ。
プログラムを修正したらずれの問題も解決した。
赤外線リモコンが全く反応しない問題解決
赤外線リモコンが全く反応しない問題は、その後、ACアダプターの電源を切って再投入したら治った。原因不明だが単なる偶発的なトラブルのようだった。
さて、これでプッシュボタン押下でもリモコンスイッチ押下でもリレーがパチパチ切り替わりLEDも正しく点灯するようになったのだが、大きな問題が発覚した。
ラッチリレーが正しく開閉していない問題発覚
ラッチリレーが正しく開閉していないのだ。
設計では以下のようになるはずだ。
Out | In4 | In3 | In2 | In1 | ||||||
SW1 | R+ | L+ | R+ | L+ | ||||||
R- | L- | R- | L- | |||||||
SW2 | R+ | L+ | R+ | L+ | ||||||
R- | L- | R- | L- | |||||||
SW3 | R+ | L+ | R+ | L+ | ||||||
R- | L- | R- | L- | |||||||
SW4 | R+ | L+ | R+ | L+ | ||||||
R- | L- | R- | L- |
表 設計したラッチリレーの接続状態(空欄は未接続を表す)
例えば上表で、SW1押下の場合には、In1の四つの信号(R+、R-、L+、L-)は出力Outの同じ信号に接続されるべきだ。その時には他のIn4、In3、In2はどれもOutとは切り離される。
ところが、リレーの状態をテスターで導通チェックすると実際は以下のようになっている。
Out | In4 | In3 | In2 | In1 | ||||||
SW1 | R+ | L+ | R+ | L+ | ||||||
R- | L- | R- | L- | |||||||
SW2 | R+ | L+ | R+ | L+ | R+ | |||||
R- | L- | R- | L- | R- | ||||||
SW3 | R+ | L+ | L+ | R+ | ||||||
R- | L- | L- | R- | |||||||
SW4 | R+ | L+ | R+ | L+ | R+ | |||||
R- | L- | R- | L- | R- |
表 テスターで計測したラッチリレーの接続状態(空欄は未接続を表す)
おかしいぞ。
In1のR+とR-は常にOutに接続されてしまっている。
In3のR+とR-は全くOutに接続されない。
原因はなんだろうか?
考えられる原因は以下の通り。
- 回路図の設計ミス(=基板配線パターンに間違いあり)
- プログラムのバグ
- 部品取り付け間違い
- ハンダ付け不良
分からん。
ラッチリレーが正しく開閉していない問題解決
でもまあ、悩んでいても問題は解決しないので、出来る事は全てやるのが重要だ。
まず、部品取付間違いをチェックする。
沢山使っているダイオードの向きを間違えている可能性だが、ハンダ付け前にチェックして、ハンダ付け後にチェックして、全部品取り付け後にチェックしているので間違いは無いとは思うが、もう一回全部チェックした。
その結果、間違いは無かった。
回路図の設計ミスに関しては可能性はあるが、前々回記事のDIP版の回路図をほぼ流用して改良しているので、多少の回路設計ミスが有ったとしてもラッチリレーの接続状態がこんな不規則になる問題が起きるとは思えない。
となると、プログラムのバグかハンダ付け不良だが、基本に帰ってハンダ付け不良を実体顕微鏡で入念に観察した。
その結果、ハンダ付け忘れを発見した。
下写真のD111とD121はそれぞれIn1のR+用ラッチリレー、R-用ラッチリレーのRESETコイルと+12V電源の間に入っているやつだが、どちらもアノード側(写真外側)のハンダ付けを忘れていた。
写真 SMDタイプのダイオードのハンダ付け忘れを発見(ハンダ修正前)
このあと、半田ゴテを温めてハンダ付けをしておいた。
一方、In3のR+とR-はOutに全く接続されない問題であるが、In3の四つのラッチリレーのSETコイルやRESETコイルに接続しているダイオードのハンダ付けを実体顕微鏡で確認したが、ハンダ付け忘れは見付からなかった。
でも念の為に、半田ゴテを二本使ってダイオードの両側の電極を同時に熱して、再はんだ付けした。
その結果、In3のR+とR-がOutに全く接続されない問題も解決した。
MPLAB X IDEを使ったATmega328Pマイコンプログラム例
参考までにMPLAB X IDEを使って開発したプログラムの一部を紹介しよう。
void reset_all_relays(void) { // 目的:RESETコイルを順番に動作させて初期化(全RESET)させる。現状4個のリレー // SETコイルを全部未通電(H)にしておく。 PORTB |= (1 << PB0) | (1 << PB1) | (1 << PB2); //上の三行の処理を一行で書くとこうなる。 /* 3-to-8 Line Decoderの3つの入力PC0, PC1, PC2を以下で順番にセットすることで 出力Y0~Y7に接続している各RESETコイルをパルス駆動する。 */ PORTC = PORTC & ~((1 << PC0) | (1 << PC1) | (1 << PC2)); // PC0/PC1/PC2=LLL Y0=H(RESET1) _delay_ms(100); PORTC = (PORTC | (1 << PC0)) & ~((1 << PC1) | (1 << PC2)); // PC0/PC1/PC2=HLL Y1=H(RESET2) _delay_ms(100); PORTC = (PORTC | (1 << PC1)) & ~((1 << PC0) | (1 << PC2)); // PC0/PC1/PC2=LHL Y2=H(RESET3) _delay_ms(100); PORTC = (PORTC | (1 << PC0) | (1 << PC1)) & ~(1 << PC2); // PC0/PC1/PC2=HHL Y3=H(RESET4) _delay_ms(100); // 最後は全部HにしてRESETコイルの通電解除する。 PORTC |= (1 << PC2) | (1 << PC1) | (1 << PC0); }
コード MPLAB X IDEを使って開発したプログラムの一部
今回は4入力切り替えのスピーカーセレクターを製作したが、8入力くらいの多入力スピーカーセレクターの製作にも応用できるように回路を設計している。
具体的にはラッチリレーのSETコイルやRESETコイルはATmega328PのデジタルIO端子で直接駆動するのではなくて、3-to-8 Line Decoderを間に入れている。これならATmega328Pの3つの端子を使って8通りの状態を作れるので、最大8入力のスピーカーセレクターも回路図を殆ど変更することなく、リレーの数を増やすだけで対応できる。
上の関数は四つのラッチリレーに順番にリセットパルス100msを与えて全てのリレーをリセットする機能だ。
例えば電源ONした直後に全リレーをリセットしてどのスピーカー入力も出力端子に接続したくない場合などにこの関数をコールする。
さて、上のコードではビット演算が多用されているのだが、ワテの場合、ビット演算は昔からあまり好きではなかったので、今でも苦手だ。
でも、マイコンプログラムではビット演算は避けて通れないのでChatGPTさんに教えてもらいながら学習した。
その結果、完璧にマスターすることが出来た。でも一週間もすると忘れるのだが。
まあ、ビット演算と言ってもそんなに難しい訳でなく、論理和や論理積や2進数の補数表現などを理解していれば誰でも理解できると思うが、この手のビット演算は偶にしかやらないのですぐ忘れるのだ。あかんがな。
大体、ビット演算に使う演算子 & | ~ などがワテには馴染めない。なんでか知らないがこれらの記号が好きではないのだ。
まあ今のところビット演算は理解出来ているのでもし忘れたら復習すれば良い。
赤外線リモコンに正しく反応する4チャンネルスピーカーセレクターの動作確認動画
と言う事で、多少のトラブルは有ったがワテの猛烈な原因調査によって設計通りに動くようになった。
写真 配線忘れ、ハンダ付け忘れ、プログラム変更忘れを修正して完成したSPセレクター
では、SPセレクターが赤外線リモコンで正常にチャンネル切り替えしている様子を動画で紹介したい。
動画 SPセレクターが赤外線リモコンで正常にチャンネル切り替えしている様子(12秒)
リモコンの数字ボタンを以下のように順番に押下して、ラッチリレーが切り替わる音が聞こえる。
1 ➡️ 2 ➡️ 3 ➡️ 4 ➡️ 3 ➡️ 2 ➡️ 1 ➡️ 5 ➡️ 1
1から4までのボタン押下ではその番号のチャンネルを端子台のスピーカーOut端子に接続する。
5番ボタン押下でLEDが消灯しているが、この時にはどのスピーカー入力(In1~In4)もOutには接続されていない。
現状では電源スイッチONすると、どのチャンネルもOutから切り離されるようにしている。
これはプログラム次第で好きに変更出来るので、例えば電源ON時にOutに特定のチャンネルを接続するようにするオプション設定を出来るようにするなど、プログラムの改良を検討中だ。
赤外線リモコン式4入力SPセレクター(ラッチリレー式)をケースに収納
さて、最後にタカチ電機工業のAUシリーズのアルミサッシケースにスピーカーセレクターを収納すれば完成だ。
まずはプラスドライバー#2を使ってシャーシを組み立てる。
写真 タカチAU44-20-25を組み立てる
アルミ製の脚も付属のプラスネジで固定する。
天板や底板の固定はプラスネジタイプと六角ネジタイプが選択できるので、今回は六角ネジタイプを購入してみた。六角レンチも付属している。
下写真のようにフロントパネル部分にPCBWayさんで製作したプリント基板を嵌め込む。
写真 フロントパネル部分にPCBWayさんで製作したプリント基板を嵌め込む
タカチ純正アルミパネルは厚さ1.5ミリだが、そこにプリント基板製パネル(実測1.67ミリ)を嵌め込むとかなりキツイが下写真のように上からアルミ押出材のレールで押さえ込んでネジ固定したら上手く行った。
写真 PCBWay発注のプリント基板製パネルを嵌め込んだタカチAU44-20-25ケース
上写真のように黒色レジスト基板に白色シルク文字も見やすく、自分でボール盤などで加工してもこんなに綺麗に仕上げることは不可能なので、このプリント基板採用のパネル製作作戦は大成功だ。
プリント基板のフラックスを洗浄する
プリント基板はハンダ付けしたあとでフラックスの洗浄をまだやっていなかった。
なので、シャーシに取り付ける前にプリント基板を洗浄する。
写真 フラックスで汚れているプリント基板
ワテお勧めのフラックスクリーナーは下写真のサンハヤトのスプレー式のやつだ。
写真 フラックスクリーナーは惜しまずにタップリと噴射する
電子工作界の超貧乏性と言われているワテであるがフラックスクリーナーとハンダ吸い取り線は惜しまずにドンドン使うようにしている。これだけは電子工作界の大盤振る舞いだ。なんのこっちゃ。
上写真右のようにタップリのフラックスクリーナーをスプレー噴射する。
あとは下写真のように歯ブラシなどで擦る。
写真 左:フラックスが流れ落ちた裏面、右:歯ブラシ清掃中の表面
なお、フラックスクリーナーで溶かしたフラックスは勝手に蒸発して消え去る訳では無いから、大量のフラックスクリーナーを噴射して汚れを洗い流すようにするのが良い。
そのためには、プリント基板を木片などに立てかけて縦にしておいて、フラックスクリーナーに溶けたフラックス汚れが重力に従って下に流れ落ちるようにする。
写真 歯ブラシで擦ったあとでティッシュなどで汚れを拭き取れば洗浄完了
フラックスクリーナー噴射&歯ブラシ清掃&ティッシュ拭き取りを三回くらい繰り返せば上写真のように綺麗になる。気分爽快だ。
清掃した基板を貼り付けボスを使ってタカチシャーシに固定した。フロントパネルとの接続はフラットケーブルだ。
写真 タカチシャーシに収納した4チャンネルラッチリレー式スピーカーセレクター
上写真では緑LEDも点灯して正常に動作しているが、実はこの直前にトラブルが起こったのだ。
タカチシャーシに収納したら動作しなくなった
それはシャーシに収納したら、動作しなくなったのだ。
具体的にはフロントパネルのプッシュボタンが一切効かない。
リモコンボタンにも全く反応しない。
さらにはATMEL-ICEとMPLAB X IDEでプログラムを再書き込みしようとしても、デバイスが見付からないと言うようなエラーで失敗。
あちゃー、フラックスクリーナーを大量に噴射し過ぎたのか?歯ブラシで強く擦り過ぎたのか?
もう訳わからん。
最後の最後で大どんでん返しで行き詰まってしまった。
まあ電子工作を長くやっていればこの程度のトラブルは何度も経験しているワテであるので、これくらいではへこたれない。
で、原因不明のトラブルが起こった場合には、正常動作していた状態に戻すのが鉄則なので、取り敢えずシャーシから基板を外して剥き出し状態で再度テストを開始した。
その結果、それでもデバイスが見付からないと言うエラーが起こったのだが、ATMEL-ICEのICSP6ピンコネクタを抜き差ししたり、フロントパネルとの接続フラットケーブルを抜き差ししていると自然に治った。
良く分からん。
もしかするとフラックスクリーナーが十分に乾燥していなかったので、何か回路に悪影響を与えていたのか?例えばフラットパッケージタイプのICの脚間隔は狭いので、そこに濡れたフラックスクリーナーと汚れが溜まっていて微弱な電流が流れていたとか?
まあ良く分からないが取り敢えず解決したので次に進む。
4入力切替ラッチリレー採用赤外線リモコン式スピーカーセレクター紹介
と言う訳で、紆余曲折したが無事に完成したワテ自作の「4入力切り替えラッチリレー採用赤外線リモコン式スピーカーセレクター」を紹介しよう。
写真 完成した4入力切り替えラッチリレー採用赤外線リモコン式スピーカーセレクター
上写真のようにタカチシャーシに嵌め込んだプリント基板製のフロントパネルが素晴らしい完成度だ(自画自賛)。
シャーシ背面はパネルを付けていないので開放状態だ。
スピーカーケーブルはその開放部分から引き込んで端子台にM4ネジ固定する仕様だ。
写真 完成した4入力切り替えラッチリレー採用赤外線リモコン式スピーカーセレクターとエレコムリモコン
いい感じに完成したので、受注生産で販売しようかな。
もし欲しい人がおられましたら、下のコメント欄からご連絡お待ちしています。
あるいは基板だけ販売しようかな。
まとめ
リモコン式スピーカーセレクターの製作を漠然と考えたのが、この記事のスピーカーセレクターを自作した時なので2000年6月だ。
そのリモコン式スピーカーセレクターは完成までに四年掛かったが、本日無事に自力で完成させることが出来た。
ワテもやればできる子(YDK)か。
当記事では、四年前に漠然と自作を考えたリモコン式のスピーカーセレクターが無事に完成するまでの過程を紹介した。
PCBWayさんに発注した三種類のプリント基板を使うことで、ハンダ付け作業も非常に簡単になり、電子工作が成功する確率が飛躍的に向上する。
従来ならユニバーサル基板に手配線する手法で電子工作を行っていたが、今回製作したようなデジタル回路の場合、線幅0.4mm程度の細い配線を縦横に多数配線する必要があるので、ユニバーサル基板で作るのは無理がある。
KiCadで設計した専用基板を使うことでハンダ付け作業は数時間もあれば完了する。
かつ、今回は見栄えの良い作品を製作するのも目的の一つであった。
それを実現するためにプリント基板で製作したパネルをタカチ電機工業のアルミサッシケースの純正パネルに置き換えることで、メーカー製品のような完成度の高い外見のスピーカーセレクターを完成させる事が出来た。
電子機器をリモコンで制御するってのは、電子工作をやっている人なら一度はやってみたい工作だと思う。
と言う事でワテも遂にリモコン制御に成功したのだ。
あとはこのスピーカーセレクターをワテのオーディオ環境に組み込むかな。
それと、今後の改良計画として、現状ではエレコムの赤外線リモコンでしか動かせないので、プログラムを改良してどんな赤外線リモコンでも対応できるように、いわゆる「学習リモコン」機能を実装したいと考えているのだ。
LTspice、KiCad、Fusion360を勉強する
電子工作をやるならLTspice、KiCad、Fusion360をマスターするべきだ。
どれも無料で使える素晴らしいツールなのだ。
- LTspiceは電子回路シミュレーター
- KiCadはプリント基板設計ツール(Spiceシミュレーターも内蔵している)
- Fusion360はAutoDesk社の有料製品だが、個人利用なら無料の超高性能3次元CAD
こんな素晴らしいツールが無料で使えるんだから、本当に良い時代になったもんだ。
そしてこれらのツールを駆使してプリント基板を設計すれば電子工作の成功確率は飛躍的に高まり、作品の完成度も大幅アップするのだ。
と言うワテもKiCadを覚えたのが確か2019年末だったっかな。必死で二週間くらいKiCadに没頭したら案外簡単にマスター出来た。
兎に角、人間、元気が有れば何でも出来る。
アントニオ猪木さんか。
(続く)
コメント