リレーでON (2) Arduino MKRZERO
この連載では、いろいろな負荷をON/OFFするために機械式リレーを使う事例を取り上げています。用途によっては半導体リレーが便利なこともありますが、多くは機械式リレーが使われます。
前回、マイコンはArduino UNOを使いました。CPUはATMega328です。ここでは Arduino MKRZEROを使います。CPUはCortex-M0+のATSAMD21を採用しています。形状はスリムです。違いは、次の記事で解説しました。
●利用するリレー
前回と同じく、秋月電子通商で入手して組み立てた、
ドライバ内蔵リレーモジュールキット[AE-G5V-DRV] 通販コード K-13573
です。ブレッドボード上で利用するのに適しています。最大で、交流125Vac-0.5Aもしくは直流24Vdc-1Aという負荷がつなげます。低い直流電圧で利用します。
●駆動のための接続
前回のArduino UNOと同じように配線します。MKRZEROの信号レベルはHighが3.3Vです。リレーのドライブ回路の入力は2V以上であれば駆動できます。
スケッチです。上記の配線はしたままでスケッチをコンパイル、実行します。スケッチは前回と同じです。
void setup() {
pinMode(8, OUTPUT);
}
void loop() {
digitalWrite(8, LOW);
delay(3000);
digitalWrite(8, HIGH);
delay(3000);
}
コンパイルの途中、LEDは光りませんでした。スケッチの書き込みが終わると、3秒ごとに点滅を繰り返します。リレーの動作するときのカチッという音も聞こえます。
●リレーに流れる電流
リレーのデータシートでは約30mAが流れる仕様でした。実測すると27mAでした。
オシロスコープをACモードにして、電源ラインを観測しました。カチッとリレーの動作音がしたとき、100~200mVの鋭いパルス状のノイズが観測できます。0.1uFの積層セラミック・コンデンサを電源ラインに入れると、このノイズは消えました。ドライバの回路図にはデカプリング用のコンデンサは入っていません。動作電流が小さいリレーなので省略したのかもしれません。
●8番以外のポートの様子
Arduino UNOのI/Oポートは、特別な用途のピン以外では電源が入って、コンパイルが実行され、動作が開始するまでLowレベルです。特別な用途とは、UART(0、1番)です。Arduino UNOとSpresenseで調べた様子はこちらのページにあります。
void setup() {
// put your setup code here, to run once:
}
void loop() {
// put your main code here, to run repeatedly:
}
上記の空のスケッチを書き込んだ後、電圧を測定しました。0~14番、A0~A6のピンは、数十mVのゆらぎのあるピンがありますが、すべて0Vでした。
●8番以外のポートの動作
0~14番にリレーをつなぎ、スケッチをそのポートに変更しながら実行しました。リレーの動作音を聞いて確認しましたが、すべて正しく動いているようです。
アナログのA0~A6も同様に動作しました。