Arudinoについて質問です。文字数オーバーの為、質問文は追加で乗せます。以下は作成したプログラムです。 // センサーのピン番号設定 const int trigPin1 = 9; const int echoPin1 = 8; const int trigPin2 = 10; const int echoPin2 = 7; // LEDのピン番号設定 const int greenLED = 3; const int yellowLED = 4; const int redLED = 5; // 音速 (cm/μs) const float speedOfSound = 0.034; void setup() { // センサーピンの設定 pinMode(trigPin1, OUTPUT); pinMode(echoPin1, INPUT); pinMode(trigPin2, OUTPUT); pinMode(echoPin2, INPUT); // LEDピンの設定 pinMode(greenLED, OUTPUT); pinMode(yellowLED, OUTPUT); pinMode(redLED, OUTPUT); // シリアル通信 Serial.begin(9600); } void loop() { // 両方のセンサーの距離を取得 float distance1 = measureDistance(trigPin1, echoPin1); float distance2 = measureDistance(trigPin2, echoPin2); // 両方のセンサーのうち最も近い距離を取得 float minDistance = min(distance1, distance2); // 距離に応じてLEDを制御 controlLED(minDistance); delay(100); // 0.1秒待機 } float measureDistance(int trigPin, int echoPin) { // トリガー信号を送信 digitalWrite(trigPin, LOW); delayMicroseconds(2); digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW); // エコー信号の時間を測定 long duration = pulseIn(echoPin, HIGH); // 距離を計算 float distance = (duration * speedOfSound) / 2; return distance; } void controlLED(float distance) { if (distance > 150) { // 緑色のLEDを点灯 digitalWrite(greenLED, HIGH); digitalWrite(yellowLED, LOW); digitalWrite(redLED, LOW); } else if (distance > 50 && distance <= 150) { // 黄色のLEDを点灯 digitalWrite(greenLED, LOW); digitalWrite(yellowLED, HIGH); digitalWrite(redLED, LOW); } else if (distance > 30 && distance <= 50) { // 赤色のLEDを点滅 digitalWrite(greenLED, LOW); digitalWrite(yellowLED, LOW); digitalWrite(redLED, HIGH); delay(500); digitalWrite(redLED, LOW); delay(500); } else if (distance <= 30) { // 赤色のLEDを点灯 digitalWrite(greenLED, LOW); digitalWrite(yellowLED, LOW); digitalWrite(redLED, HIGH); } }
C言語関連