自動運転に付き物なのはポイント切替、これもArduinoなら得意分野である。さいわい、実験基板にはモータードライバーが2セット実装されているので、もう1つを利用してポイントを制御してみよう(教科書170ページ)。但し、ご存じのようにポイントマシンは長時間電気を送り続けるとコイルが焼けてしまうので、一瞬だけHIGHにしてすぐLOWに戻す事を忘れてはいけない。教科書ではdelay(200)として0.2秒で処理している。
[ スケッチ:PwmPnt1 ]
void setup() {
pinMode(10, OUTPUT);
pinMode(11, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
}
void loop() {
// 往路
analogWrite(10, 90);
digitalWrite(11, LOW);
delay(3000);
// 停止
analogWrite(10, LOW);
digitalWrite(11, LOW);
delay(5000);
// 復路
analogWrite(11, 90);
digitalWrite(10, LOW);
delay(2180);
// 停止
analogWrite(11, LOW);
digitalWrite(10, LOW);
delay(5000);
// ポイント切替
digitalWrite(5, HIGH);
digitalWrite(6, LOW);
delay(200);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
// 往路
analogWrite(10, 90);
digitalWrite(11, LOW);
delay(3000);
// 停止
analogWrite(10, LOW);
digitalWrite(11, LOW);
delay(5000);
// 復路
analogWrite(11, 90);
digitalWrite(10, LOW);
delay(2180);
// 停止
analogWrite(11, LOW);
digitalWrite(10, LOW);
delay(5000);
// ポイント切替
digitalWrite(5, LOW);
digitalWrite(6, HIGH);
delay(200);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
}