全エンジニアに告ぐ!便利なツールは使い倒せ!
ArduinoやRaspberryPiなどのマイコンボードがどんどん進化してます!ロボットキットもアマゾンでポチれます.電子工作花盛りですよね!?ねっ.というわけで,子供も手を離れたおっさんエンジニアは,週末DIYとして電子工作に勤しんでいます.
ArduinoでPWM電圧値取得
Arduinoを使って,アナログ入力A0ピンにPWM信号を取り込むことをやっていました.
5VでPWMのデューティー比25%の電圧をテスターで測定すると1.25V,デューティー比75%なら3.75Vとなります.
確かにArduinoUNOには10ビットのADコンバータを内蔵していて,0〜5Vならそれを0〜1023の分解能でディジタル変換した値として読み込んでくれます.
しかし,デューティー比を連続して変更したりすると,PWM信号はあくまで0(Low)/5(High)のパルス電圧がArduinoに入力されるので,デューティー比に応じた電圧値とは異なる値として取り込まれてしまう場合があります.
上図の左側の場合,A0に256という値が取り込まれて欲しいのだが,Arduinoがデータを拾ったタイミングによっては,値が大きくばらつく(シリアルモニタやシリアルプロッタで見てみるとよく分かります)といったことが起きます.
パルス信号の平滑化
そこで,Arduinoに入力されるPWM信号をハードウェア的に平滑化する,つまりRCローパスフィルターをArduinoのアナログ入力ピン(A0)の前に挿入することを考える.
ブレッドボードを用いて,抵抗とコンデンサ(極性に注意)を繋げた回路を作成する.
その場合,RとCにそれぞれどの程度の抵抗値とコンデンサを設定するのが適切なのかを検討する必要があります.
いちいち,プログラムを書きますか?エクセルを使ってみます?いずれも周波数特性や時定数を知りたいだけなのにそれなりに時間を費やさないといけませんよね?
ローパスフィルター計算ツール
そんな時に大活躍のお助けツールサイトがあります!
OKAWA Electric Designのサイトで抵抗R値とコンデンサC値を入力して,計算ボタンを押すだけです!
計算結果
1.周波数解析(ボード線図表示)
2.過渡解析(ステップ応答線図表示)
そしてなんといっても立ち上がり時間を瞬時に算出してくれるのがありがたい.
図の→90%を63.2に変更すれば時定数を求めることもできる.
ねっ,めちゃくちゃ便利なサイトでしょ.
OKAWA Electric Designさん,ありがとうございます!
Arduinoを使ったDIY電子工作捗るぞ!