#define TRIG_PIN 3
#define ECHO_PIN 2
#define LED 5
unsigned long oldMillis = 0;
bool ledState = LOW;
void setup()
{
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
pinMode(LED, OUTPUT);
Serial.begin(9600);
}
void loop()
{
int duration, sm;
digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
duration = pulseIn(ECHO_PIN, HIGH);
sm = duration / 58;
Serial.print("Расстояние = ");
Serial.println(sm);
int interval;
if (sm < 50)
{
interval = 200;
}
else if (sm < 100)
{
interval = 500;
}
else if (sm < 150)
{
interval = 1000;
}
// Моргание через millis()
unsigned long newMillis = millis();
if (newMillis - oldMillis >= interval)
{
oldMillis = newMillis;
ledState = !ledState;
digitalWrite(LED, ledState);
}
}