RP2040マイコンを使って、NeoPixelを制御して楽しもうというコンセプトの基板です。
組み立てから電子工作してみたい方向けの補助的な資料です。
表面実装部品を多用しており、はんだ付けレベルは中級になります。
抵抗、容量のフットパターンは手実装用に少し広めになっています。
①制御マイコン:PR2040-ZERO(RaspberryPiPico系)
②NeoPixel接続ピン GPI08(R1でショート)
③プッシュスイッチ1:GPI07
④プッシュスイッチ2:GPI06(2個搭載しているボードのみ)
⑤音声入力:GP26
NeoPixelの実装
WS2812Bの実装方向ですが、よく見ると切り欠きがあります。
シルクで1ピンの位置を合わせて部品の配置を行います。
電源安定用コンデンサ
LEDの点滅安定用にバイパス用のコンデンサを実装します。
動作切り替わりで発生する電源の電圧降下を防ぐ効果があります。
回路は1線信号の入力、出力、安定用コンデンサがワンセットになります。
プッシュスイッチ
外部入力を行います。
プッシュスイッチ1は、GP07番に接続されていますのでプログラム上でHI/LOを読み取って
状態を変更することができるようになります。
回路構成は、100kΩでPull-Upしています。
ボタンを押さない場合、端子の状態はHIとなります。
ボタンを押すと、端子の状態はLOになります。
あと容量が対GNDに実装しています。
この部品の意味は、ボタンを押したとき接触などで端子の状態がばたばたするのを
防ぐ役割を担っています。(チャタリング除去回路)
時定数 τ(タウ)=CR=1uF×100k=100msec未満はLOからHIの所要時間が必要なため不感になります。
反応を早くしたい場合は、抵抗値、または容量を下げることで反応が早くなります。
余談ですが、1CRでちゃんと計算すると63%に到達する時間ということになります。
マイコンの端子が3.3V÷2=1.65Vを超えたぐらいというざっくり感覚で超えたところという時間の設定です。
音声ジャック 入力回路
音声を入力する回路です。AD入力は、GP26ピンになります。
3.5mmステレオミニジャックは、秋月さんで売られているものを使用しています。
https://akizukidenshi.com/catalog/g/g109060/
音声信号を入力してFFT(高速フーリエ変換)を行うために0信号状態を、3.3V÷2=1.65V基準にしています。
無信号の時、ADコンバータ出力は信号がない場合、ADCにはフルスケール(12bitなので2^12=4096)の
半分の値が得られます。
ということで、信号成分は図解より、
1÷(2×π×C27×(R5とR6のパラレル接続))で設定しています。
ハイパスフィルタのカットオフ周波数は、この値以上は信号を通しますという意味なので
0.32Hz以上の信号を通す定数になっています。
ちなみに0.32Hzは1/√2なので0.7倍の信号ですので1倍の周波数は3Hz以上の設定になっています。
余談:(R5とR6のパラレル接続)は、AC信号としてみた場合、3.3VもGNDも接地(信号的に動かない)と
見えるためこのように計算しています。
あとADの入り口で信号が3.3Vを超える場合は、ツェナーダイオードで制限をかけると
運用が安心になりますが、今回の部品表には盛り込こめていません。(手が回りませんでした)
5V昇圧回路
電池電圧を5Vに昇圧する回路です。
価格抑えめな昇圧回路を使用しています。
R4は、昇圧回路をNeoPixelに5Vを供給できるようにします。
そのため抵抗値は0Ωとしています。
5VのインジゲーターLEDとバッテリ接続切り離すスイッチ。
5V出力確認用のインジケータ表示としてLEDを点灯させています。
明るすぎる場合は、R3=10kオームなど抵抗値を大きくすることで明るさを抑えられます。
またスイッチは、OFF方向に入れると電池供給が切れるようになります。
NeoPixel(WS2812B)の信号線
NeoPixel制御信号線をGP08またはGP13を選択できます。
動かなかったときGPIO端子を切り替える用に用意しましたが、
基本的に動いていますので、GP08に抵抗(1kΩ)を実装していただければ
サンプルプログラムがコピー&ペーストで動かすことができます。
これで必要な部品は、迷わずつけられると思います。
ぜひ楽しんでみてください。
電脳好奇心 うたたねこ