Arduino UNO といえばArduinoの顔と言っても過言ではないくらい有名なマイコンボードです。
私が初めて買ったArduinoはR2の頃でしたが、それからもう十数年経ってるわけです。
そんな Arduino UNO の最新バージョンが満を持して登場しました。
電子工作界隈はいろんな意味で大盛りあがりなので、とりあえず私もその波に乗って買ってみました。
高級感の漂う Arduino UNO Mini Limited Edition を買いました
Twitterのタイムラインで Arduino UNO Mini Limited Edition というなんとも高級そうなArduinoを見かけました。Arduino UNO の1000万個達成記念みたいです。
The Arduino UNO is back! 😮 Introducing the UNO Mini Limited Edition... https://t.co/trLNYPOcV4 pic.twitter.com/Y6uW8wQNkf
— Arduino (@arduino) November 24, 2021
Arduinoでソフトウェアからリセットをかける方法
Arduinoは大抵の基板に搭載されているボタンを押したり、RESETピンをGNDに落としたりすることでリセットをかけることができます。
また、Arduinoにはオートリセット機能があり、プログラムを書き込むときやシリアル通信を開始したときにもリセットされます。
リセットがかかればスケッチの一番最初から実行されますし、変数も初期状態になります。
それをハードウェア上のボタンを押さずにソフトからリセットできるなら便利だと思いませんか?
ここではArduinoでソフトウェアリセットをかける様々な方法を紹介していきます。
Arduino Unoを20MHzで動かす
Arduinoの処理に遅さを感じてしまい、ちょっとでも速いほうがいいと思う人は少なからずいるのではないでしょうか。
水晶振動子を16MHzから20MHzに変えるだけで1.25倍速くなります、微妙・・・?
ライブラリによっては動かないなど、保証はできませんがクロック周波数20MHzで動作させる方法を紹介します。
Arduinoの高速化
Arduinoでダイナミック点灯を制御していると思うのが「Arduinoって遅いなあ」ということです。
私は最初、16MHzだからあまり困ることはないと思っていましたが、最近困ることが多いです。
Arduino UnoをUSB Bからmini-Bに変えてみた
Arduino UnoにはPCと繋ぐためにUSB Bのコネクタがついています。
他の基板にはたいていmini-Bやmicro-Bがついているのに、これだけBタイプなんですよね。
1つの基板だけのためにBタイプのケーブルを出すのは面倒臭いので、コネクタをmini-Bに変えてみました。
Arduinoを内部クロック(8MHz)で動作させる
Arduinoは基本外部クロックで動作しています。
その方が精度が高いですし、速いです。
しかし16MHzで動かすには4.5V以上必要ということで電池の場合、個数が増えてしまいます。
とは言っても3Vでも一応動くんですけどね。
また外付けの水晶と電池で100円ほど制作費が上がってしまいます。
というわけでコンパクトで経済的にするため、内部クロックの8MHzにしてみます。
Arduino Unoでブートローダを書き込む
Arduino Duemilanoveではブートローダを簡単に新しいAVRマイコンに書き込むことができます。
最初から入っている「Arduino ISP」というスケッチを使えば簡単です。
しかし、Arduino Unoではそう簡単にはいきません。
Optibootという新しいブートローダが入ってるかららしいんですが・・・
今までUnoではできないと思っていたんですが違うスケッチを使えばいけるようです。