
Arduino nanoで実験再開、一歩前進
この前、ナゼか分からないがArduino unoが死んでしまい、実験が途中でできなくなってしまった。
ジャンクボックス内をあさってみたら、Arduino nanoが見つかったので、それを使用して実験環境を再構築をしてみました。
とりあえず暫定的に作った環境では、ナゼかCOMポートの認識がおかしくなり、かなり不安定でCOMポートがオープン出来なくなることがしばしば発生した。
いろいろ調べていくと、Arduino IDEを幾つも開き、尚且つシリアルコンソールをオープンしたままだと、オープンしているIDEがCOMポートを占有してしまうので、ほかのIDEからCOMポートが開けなくなるようだ。
分かってしまえば当たり前と言えば当り前のことなんですけどね。そういうことに気がつくまで結構時間がかかるんですよ。
こういうのを誰かに聞いて対処すれば、直ぐに分かり問題ないのかもしれませんが、人から聞いた事は直ぐに忘れてしまうんです。自分で調べたことは、記憶と経験として残るので何時までも忘れないんですよ。
だから、何時も自分でネットを使ったりして調べるんですよね。
COM問題も解決し、Arduino unoで動かしていたスケッチを一部修正して使えるようにしました。時刻設定まではしていないので、適当な時間になってしまっています。

この前、unoを壊した要因の1つになっていたACS712も上手く使えるようになり、ちゃんと電流表示もうまく出来るようになった。
今回は失敗しないように、Copilotの助けも借りてスケッチを作りました。
実験電源を使用して、最大負荷時に3.3Aも流れるFANを使って実験です。
実際にFANを接続して動かしてみると、Arduino nano出表示する値は1.29Aと成っています。
しかし、実験電源の電流表示は2.34AですのでACS712の測定結果にはズレがあるようです。

ズレが有るのは分かりましたが、電流の大きさにより表示するバー表示も何だか自分が求めているモノとは違うみたいです。
但し、Copilotを使用してスケッチを作っただけ有り、コンパイル時のエラーは発生しませんでした。流石AIですね。
今度は、実際のACS712の測定値と実験電源の電流値の違いについて、Copilotに確認をお願いすると、どうやらACS712はオフセットを持っているようなので、このオフセット分を実際の入力値から引いて上げないと本当の値にはならないとの回答でした。
それではオフセットの計算スケッチを教えてくれるように頼むと、簡単にスケッチを教えてくれました。
const int analogInPin = A0;
int sensorValue = 0;
float current = 0;
float offset = 0;
void setup() {
Serial.begin(9600);
// オフセット電圧の測定
long sum = 0;
for (int i = 0; i < 1000; i++) {
sum += analogRead(analogInPin);
delay(1);
}
offset = sum / 1000.0;
Serial.print("Offset: ");
Serial.println(offset);
}
void loop() {
sensorValue = analogRead(analogInPin);
current = (sensorValue - offset) * 5.0 / 1024.0 / 0.185; // 0.185はACS712の感度(5Aモデルの場合)
Serial.print("Current: ");
Serial.print(current);
Serial.println(" A");
delay(500);
}
こんなスケッチを瞬時に教えてくれるので、本当にAIって便利ですね。これならプログラミングを知らなくても、簡単にコードを書くことができます。
しかし、このコードを書いて貰うために実際にどのような動作をして、どの値をどんな風に表示するなど、事細かに仕様を教える必要があるので、まったくプログラミング知識がなくても大丈夫とは行かないかも知れませんね。
またコンパイルエラーがなくても、思った通りに動かなかったとき、修正をAIに依頼するに当たっても、何処がどのように違うのかを教える必要がありますから。
とは言え、0から自分でコードを書かなくても、ベースを作成してくれるのは非常に助かりますね。
未だ途中ですが、もう少しデバッグを進めて行こうかと思っております。
プログラムってデバッグに入ると、時間を忘れてのめり込んでしまうのが怖いですね。のめり込みすぎると、飲食まで忘れてしまいますから。
いいなと思ったら応援しよう!
