#define TRIG_PIN 3
#define ECHO_PIN 2
#define LED_PIN 4
void setup() {
Serial.begin(9600);
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
pinMode(LED_PIN, OUTPUT);
}
void loop() {
// Отправляем ультразвуковой импульс
digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
// Измеряем время прохождения сигнала
long duration = pulseIn(ECHO_PIN, HIGH);
// Переводим время в сантиметры
float distance = duration / 58.0;
Serial.print("Расстояние = ");
Serial.print(distance);
Serial.println(" см");
// Если расстояние меньше 4 см
if (distance < 4.0) {
// 0 см -> 100% яркости
// 4 см -> 0% яркости
int brightness = map(distance * 10, 0, 40, 255, 0);
// Ограничиваем значение от 0 до 255
brightness = constrain(brightness, 0, 255);
analogWrite(LED_PIN, brightness);
}
else {
// При расстоянии 4 см и больше светодиод выключен
analogWrite(LED_PIN, 0);
}
delay(50);
}