Проблема с проектом, pir не реагирует на движение.

Тема в разделе "Arduino & Shields", создана пользователем Аббадон разоритель миров, 24 авг 2020.

Метки:
  1. Добрый день форумчане, возникла проблемка с проектом, 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);
    }
     
  2. parovoZZ

    parovoZZ Гуру

    ну раз датчик не реагирует, значит его надо заменить.
     
  3. ИгорьК

    ИгорьК Гуру

    upload_2020-8-24_14-0-2.png
    Тут со скобочками "{" и "}" все нормально?
     
  4. Airbus

    Airbus Радиохулиган Модератор

    Проверить можно так например
     
  5. fogary

    fogary Гик

    Код (C++):
    //ИК датчик огня.

    digitalRead(pin_ogon);
    Serial.println("Flame:");
    Serial.print(Flame);

    if(Flame == HIGH)
      . . .
    }
    Присвоение значения Flame не забыли?