2012-08-10
マブチモーターFA-130を1.2Vのエネループで正転/逆転しているところ
0001 /*----------------------- 2012-08-10 --------*/
0002 /* Relay Shield sample FA-130 motor */
0003 /*-------------------------------------------*/
0004
0005 #define RELAY_ON LOW
0006 #define RELAY_OFF HIGH
0007
0008 #define CCW LOW
0009 #define CW HIGH
0010
0011 #define BRAKE HIGH
0012 #define RUN LOW
0013
0014 int RELAY1 = 7;
0015 int RELAY2 = 6;
0016
0017 void setup() {
0018 digitalWrite(RELAY1, RELAY_OFF);
0019 digitalWrite(RELAY2, RELAY_OFF);
0020
0021 pinMode(RELAY1, OUTPUT);
0022 pinMode(RELAY2, OUTPUT);
0023 }
0024
0025
0026 void loop()
0027 {
0028 digitalWrite(RELAY1, CW );
0029 digitalWrite(RELAY2, RUN );
0030 delay(1000);
0031 digitalWrite(RELAY2, BRAKE );
0032 delay(300);
0033 digitalWrite(RELAY1, CCW );
0034 digitalWrite(RELAY2, RUN );
0035 delay(1000);
0036 digitalWrite(RELAY2, BRAKE );
0037 delay(300);
0038 }
上の回路の配線図
上の実態配線図を回路図にするとこうなります。点線は同時に切り替わると言う意味です。
基板表面。arduinoと接続するためのピンヘッダーのさらに外側にはユニバーサル基板ピッチのパターンがあります。赤いタクトスイッチはarduinoのリセットスイッチ。LEDはarduinoのデジタル13番ポートLEDが見えなくなってしまうのでシールド上に増設した物です。
赤丸で囲ってある部品の取付向きに注意して下さい。リレーは他の部品より寿命が短い(電流1Aで10万回)ので交換できるようにしてあります。8カ所の穴のうち2箇所だけが小さく他は大きくなっています。半田吸い取り器で大きい穴の半田を除去するとリレーのピンとパターンが分離します。2カ所だけになれば片方ずつ半田を溶かして引き上げれば取り外すことが出来ます。
裏面はピンヘッダのみ。ピンヘッダはarduinoに重ねた状態で半田付けして下さい。arduinoに重ねたとき裏側に突き出たピンが干渉するようであれば切り詰めて下さい。USBコネクターなどと干渉していたらビニールテープを貼って絶縁して下さい。
部品表
回路図。リレーがON/OFFすると電源に若干のノイズが載ります。もし電源電圧に影響を受けやすいセンサーを使うのであればリレーON/OFFの直後30ミリ秒はセンサーの信号を読み取らないようにして下さい。
ご参考:ブレーキが必要ないときはこんな配線になります
0001 /*----------------------- 2012-08-09 --------*/
0002 /* Relay SHield sample */
0003 /*-------------------------------------------*/
0004
0005 #define RELAY_ON LOW
0006 #define RELAY_OFF HIGH
0007
0008 int RELAY1 = 7;
0009 int RELAY2 = 6;
0010 int RELAY3 = 5;
0011 int RELAY4 = 4;
0012
0013 void setup() {
0014 pinMode(RELAY1, OUTPUT);
0015 pinMode(RELAY2, OUTPUT);
0016 pinMode(RELAY3, OUTPUT);
0017 pinMode(RELAY4, OUTPUT);
0018
0019 digitalWrite(RELAY1, RELAY_OFF);
0020 digitalWrite(RELAY2, RELAY_OFF);
0021 digitalWrite(RELAY3, RELAY_OFF);
0022 digitalWrite(RELAY4, RELAY_OFF);
0023 }
0024
0025
0026 void loop()
0027 {
0028 delay(500);
0029 digitalWrite(RELAY4, RELAY_OFF);
0030 digitalWrite(RELAY1, RELAY_ON);
0031 delay(500);
0032 digitalWrite(RELAY1, RELAY_OFF);
0033 digitalWrite(RELAY2, RELAY_ON);
0034 delay(500);
0035 digitalWrite(RELAY2, RELAY_OFF);
0036 digitalWrite(RELAY3, RELAY_ON);
0037 delay(500);
0038 digitalWrite(RELAY3, RELAY_OFF);
0039 digitalWrite(RELAY4, RELAY_ON);
0040 }