リレーで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を動かすための手順は、

  Arduino IDE Setup

に書かれています。ほかのボードと同様に、環境設定にある「追加のボードマネージャのURL」を追加する方法です。しかし、それだけでは、書き込みツールのSTM32CubeProgrammerがないというエラー・メッセージが出ます。

  STM32CubeProg

から、STM32CubeProgrammer(2.3.0)ダウンロードし、解凍した中の.exeをインストールしました。現時点のArduino IDEは1.8.11が最新版です。

 スケッチをコンパイルして書き込みは、ほかのボードとは異なります。

  DFU Bootloader Details

に書かれているように、B0端子を3.3Vへつなぎ、リセット・ボタンをクリックすると、デバイスマネージャのUniversal Serial Bus devicesにSTM32 BOOTLOADERが見えます。この状態で書き込みが実行されると、正常に完了します。

前へ

リレーでON (3) Arduino NANO EVERY

次へ

リレーでON (5) Feather nRF52840 Express