リレーでON (4) Feather STM32F405 Express
この連載では、いろいろな負荷をON/OFFするために機械式リレーを使う事例を取り上げています。用途によっては半導体リレーが便利なこともありますが、多くは機械式リレーが使われます。
第1回で、マイコンはArduino UNOを使いました。CPUはATMega328です。ここではAdafruit Feather STM32F405 Expressを使います。CPUはSTマイクロエレクトロニクスのSTM32F405(Cortex M4)を採用しています。形状はスリムで、USBはType-Cです。Li-Po電池の充電回路とコネクタをもち、1mmピッチの4ピンコネクタQwiic(STEMMA QT)は、I2C接続専用ポートです。
●利用するリレー
第1回と同じく、秋月電子通商で入手して組み立てた、
ドライバ内蔵リレーモジュールキット[AE-G5V-DRV] 通販コード K-13573
です。ブレッドボード上で利用するのに適しています。最大で、交流125Vac-0.5Aもしくは直流24Vdc-1Aという負荷がつなげます。低い直流電圧で利用します。
●駆動のための接続
LEDとリレー回路は、第1回のArduino UNOと同じように配線します。STM32F405の信号レベルはHighが3.3Vです(5Vも使える)。リレーのドライブ回路の入力は2V以上であれば駆動できます。
次の図は、マイコン・ボードのI/Oです。D13はほかのArduinoと同じく赤色のLEDがつながっています。D8は外部にピンが出ていなく、ボード上のNeoPixel LEDにつながっています。D2、D3、D4、D7は見つかりませんでした。A6は外部にピンが出ていなく、バッテリのVbatにつながっています。
接続図です。リレーの駆動は9番ピン、電源は3.3Vで使用します。
スケッチです。上記の配線はしたままでスケッチをコンパイル、実行します。スケッチは以前とは変更し、8番を9番に変えました。
void setup() {
pinMode(9, OUTPUT);
}
void loop() {
digitalWrite(9, LOW);
delay(3000);
digitalWrite(9, HIGH);
delay(3000);
}
コンパイルの途中、LEDは光りませんでした。スケッチの書き込みが終わると、3秒ごとに点滅を繰り返します。リレーの動作するときのカチッという音も聞こえます。
●9番以外のポートの様子
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:
}
上記の空のスケッチを書き込んだ後、テスタで電圧を測定しました。D1(Tx)、D5、D6、D11、D12、D13、D14(SDA)、D24(MISO)、D25(MOSI)番、A0~A5のピンの電圧は次の結果になりました。
- D9、D10は0V
- D1(Tx)、D5、D6、D11、D12、D13、D23(SCK)、D24(MISO)、D25(MOSI)番、A0~A5のピンは、0.2~0.3V
- D0(Rx)、D14(SDA)、D15(SCL)は3.3V
●9番以外のポートの動作
各ポートにリレーをつなぎ、スケッチをそのポートに変更しながら実行しました。リレーの動作音を聞いて確認しました。上記の電圧を測定したポートのすべてが正常に動作しました。
コラム STM32duino
STM32F405ボードでArduino IDEを動かすための手順は、
に書かれています。ほかのボードと同様に、環境設定にある「追加のボードマネージャのURL」を追加する方法です。しかし、それだけでは、書き込みツールのSTM32CubeProgrammerがないというエラー・メッセージが出ます。
から、STM32CubeProgrammer(2.3.0)ダウンロードし、解凍した中の.exeをインストールしました。現時点のArduino IDEは1.8.11が最新版です。
スケッチをコンパイルして書き込みは、ほかのボードとは異なります。
DFU Bootloader Details
に書かれているように、B0端子を3.3Vへつなぎ、リセット・ボタンをクリックすると、デバイスマネージャのUniversal Serial Bus devicesにSTM32 BOOTLOADERが見えます。この状態で書き込みが実行されると、正常に完了します。