const int SR1_TRIG = 9;
const int SR1_ECHO = 8;
const int SR2_TRIG = 7;
const int SR2_ECHO = 6;
const int r1 = 10 , g1 = 11, b1 = 12;
const int r2 = 2 , g2 = 3, b2 = 4;
long duration1, duration2;
int distance1, distance2;
void setup() {
pinMode(SR1_TRIG, OUTPUT);
pinMode(SR2_TRIG, OUTPUT);
pinMode(SR1_ECHO, INPUT);
pinMode(SR2_ECHO, INPUT);
pinMode(r1, OUTPUT);
pinMode(g1, OUTPUT);
pinMode(b1, OUTPUT);
pinMode(r2, OUTPUT);
pinMode(g2, OUTPUT);
pinMode(b2, OUTPUT);
Serial.begin(9600);
}
void setColor(int r,int g, int b, int led_num){
if(led_num==1){
analogWrite(r1,r);
analogWrite(g1,g);
analogWrite(b1,b);
}else if(led_num ==2){
analogWrite(r2,r);
analogWrite(g2,g);
analogWrite(b2,b);
}
}
int getDistance(int trig, int echo){
digitalWrite(trig, LOW);
delayMicroseconds(3);
digitalWrite(trig, HIGH);
delayMicroseconds(100);
digitalWrite(trig, LOW);
long duration = pulseIn(echo, HIGH);
int distance = duration * 0.034 / 2;
return distance;
}
void loop() {
distance1 = getDistance(SR1_TRIG, SR1_ECHO);
distance2 = getDistance(SR2_TRIG, SR2_ECHO);
Serial.print("Расстояние1: ");
Serial.print(distance1);
Serial.print("см \n");
Serial.print("Расстояние2: ");
Serial.print(distance2);
Serial.print("см \n");
if (distance1 < 200 && distance2 < 200){
if(abs(distance1 - distance2)<10){
setColor(0,255,0,1);
setColor(0,255,0,2);
Serial.println("Дистанция равна \n");
} else{
if(distance1 < 200){
setColor(255,0,0,1);
} else{
setColor(0,0,255,1);
}
if (distance2 < 200){
setColor(255,0,0,2);
} else {
setColor(0,0,255,2);
}
}
} else if(distance1 >= 200 && distance2 >=200){
blinkLED();
}
delay(500);
}
void blinkLED(){
setColor(0, 0, 255, 1);
setColor(0, 0, 255, 2);
delay(250);
setColor(0, 0, 0, 1);
setColor(0, 0, 0, 2);
delay(250);
}