Здравейте! Рових се тези дни на разни места из нета и изрових някой материали и сглобих един код за ардуино, само не знам правилно ли е!
Идеята е 3 ултразвукови сензора да управляват по двойка светодиоди.Имаме 3 сензора и общо 6 светодиода.Два от сензорите палят съответната за тях двойка светодиоди при засечен обект на разстояние от 10 см.Другият сензор от своя страна пали останалите 2 светодиода при засечен обект на разстояние от 20 до 50 см. Идеята ми е сензора да гаси светодиодите при по малко от 20 см, но ако се отдалечи обекта над 50 см, пак да ги загаси.
#define trigPin1 13
#define echoPin1 12
#define led1 11
#define led2 10
#define trigPin2 9
#define echoPin2 8
#define led3 7
#define led4 6
#define trigPin3 4
#define echoPin3 5
#define led5 3
#define led6 2
void setup() {
  Serial.begin (9600);
  pinMode(trigPin1, OUTPUT);
  pinMode(echoPin1, INPUT);
  pinMode(led1, OUTPUT);
  pinMode(led2, OUTPUT);
  pinMode(trigPin2, OUTPUT);
  pinMode(echoPin2, INPUT);
  pinMode(led3, OUTPUT);
  pinMode(led4, OUTPUT);
  pinMode(trigPin3, OUTPUT);
  pinMode(echoPin3, INPUT);
  pinMode(led5, OUTPUT);
  pinMode(led6, OUTPUT);
}
void loop() {
  long duration, distance;
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2)
  digitalWrite(trigPin1, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin1, LOW);
  duration = pulseIn(echoPin1, HIGH);
  distance = (duration/2) / 29.1;
  if (distance < 10) {
    digitalWrite(led1,HIGH);
  digitalWrite(led2,HIGH);
}
  else {
    digitalWrite(led1,LOW);
    digitalWrite(led2,LOW);
  }
  long duration, distance;
  digitalWrite(trigPin2, LOW);
  delayMicroseconds(2)
  digitalWrite(trigPin2, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin2, LOW);
  duration = pulseIn(echoPin2, HIGH);
  distance = (duration/2) / 29.1;
  if (distance < 10) {
    digitalWrite(led3,HIGH);
  digitalWrite(led4,HIGH);
}
  else {
    digitalWrite(led3,LOW);
    digitalWrite(led4,LOW);
  }
long duration, distance;
  digitalWrite(trigPin3, LOW);
  delayMicroseconds(2)
  digitalWrite(trigPin3, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin3, LOW);
  duration = pulseIn(echoPin3, HIGH);
  distance = (duration/2) / 29.1;
if (distance > 20) 
{ 
digitalWrite(led5,HIGH); 
digitalWrite(led6,HIGH);
} 
else if (distance >= 20;distance < 50) 
{ 
digitalWrite(led5,LOW); 
digitalWrite(led6,LOW); 
} 
delay(500);
}