#define PIN_TRIG 2
#define PIN_ECHO 4
const int ldrPin = A1;
const int ledPin1 = 8;
const int ledPin2 = 12;
const int ledPin3 = 7;
const int tempPin = A0; // Пин термистора
const float BETA = 3950;
const float GAMMA = 0.7;
const float RL10 = 50;
float ldrValue = 0;
void setup()
{
//Фоторезистор
pinMode(ledPin2, OUTPUT);
//Датчик расстояния
pinMode(ledPin1, OUTPUT);
pinMode(PIN_TRIG, OUTPUT);
pinMode(PIN_ECHO, INPUT);
//Датчик температуры
pinMode(ledPin3, OUTPUT);
Serial.begin(9600);
}
void loop()
{
//Фоторезистор
int analogValue = analogRead(ldrPin);
float voltage = analogValue / 1024. * 5;
float resistance = 2000 * voltage / (1 - voltage / 5);
ldrValue = pow(RL10 * 1e3 * pow(10, GAMMA) / resistance, (1 / GAMMA));
Serial.print("LDR Value: ");
Serial.println(ldrValue);
if (ldrValue < 500)
{
digitalWrite(ledPin2, HIGH);
}
else
{
digitalWrite(ledPin2, LOW);
}
//Датчик расстояния
digitalWrite(PIN_TRIG, HIGH);
delayMicroseconds(10);
digitalWrite(PIN_TRIG, LOW);
float distance = pulseIn(PIN_ECHO, HIGH) / 58;
Serial.print("Distance in CM: ");
Serial.println(distance);
if (distance > 200)
{
digitalWrite(ledPin1, HIGH);
}
else
{
digitalWrite(ledPin1, LOW);
}
//Датчик температуры
int analogValueTemp = analogRead(tempPin);
float temperatureC = 1 / (log(1 / (1023. / analogValueTemp - 1)) / BETA + 1.0 / 298.15) - 273.15;
Serial.print("Temperature: ");
Serial.print(temperatureC);
Serial.println(" °C");
if (temperatureC > 25)
{
digitalWrite(ledPin3, HIGH);
}
else
{
digitalWrite(ledPin3, LOW);
}
delay(1000); // Задержка 1 секунда
}