
С помощью ультразвукового датчика измерить расстояние и если это расстояние будет больше 50 см.
светодиод будет гореть при нажатой кнопке, вслучае если кнопка не нажата светодиод должен быть отключен и если расстояниеменьше 50см, светодиод не должен загораться, при условии параллельноговыполнения 1-ого задания (то есть он при включении должен моргать).Arduino код + фото

Ответы на вопрос

// Подключение ультразвукового датчика HC-SR04
const int trigPin = 9;
const int echoPin = 10;
// Подключение светодиода
const int ledPin = 13;
// Подключение кнопки
const int buttonPin = 2;
void setup() {
// Настройка пинов
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(ledPin, OUTPUT);
pinMode(buttonPin, INPUT_PULLUP);
// Задаем скорость передачи данных для монитора порта
Serial.begin(9600);
}
void loop() {
// Измеряем расстояние до объекта
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
long duration = pulseIn(echoPin, HIGH);
int distance = duration * 0.034 / 2;
// Проверяем, была ли нажата кнопка
bool buttonPressed = digitalRead(buttonPin) == LOW;
// Включаем/выключаем светодиод в зависимости от расстояния и нажатия кнопки
if (distance > 50 && buttonPressed) {
digitalWrite(ledPin, HIGH);
} else {
digitalWrite(ledPin, LOW);
}
// Выводим информацию о расстоянии и состоянии светодиода в монитор порта
Serial.print("Distance: ");
Serial.print(distance);
Serial.print(" cm");
if (digitalRead(ledPin)) {
Serial.print(" - LED on");
} else {
Serial.print(" - LED off");
}
Serial.println();
// Мигаем светодиодом при включении
if (millis() < 5000 && millis() % 1000 < 500) {
digitalWrite(ledPin, HIGH);
} else {
digitalWrite(ledPin, LOW);
}
}



Для выполнения данной задачи вам потребуется Arduino, ультразвуковой датчик расстояния (например, HC-SR04), светодиод, резистор, кнопка, и соединительные провода. Вот Arduino код для этой задачи:
cppconst int trigPin = 2; // Пин для подачи сигнала на триггер ультразвукового датчика
const int echoPin = 3; // Пин для приема эхо-сигнала от ультразвукового датчика
const int ledPin = 13; // Пин для светодиода
const int buttonPin = 4; // Пин для кнопки
void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(ledPin, OUTPUT);
pinMode(buttonPin, INPUT_PULLUP);
Serial.begin(9600);
}
void loop() {
// Измерение расстояния с помощью ультразвукового датчика
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
long duration = pulseIn(echoPin, HIGH);
int distance = duration * 0.034 / 2;
// Проверка, нажата ли кнопка
bool buttonPressed = digitalRead(buttonPin) == LOW;
// Логика для управления светодиодом
if (distance > 50 && buttonPressed) {
// Если расстояние больше 50 см и кнопка нажата, включаем светодиод
digitalWrite(ledPin, HIGH);
} else {
// В противном случае выключаем светодиод
digitalWrite(ledPin, LOW);
}
// Параллельное выполнение моргания светодиода
blinkLED();
}
void blinkLED() {
static unsigned long previousMillis = 0;
static bool ledState = LOW;
unsigned long currentMillis = millis();
if (currentMillis - previousMillis >= 500) {
previousMillis = currentMillis;
ledState = !ledState;
digitalWrite(ledPin, ledState);
}
}
Не забудьте подключить все компоненты к Arduino, как показано на схеме ниже:
В этом коде мы используем ультразвуковой датчик для измерения расстояния, кнопку для включения и выключения светодиода, и параллельно выполняем моргание светодиода. Включение светодиода происходит только при условии, что расстояние больше 50 см и кнопка нажата.


Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili