const int ldrPin = A0; // Пин фоторезистора
const int tempPin = A1; // Пин температурного датчика
const int trigPin = 9; // Пин TRIG ультразвукового датчика
const int echoPin = 8; // Пин ECHO ультразвукового датчика
const int ledPin2 = 12; // Пин для второго светодиода (освещенность)
const int ledPin3 = 13; // Пин для третьего светодиода (расстояние)
const int ledPin4 = 11; // Пин для четвертого светодиода (температура)
int ldrValue = 0; // Переменная для хранения значения освещенности
long duration; // Длительность импульса от ультразвукового датчика
int distance; // Измеренное расстояние
float temperatureC; // Температура в градусах Цельсия
void setup() {
pinMode(ledPin2, OUTPUT); // Настройка пина второго светодиода как выхода
pinMode(ledPin3, OUTPUT); // Настройка пина третьего светодиода как выхода
pinMode(ledPin4, OUTPUT); // Настройка пина четвертого светодиода как выхода
pinMode(trigPin, OUTPUT); // Настройка пина TRIG как выхода
pinMode(echoPin, INPUT); // Настройка пина ECHO как входа
Serial.begin(9600); // Инициализация серийного порта
}
void loop() {
// Чтение значения с фоторезистора
ldrValue = analogRead(ldrPin);
Serial.print("LDR Value: ");
Serial.println(ldrValue);
// Управление вторым светодиодом в зависимости от освещенности
if (ldrValue < 500) {
digitalWrite(ledPin2, HIGH); // Включаем второй светодиод
} else {
digitalWrite(ledPin2, LOW); // Выключаем второй светодиод
}
// Измерение расстояния с помощью ультразвукового датчика
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = duration * 0.034 / 2; // Перевод времени в расстояние
Serial.print("Distance: ");
Serial.println(distance);
// Управление третьим светодиодом в зависимости от расстояния
if (distance < 20) { // Если объект ближе 20 см
digitalWrite(ledPin3, HIGH); // Включаем третий светодиод
} else {
digitalWrite(ledPin3, LOW); // Выключаем третий светодиод
}
// Чтение температуры с аналогового температурного датчика
int tempValue = analogRead(tempPin);
float voltage = tempValue * 5.0 / 1024.0; // Преобразование значения в напряжение
temperatureC = (voltage - 0.5) * 100; // Преобразование напряжения в температуру
Serial.print("Temperature: ");
Serial.print(temperatureC);
Serial.println(" C");
// Управление четвертым светодиодом в зависимости от температуры
if (temperatureC > 300) { // Если температура выше 300°C
digitalWrite(ledPin4, HIGH); // Включаем четвертый светодиод
} else {
digitalWrite(ledPin4, LOW); // Выключаем четвертый светодиод
}
delay(1000); // Задержка 1 секунда
}