本記事は電磁弁操作用の自作USBモジュールに関する製作備忘録です。(主に回路)
自作USBモジュール詳細:MasaYasuda/TypeCAirController_v0
旧回路の電磁弁駆動回路基板の分析・改善点
フォトカプラ回路の抵抗値
フォトカプラの入力側のダイオードの推奨値はIf=10mA (V=1.57)より
抵抗はR=(5-1.57)/0.01=343Ω→330Ωを使用をした方がよさそう(※ 5V出力マイコン想定)
データシートTLP152_J_20121119
抵抗値のバリエーション 抵抗器の表記 | KOA株式会社
LED回路の抵抗値について
先輩のLED点灯回路はこのようになっている。ここでSigはマイコンにつなぐので3.3Vor5V。この先輩の設計時にSTMマイコンを使ってたら3.3Vだが、ここではArduinoからSig=5Vが来ていると仮定する。
LED点灯回路の適切な抵抗値の理論式については問題ない。
「適切な電流およびその電流における電圧と明るさ」について以下補足する。
推奨電流値など推奨動作条件が書かれていれば良いが、上のチップLEDではそれが書いていない。少し困ったが、調べてみるとあるサイトで「LEDの一般的な推奨電流は約20mA」と言っていたので、おそらくこの定格値周辺で動かしても問題ないと思われる。一度このIf=20mA,V≃2.2Vを計算値として使用してみると
→R=(5-2.2)/0.02=140→140Ω以上の抵抗(220Ωなど)を使用することになる
(が、しかし…続く ↓)
LEDの順電流(順方向電流)IFとは
電源ICのデータシートの読み方:表紙、ブロック図、絶対最大定格と推奨動作条件 | TechWeb
※ 大学講義の「電気機器」や「パワーエレクトロニクス」でよく聞いたが、定格値というのは「絶対に超えちゃいけない値(絶対定格値)」という意味で使われる場合と「この値で使用してね(推奨値)」の意味で使われる場合の2つの場合がある。
がしかし、実際のところ1kでも問題ないことも多いようである。
つまるところ1kでも3mAくらいは流れ、それだけの電流でも多くのLEDでは十分視認できる明るさになるからである。
参考:3mm黄緑色LED 570nm 70度 OSG8HA3Z74A: オプトエレクトロニクス 秋月電子通商-電子部品・ネット通販
チップサイズおよび部品配置の再検討
チップ抵抗の大きさに関しての基礎知識は以下の記事参照
【チップ部品のサイズ】0603や1005とは?mm表記とinch表記の違いは? - Electrical Information
チップ部品のサイズとサイズの名称について - しなぷすのハード製作記
以下mm表記で○○Mと示す(ex. 1608M)
過去の基板を参考にすると、
エアシリ基板Air_v2(2020:先輩)→ 0603(1608M)使用
ArduinoMegaSlave(2022:Yasuda)→ 0402(1005M)使用
チップ抵抗の大きさは以下の記事では最小でも0603,できれば0805以上が好ましいとされている。
個人的にははんだミスを減らすためにもう少し大きくしたいが、今後のSMD部品の管理面から可能な限り0603サイズを用いることにした。少しリフローの面は考えることにする。
※ 感覚的に分かるように、サイズが小さいほど定格電力は小さい傾向がある。0603の定格はおよそ1/10~1/8Wである。明るく光らせたいLEDの回路などに用いるときは気を付けること。
バイパスコンデンサとその目安値
先輩の基板では2つのコンデンサが使用されている。この二つはともにバイパスコンデンサ(パスコン)と呼ばれるもの。
この回路中では0.1uF(小容量)の方は高周波ノイズ対策。
330µF(大容量)のものは電源電圧変動抑制のために使用している。
目安値としては大体上記と同じで良い?と思う。
電源電圧動作抑制のものは、供給電流が多い場合はより大容量の物の方が良いだろう。
なお、マイコン電源周辺のバイパスコンデンサはArduino公式のデータシートなどを参考にするとよい。
(Arduinoではメインは47uFと0.1uF)
参考:パスコン(バイパスコンデンサ)とは?役割や最適容量を解説 | TechWeb
arduino_Uno_Rev3-02-TH.sch
Type-C Air Controller v0の設計
要件
- USBアダプターType-C出力からダイレクトに回路電源・電磁弁駆動電力を供給して、ユーザーの機械的操作により電磁弁の開閉・保持を行なう
- 同時に最低4つの電磁弁を操作する
- 部品合計価格目標:1000円以内
- 部品は可能な限り秋月(どうしてもない専用ICや特定抵抗値・コンデンサはマルツオンライン)orモノタロウで手に入る&長期的な在庫が予想されるもの
- サイズ:可能な限り小さく(基板サイズ50x50mm程度)
設計における検討点
一回押して出力ON、もう一回押して出力OFFになるような動作
このような動作はオルタネート動作と呼ばれる。
早い話がオルタネート式のボタン(ノック式ボールペンのイメージ)を用いればよいのだが、チャタリングの問題およびあとの項でも述べるがサイズやコストの面で少し懸念点があるため、回路で解決する場合どのようになるかを調べた。
このような動作を行なう回路はオルタネート回路と呼ばれる。
簡略化した回路は次のような構成になる。
ロジックICの74HC74はD-フリップフロップ(以下、D-FF)とよばれ、出力を記録保持できる回路である。大学電気系学科だと論理回路の講義で習う。このような回路で理想的にはオルタネート動作が実現できる。
しかし、実際には次のような回路構成が必要である。
先ほどの回路で問題になる点は「スイッチのチャタリング」と「不確定な初期状態」である。
スイッチのチャタリングの問題に関してはD-FFの前段にあるような回路で実現できる。
つまりローパスフィルターとシュミットトリガーNOT回路を使用する。これは典型的な回路のようである。シュミットトリガNOT回路はRC回路を通った"ゆるやかな信号"でも誤動作をなくすため(加えて、前段はボタン押下時にLOW入力となるのでそれを反転させるため)に使用する。
メカニカルスイッチのスイッチバウンスとデバウンス回路 - 日本語フォーラム / 技術的なヒント - Electronic Component and Engineering Solution Forum - TechForum │ DigiKey
参考(時定数の設定):タクタイルスイッチのチャタリングを検証 by uchan | elchika
【RC回路の時定数】求め方や単位などを詳しく解説!
そして不確定な初期状態の問題というのはすなわち、先ほどの簡略化した回路では初期状態は全く不定であるということである。今回行いたい電磁弁操作でそれを考えるなら、例えば起動時に急にエアシリが動くというような可能性があり危険極まりない。
したがって、これを解決するためにパワーオンリセット回路が有効である。
先ほどのD-FFにはCLEAR端子というものがあり、これがLOWのとき出力は前状態によらずQ=LOWとすることが出来る。
したがって、例えば電源投入直後はLOW出力で、一定時間後HIGHになるような回路が構成できれば不確定な初期状態の問題をうまく解決できると言え、つまるところ、そのような動作をしてくれる回路がリセット回路である。
リセット回路にはリセットICを用いる方法のほか、RC回路を用いた簡単なリセット回路をつくる方法などがある。ここではLM810を用いたリセット回路で示した。なお、リセット回路(IC)には電源投入直後の時間経過でLOW→HIGH("Active High"用)になるもののほか、逆にHIGH→LOW("Active Low"用)になるものの2つがあるので設計の際には十分に注意すること。
参考:パワーオンリセットとは | FAQ | 日清紡マイクロデバイス
参考(秋月で買える"Active High"リセットIC):電圧検出システムリセットIC M51957B: 半導体 秋月電子通商-電子部品・ネット通販
※ 秋月にあるTCM"809"リセットICはマイコンなどのActive Low用で、Active High用は"810"です。
ロジックICとマイコン
上ではオルタネート回路をロジックICを駆使して地道に構成したが、ここまでくると部品およびそれらの管理コスト、そして実装面積の面からもはやマイコンでオルタネート動作させれば良いのではないかという気分になってくる。実際オルタネート動作だけであればAVRのAttinyシリーズの安価なものでも十分なので100~200円程度で全て解決できる。しかし、マイコンを使用する場合にはもちろん書き込みが必要になるので、書き込み時の電圧分布(主に逆流)には注意する必要がある。
USB Type-C給電とPowerDelivery
今後、将来的にも10W~数十Wの電力を必要とする機器(DynamixelやマブチDCモーターなど)をより簡単に駆動させたいという理由からUSB Type-Cを使用した給電を行ないたい。
USB Type-CではPowerDelivery(以下、PD)を用いることで最大100W~200Wの給電を行なうことが出来る。
Type-C(CtoCでの供給)はデフォルトで5V3Aを使用できるが、PDのコンフィギュレーション用IC(一般にPDシンクコントローラーなどと呼ばれる)をデバイス側に載せることでPD供給を実現できる。
参考:USB Type-Cのすべて (インターフェース・デザイン・シリーズ) | 野崎 原生, 畑山 仁, 池田 浩昭, 永尾 裕樹, 長野 英生, 宮崎 仁 |本 | 通販 | Amazon
参考(PDシンクデバイスの設計):Amazon.co.jp: はじめてのType-C電子工作 (技術の泉シリーズ) : じがへるつ: 本
要求される供給電力とType-C給電方式
いま、USBで電源供給するにあたり、回路の消費電力を少し考えてみる。
- 汎用ロジックICの消費電力
例:D-フリップフロップIC 74HC74
P=5V x 20µA=0.1mW
PS = VCC x ICC
VCC :ロジックに印加されている電圧
ICC:データシート記載の静的消費電流
- マイコンの常時消費電力
例:ATmega328…5Vx0.2mA=1mW
参考:ATmega48A/48PA/88A/88PA/168A/168PA/328/328P Datasheet Summary
- ボタン周りのプルアップ抵抗等による損失
プルアップ抵抗≒10kΩ →P=(V^2)/R=(5V^2)/10kΩ=2.5mW
- LED周りの損失
電流は上の項で述べたように3mA想定
P=5Vx3mA→15mW
- 電磁弁の消費電力
以前サークルに合った24V駆動の電磁弁(単動式)の消費電力は多くとも0.4W。
それぞれ消費電力は商品カタログに記載
KOGANEI F10T0 PN (カタログページp106(PDF表示ではp107))
→"PowerComsumption 0.4W"
smc vqz1121-5m1-c4
→"消費電力 DC 標準 0.35W{ランプ付:0.4(DIN形ターミナルのランプ付は0.45)}"
以上のことから今回の基板の主な消費電力はおおざっぱに
- 電磁弁 0.4W x 6 =2.4W (∵電磁弁6ポート)
- 昇圧回路における損失 ≃ 80%
- マイコン常時電力、プルアップ抵抗損失、LED損失などなどの総電力:0.1W
→P= (2.4W /0.8)+0.1W =3.1W
よって少し多く見積もっても全体消費電力は4Wほどと見込まれる。
したがっ今回はPowerDelivery(以下、PD)を用いたType-C電力供給の必要もないため、5V3Aの電力供給を行なえばよい。
操作におけるユーザーの心理的安心感および安全性
大学初年次の学生などが操作することを鑑みて、安全性(故障時のフェイルセーフ)およびユーザー側の心理的な操作安心感は可能な限り確保したい。
それに伴い、筐体を作成することは必須であるが、問題はインターフェース部である。
理想的には押しボタンはパネル用を使用し、電気部から完全に隔離したいが、予算の都合や筐体設計の高コスト化などの面からあまりこだわりすぎないことにする。
![]()
パネル用押しボタンスイッチ モーメンタリー 角型 白: 制御部品・駆動部品 秋月電子通商-電子部品・ネット通販
補足:オルタネート式のボタン、押し込まれてるか分からない問題
秋葉原の秋月本店に行く機会があったので触ってみたが、ON時とOFF時の差が全く分からないため別に状態表示用のLEDを付けた方が良いと思われた。
また、USB-Typeコネクタは調達コストの面からそれ用の別DIP基板でもよいが、接続部はある程度の強度を持たせる必要がある。
昇圧回路の設計について
昇圧回路はモジュール化されたものがいくつか秋月にあるため、早い話がこれを真似すればよい。
あるいは、それぞれのスイッチングレギュレータ(特に日清紡製)は回路例がデータシートに記載されているのでそれをまねるとよい。
参考:最大24V出力 昇圧型スイッチング電源モジュール LMR62421使用キット: キット一般 秋月電子通商-電子部品・ネット通販
参考:最大30V出力 昇圧型スイッチング電源モジュール NJW4131使用: キット一般 秋月電子通商-電子部品・ネット通販
参考:njw4131.pdf
電磁弁駆動回路
これまで先輩の回路ではフォトカプラを使用した回路でスイッチングしていた。
しかし、理論上問題なさそうであるのに、なぜかフォトカプラの破損が頻発したので、今回は別の回路を考えたい。
参考例:nekolab: 電磁弁駆動回路メモ
NPNトランジスタを使用してスイッチングする方法である。フォトカプラと異なりロジックGNDとパワーGNDを分離できないが、どのみち今回は非絶縁型昇圧回路を使用するのでそこまで神経質にならなくてもよいように思う。
どちらかというと重要なのはソレノイド電磁弁と並列に接続するファストリカバリダイオードである。
電磁弁の開閉はリレーと同様にソレノイドコイルで駆動しているので、電磁弁OFF時に逆起電力が発生する。
そのため製品内部ではそれの対策としてフライホイールダイオードやサージ電圧保護回路が内蔵されているが、一部の製品ではこれが内蔵されていないことがあるそう。
もしかしたら以前の回路でフォトカプラの破損が頻発したのはこういうのに当たったのが原因かもしれない。
そのためやはり上の参考例のようにダイオードを接続しておくのが無難だと思われる。
電磁弁の種類と使い方( 配線編 ) – zubu.jp
※ 昨年サークルにあった電磁弁の例。これらはちゃんと保護回路があった。
KOGANEI F10T0 PN (カタログページp106(PDF表示ではp107))![]()
![]()
マイコンの選定
今回単なるオルタネート動作をさせるためだけにマイコンを使用する。試しにプログラムをArduinoIDEで書いてみたところプログラムサイズは約800Bであった。
そのため、かなり安価なマイコンで十分と思われる。
そこで秋月でマイコンを探してみたところAVRシリーズのAttiny404が好ましかったので今回はこれを使用する。
(AVRシリーズは基本Arduino言語で書くことが出来るようである。あとは単に大学の実験で使用したので使い慣れている。)
ROM:4kB (うち2kBはブートローダーで取られるので注意)
AVRマイコン ATTINY404-SSNR: 半導体 秋月電子通商-電子部品・ネット通販
新世代AVRマイコンの書き込み方法
AVRマイコンのAtmel社は2016年に買収され、それ以降に発売されたAVRシリーズは全てUPDIという3線書き込み方式になっている。それまではICSPという6線式だったのでとても便利になった。
良記事があったのでそのままリンク紹介
【Arduino】新しいATtiny(tinyAVR 0/1/2シリーズ)やmegaAVR 0シリーズなどで採用されたUPDIによる書き込み方法! Arduino IDEで環境を構築する! | ぶらり@web走り書き
なおUPDIの書き込み回路は調べると、ショットキーバリアダイオードを挿入したものや抵抗値が異なるものなど様々あるが、抵抗のみで失敗したといった記事は見つからなかったのでダイオードは無くても良いと思われる。
※ 追記[25/8/15] プルアップ抵抗によるUPDI書き込み不可
上の記事と同様の書き込み回路(抵抗4.7kΩを書き込み回路に挟む)で書き込みを行った結果、次のようなエラーが出て書き込みができなかった。
avrdude: jtagmkII_read_byte(): bad response to read memory command: RSP_NO_TARGET_POWER
試行錯誤の結果、今回はプルアップ抵抗が原因のようであった。
今回、Attiny404の周辺回路はArduinoUnoR3を参考に作成したため、RESETピンは1kΩの抵抗でプルアップしていた。この回路下で上の書き込み回路を使用して書き込みを行うと、下図のように分圧回路が形成され、Pin6の出力がLOW(0V)のときにRESETピンがV=5V*Rp/(Rp+Rupdi)までしか電圧が下がらず通信に失敗する。そのため一度プルアップ抵抗を外してみると確かに書き込みが成功した。今後の設計の際はモジュール側を改良するか書き込み装置側の書き込み回路でどうにか工夫して対処する必要がある。
※ その他補足
- Attiny404のデータシートを見るとRESETピンは最大0.2xVdd以下でLOW判定となるので、上図でRp=10kΩ,Rupdiを1kΩくらいにすれば理論上書き込めるのではないかと思ったのだが、実際にやってみたところ書き込めなかった(上と同じエラー文が出た)。謎。参考:tiny406.pdf-p267-33.8. 外部リセット特性
- 書き込み成功時にも
avrdude: jtagmkII_initialize(): Cannot locate "flash" and "boot" memories in descriptionのようなエラーが出たが、これは無視して良いようである - jtagUPDI以外に下のUSB2Serialを使用してSerialUPDI書き込みを行った。この際、ArduinoIDE上の書き込み装置は「SerialUDPI - 230400 baud」を選択すると成功した。他の書き込み設定装置(ボーレート)だと失敗した。回路はTX→1kΩ→(RX/RESET)の簡潔な回路である。 Serial USB Converter (5V/3.3V selectable) - SWITCH-SCIENCE
書き込み時の逆流について
電流書き込み時はArduinoを別で一台つかってUPDIで書き込むが、その際にArduino側の5Vが本基板の以下のマゼンタ色の部分に印加される。その際、スイッチングレギュレータによって昇圧が行われると電流が不足する可能性が考えられるので、書き込み時には昇圧をOFFにできるようにSW4を手動で切り替えてスイッチングをオフにする
(それでも一応マゼンタ色のラインは書き込み時5Vとなる。そのため当然Type-Cケーブルはアダプターから抜いておくこと。)








