/* ULTRASONIC SENSOR */ const int trigPin = 0; const int echoPin = 1; int led1 = 3 ; /* led1 を 3 に割り当てる */ int led2 = 5 ; /* led2 を 5 に割り当てる */ int mot2a = 6 ; /* mot2a を 6 に割り当てる */ int mot2b = 9 ; /* mot2b を 9 に割り当てる */ int mot1a = 10 ; /* mot1a を 10 に割り当てる */ int mot1b = 11 ; /* mot1b を 11 に割り当てる */ int brz = 96; /* brz という変数を 96 */ int svj = 16; /* svj という変数を 16 */ long duration, cm, inches; /* long型で  duratio cm inches という変数を作る */ int broj; /* broj という変数を作る */ void setup() { pinMode(trigPin, OUTPUT); /* 出力 */ pinMode(echoPin, INPUT); /* 入力 */ pinMode(led1, OUTPUT); /* 出力 */ pinMode(led2, OUTPUT); /* 出力 */ pinMode(mot1a, OUTPUT); /* 出力 */ pinMode(mot1b, OUTPUT); /* 出力 */ pinMode(mot2a, OUTPUT); /* 出力 */ pinMode(mot2b, OUTPUT); /* 出力 */ } void loop() { digitalWrite(trigPin, LOW); /* OFF */ delayMicroseconds(5); /* 5 マイクロミリ秒 */ digitalWrite(trigPin, HIGH); /* ON */ delayMicroseconds(10); /* 10 マイクロミリ秒 */ digitalWrite(trigPin, LOW); /* OFF */ pinMode(echoPin, INPUT); /* 入力 にする */ duration = pulseIn(echoPin, HIGH); /* duration という変数に pulseIN の値を代入する */ cm = (duration/2)/29.1; /* cm に 計算した値を代入する */ if (cm < 10) /* cm の値が 10 よりも 小さければ */ { digitalWrite(led1, svj); /* svj の値で デジタル出力 */ digitalWrite(led2, 0); /* OFF */ analogWrite(mot1a, 0); /* OFF */ analogWrite(mot1b, brz); /* brz の値で デジタル出力 */ analogWrite(mot2a, 0); /* OFF */ analogWrite(mot2b, brz); /* brz の値で デジタル出力 */ delay(500); /* 0.5秒間停止する */ digitalWrite(led1, 0); /* OFF */ broj = random(100); /* broj と いう変数 に ランダムの値を代入する */ if (broj > 49) /* brz の値が 49 より 大きいとき */ { analogWrite(mot1a, brz); /* brz の値で デジタル出力 */ analogWrite(mot1b, 0); /* OFF */ analogWrite(mot2a, 0); /* OFF */ analogWrite(mot2b, brz); /* brz の値で デジタル出力 */ } else { analogWrite(mot1a, 0); /* OFF */ analogWrite(mot1b, brz); /* brz の値で デジタル出力 */ analogWrite(mot2a, brz); /* brz の値で デジタル出力 */ analogWrite(mot2b, 0); /* OFF */ } delay(200); } else { analogWrite(led2, svj); /* svj の値で デジタル出力 */ analogWrite(mot1a, brz); /* brz の値で デジタル出力 */ analogWrite(mot1b, 0); /* OFF */ analogWrite(mot2a, brz); /* brz の値で デジタル出力 */ analogWrite(mot2b, 0); /* OFF */ } }