Тема 7: Эксперимент. Простая система парковки.
Ультразвуковой датчик. Если расстояние меньше 50, загорится красный светодиод, раздастся звуковой сигнал и двигатель будет запущен.
Компоненты:
Датчик расстояния
Двигатель
Пьезо
LED


https://drive.google.com/file/d/1hoUXp7uy2jq20IFyLq2krGSUe-IHvI8U/view?usp=sharing
#define ECHO_PIN 7
#define TRIG_PIN 8
int switchPin = 2; // лулит1
int motor1Pin1 = 3; // пин 2 (L293D)
int motor1Pin2 = 4; // пин 7 (L293D)
int enablePin = 9; // пин 1 (L293D)
const int buzzerPin = 10;
int distance = 1;
int duration;
int LedPin = 13;
bool systemEnabled = false;
void setup() {
pinMode(ECHO_PIN, INPUT);
pinMode(TRIG_PIN, OUTPUT);
pinMode(LedPin, OUTPUT);
pinMode(buzzerPin, OUTPUT);
Serial.begin(9600);
// входы
pinMode(switchPin, INPUT);
// выходы
pinMode(motor1Pin1, OUTPUT);
pinMode(motor1Pin2, OUTPUT);
pinMode(enablePin, OUTPUT);
// активировать мотор1
digitalWrite(enablePin, HIGH);
}
void loop() {
// Проверка состояния кнопки для включения/выключения системы
if (digitalRead(switchPin) == HIGH) {
systemEnabled = !systemEnabled;
delay(300); // задержка для предотвращения дребезга кнопки
}
if (systemEnabled) {
digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
duration = pulseIn(ECHO_PIN, HIGH);
distance = duration / 58;
Serial.println(distance);
if (distance < 50) {
digitalWrite(LedPin, HIGH);
tone(buzzerPin, 1000); // Включить сигнал тревоги
digitalWrite(motor1Pin1, HIGH); // пин 2 (L293D) HIGH
digitalWrite(motor1Pin2, LOW); // пин 7 (L293D) LOW
} else {
digitalWrite(LedPin, LOW);
noTone(buzzerPin); // Выключить сигнал тревоги
digitalWrite(motor1Pin1, LOW); // пин 2 (L293D) LOW
digitalWrite(motor1Pin2, LOW); // пин 7 (L293D) LOW
}
} else {
digitalWrite(LedPin, LOW);
noTone(buzzerPin); // Выключить сигнал тревоги
digitalWrite(motor1Pin1, LOW); // пин 2 (L293D) LOW
digitalWrite(motor1Pin2, LOW); // пин 7 (L293D) LOW
}
}