概要
GR-ADZUKIの2個の緑ターミナルブロックはモーターなど大きめの電流を流すことができるものを取り付けられます。基本的な使い方と応用例を紹介します。
準備
ハードウェア
GR-ADZUKI、USBケーブル(マイクロBタイプ)、プラスドライバーを用意してください。
そのほかにLED、ソレノイド、モーターのいずれかを準備します。なお、流せる電流は最大2Aですが、USB接続時は500mAまでですのでモーターは小型のものにしてください。
ソフトウェア
ここでは動作確認用としてS4Aを使用します。まだインストールしていない場合は「Scratch(S4A)で遊ぶ!」を参照してください。
ファームウェア(Rev.2)
LEDやソレノイドだけの場合、本ファームを適用する必要はありません。
GR-ADZUKI用に組み込むS4A用ファームウェアですが、本ファームウェアは初期ファームウェアからPWM周波数を490Hzから20kHzに高めたものになっています。これはモータードライバBD6211FのPWMモードを適用するためです。
- 以下のリンクをクリックしてbinファイルをダウンロードしてください。
adzuki_s4a_rev2.bin
ファームウェアの書き込みについては「Webコンパイラの使い方」に記載されている「6. KurumiWriterのダウンロード」以降を参照してください。
ターミナルブロックの開け閉め
ターミナルブロックは工作に使うプラスドライバーでワイヤーなどを取り付けることができます。まずはターミナルの口を見てください。購入時は以下のように口が開いた状態になっています。
次にプラスドライバーでねじを回してしめてみましょう。ターミナルの口に金属部が下りているのが分かります。これでワイヤーを取り付けることになります。
ターミナルブロックの回路接続と入出力
回路接続を確認します。接続を簡単に示したものは以下の通りです。実際の回路は GR-ADZUKI Schematic (PDF)を参照してください。
要点としてはターミナルブロックには大きめの電流が流せるモータードライバBD6211Fが実装されています。このためモーターのほかに、大きめのLEDやソレノイドなどもコントロールできます。
真理値表(ノーマルモード)
後述のPWM制御モードを使わない場合の真理値表です。PWM制御モードを使用しない場合、スタンバイモードを経由する動作となり、オン・デューティに応じた制御ができない可能性があります(BD6211Fのデータシートより)。
FIN | RIN | OUT1 | OUT2 | 動作 |
---|---|---|---|---|
Low | Low | Hi-Z | Hi-Z | スタンバイ(空転) |
High | Low | High | Low | 正転(OUT1->OUT2) |
Low | High | Low | High | 逆転(OUT2->OUT1) |
High | High | High | High | ブレーキ(停止) |
真理値表(20kHz PWM制御モード使用時)
BD6211Fは20kHz~100kHzのPWM信号を入力することでPWM制御モードになります。
FIN | RIN | OUT1 | OUT2 | 動作 |
---|---|---|---|---|
PWM | Low | High | PWM | 正転(PWM:Low<-->Hi-Z) |
Low | PWM | PWM | High | 逆転(PWM:Low<-->Hi-Z) |
High | PWM | PWM | Low | 正転(PWM:Low<-->High) |
PWM | High | Low | PWM | 逆転(PWM:Low<-->High) |
大きめのLED
LEDを接続して光らせてみます。以下のようにつなげましょう。LEDのアノード(長い線の方)を9ピンにつなげます。
S4Aで「アナログ9の値を255にする」をクリックしてみましょう。
以下のようにLEDが光ります。アナログ値は0~255まで変化できますので、値を変えて試してみてください。
Arduinoスケッチで行う場合は以下のスケッチでLEDを光らすことができます。
#include <Arduino.h>
void setup() {
analogWrite(9, 255);
}
void loop() {
}
ソレノイド
ソレノイドを接続して動作を確認してみます。極性はありません。
S4Aで以下のようにアナログ値を変えるプログラムを組んで実行してみましょう。
以下は0.1秒で繰り返す様子です。
Arduinoスケッチで行う場合は以下のスケッチで0.1秒ごとにソレノイドをON/OFFすることができます。
#include <Arduino.h>
void setup() {
}
void loop() {
analogWrite(9, 255);
delay(100);
analogWrite(9, 0);
delay(100);
}
小型DCモーター
最後にDCモーターを接続して動作を確認してみます。筆者はタミヤのプーリーユニットに使われるモーターで試しています。
DCモーターの回転の速度、方向を変えるためのブロックは以下の通りです。それぞれブロックをクリックして試してみてください。逆転の場合、アナログ値を小さくするほど回転が速くなるので、注意してください。
以下はDCモーターを回している様子です。
以下はArduinoスケッチで行う場合のサンプルです。
#include <Arduino.h>
void setup() {
pinMode(10, OUTPUT);
digitalWrite(10, LOW);
analogWriteFrequency(20000);
}
void loop() {
// Forward rotation
analogWrite(9, 150);
digitalWrite(10, LOW);
delay(1000);
// Slowly
analogWrite(9, 100);
digitalWrite(10, LOW);
delay(1000);
// Stop
analogWrite(9, 0);
digitalWrite(10, LOW);
delay(1000);
// Backward rotation
analogWrite(9, 200);
digitalWrite(10, HIGH);
delay(1000);
// Stop
analogWrite(9, 0);
digitalWrite(10, LOW);
delay(1000);
}