秋月H8マイコンで開発しようとして、やっぱり結局Arduinoにした理由
会社を辞めてしばらく立って時間的な余裕もできてきたので、20年前やっていた電子工作を再開しようと思い、当時使っていたH8マイコンを再び購入して動かしてみました。
まずは温度センサーをつけて気温を測るデータロガーを作ってみました。
写真下がH8、上がArduinoです。
AKI-H8-3664を使っています。
組み立ててみたら、温度センサーの精度が1°C程度と悪いものでした。
色々調べてみたところ、1/100°C単位で温度を測ることができ、さらに湿度と気圧の測れるセンサーが売られていることに気づきました。
これを使うにはH8ではなくArduinoを使った方が良さそうです。
他にも色々理由があって結局H8はやめてArduinoに乗り換えることにしました。
両者の違いはこんな感じ
H8マイコンとArduinoの違い
データロガーは完成したら外の百葉箱に入れて、屋内のパソコンから制御する予定なのですが、H8
マイコン
楽天 だと電源ケーブルと通信ケーブルの2本を用意する必要があります。
Arduinoなら電源もUSBから得られるので、USBケーブルのみで済みます。
H8マイコンを使い始めた理由は、昔自分が作った自作ライブラリを利用できることだったのですが、Arduinはライブラリーがあまりにもたくさんあって自作ライブラリの日ではありません。やりたいと思ったことも大概のことは既に誰かがやっていて、検索すればコードが簡単に手に入ってしまいます。こうなるとH8を使う理由はなくなってしまいますね...
Arduinの欠点
ちょっと気になるのがシリアル通信の時のリセットです。
Arduinoはシリアル通信を始めると自動的にリセットがかかるような回路が入っています。
データロガーのような用途では、この機能困ってしまいます。検索してみると回避策もあるのですが、ちょっとめんどくさいです。
Arduinoでシリアル通信を始めるとリセットがかかってしまう問題
Arduinoで気温を測ってデータをメモリーに保管しておき、時々パソコンからJavaを使ってデータを読み出すプログラムを書きました
動作試験をしてる時は普通に動くのですが、一旦
Java
楽天 を落として再接続するとArduinoがリセットされてしまいます
よく調べてみると、アルディのはソフトウェアの書き換えをシリアルポートから行う関係で、シリアルポートが接続されるとリセットするようにできているそうです
具体的にはDTR端子がHirghからLowに変わるとリセットパルスが発生してリセットがかかるようになっているとのこと
ソフトウェア的にDTR出力を変わらないように設定すればそれだけでいいのですが、Javaのシリアルライブラリーを使うとどうしてもうまく行きませんでした
ハード的な対策としてはグランドと5ボルトの間を115オームの抵抗でつなぐと良いそうです
http://rin3jp.blogspot.com/2011/02/duemilanoveauto-reset.html
5ボルトの端子は気象センサーに使ってるのでここからテイクを引っ張るのはちょっと面倒くさいですね
結果、普通にリセット回避を諦める事にしましたRAMにある測定データがリセットで消えてしまいますがEpromに入れておけば消えません
ラムの大きさは2KBepromは1キロバイトです少なくなったけどまあ仕方がないかなという感じですねしばらくこれで使ってみます
最終更新日: 2021-10-05 05:11:54