Добрый день форумчане, возникла проблемка с проектом, PIR датчик не реагирует на движение, а по серийному порту проверить не могу. Код ниже: Код (C++): #define pin_pir1 2 #define pin_pir2 3 #define pin_led 4 #define pin_relsign 5 #define pin_relnas 6 #define pin_dim 7 #define pin_buzzer 8 #define pin_echopin 9 #define pin_trigpin 10 #define pin_ogon 11 float sensorValue; int duration, cm; int Flame; void setup() { Serial.begin (9600); pinMode(pin_echopin, OUTPUT); pinMode(pin_trigpin, INPUT); pinMode(pin_pir1, INPUT); pinMode(pin_pir2, INPUT); pinMode(pin_led, OUTPUT); pinMode(pin_relsign, OUTPUT); pinMode(pin_relnas, OUTPUT); pinMode(pin_dim, INPUT); pinMode(pin_buzzer,OUTPUT); pinMode(pin_ogon, INPUT); delay(20000); } void loop(){ //пир 1 int val = digitalRead(pin_pir1); if (val) digitalWrite(pin_relsign, HIGH); else digitalWrite(pin_relsign, LOW); // пир 2 int val1 = digitalRead(pin_pir2); if (val1) digitalWrite(pin_relsign, HIGH); else digitalWrite(pin_relsign, LOW); //дым sensorValue = analogRead(pin_dim); Serial.print("Sensor Value: "); Serial.print(sensorValue); if(sensorValue > 300) { Serial.print(" | Smoke detected!"); digitalWrite(pin_relnas, HIGH); } Serial.println("Gas"); delay(2000); // Ультразвуковой дальномер digitalWrite(pin_trigpin, LOW); delayMicroseconds(2); digitalWrite(pin_trigpin, HIGH); delayMicroseconds(10); digitalWrite(pin_trigpin, LOW); duration = pulseIn(pin_echopin, HIGH); cm = duration / 58; if (cm <= 50) { digitalWrite(pin_led, HIGH); } else { digitalWrite(pin_led, LOW); } Serial.print(cm); Serial.println(" cm"); delay(100); //ИК датчик огня. digitalRead(pin_ogon); Serial.println("Flame:"); Serial.print(Flame); if(Flame == HIGH) digitalWrite(pin_buzzer, HIGH); else digitalWrite(pin_buzzer,LOW); }
Код (C++): //ИК датчик огня. digitalRead(pin_ogon); Serial.println("Flame:"); Serial.print(Flame); if(Flame == HIGH) . . . } Присвоение значения Flame не забыли?