Закажу лёгкий проект

Тема в разделе "Закажу проект", создана пользователем Oksana_Kutel, 9 апр 2017.

  1. Troll

    Troll Гик

    Я может чего-то не догоняю, но почему порог в 800? Аналоговый пин может максимум принять 256.....
     
  2. Troll

    Troll Гик

  3. ostrov

    ostrov Гуру

  4. Troll

    Troll Гик

    Ой.... Извините...
     
  5. Troll

    Troll Гик

    Написал скетч, проверил, все работает, сейчас выложу
     
  6. Troll

    Troll Гик

    Код (C++):
    int light_sensor = A0;//подключения
    int led = 9;
    int sensor_of_moving = 2;

    void setup()
    {
      pinMode(sensor_of_moving, INPUT);//конфигурация пинов
      pinMode(led, OUTPUT);
      Serial.begin(9600);
    }


    void loop()
    {
      int light_medium = 140;//вводим порог (настройте под себя)

      if (analogRead(light_sensor) < light_medium)//и освещение меньше порога
      {
        analogWrite(led, 10);//светим тускло (настройте под себя)
      }
      //ИЛИ
      if (analogRead(light_sensor) > light_medium)//и освещение больше порога
      {
        analogWrite(led, 0);// не светим
      }

      if (digitalRead(sensor_of_moving) == 1)//если кто-то ходит
      {
        analogWrite(led, 255);//светим на всю
        delay(3000);//в течении (можете сами настроить: 1000 милисекунд = 1 секунда)
      }
    }

     
     
  7. ostrov

    ostrov Гуру

    Это делается одним оператором:
    Код (C++):
      if (analogRead(light_sensor) < light_medium)//и освещение меньше порога
      {
        analogWrite(led, 10);//светим тускло (настройте под себя)
      } else {//ИЛИ
        analogWrite(led, 0);// не светим
      }
    А то и:
    Код (C++):
    analogWrite(led, analogRead(light_sensor) < light_mediumn ? 10 :  0);
    И еще я бы паузу добавил между итерациями.
     
    Последнее редактирование: 24 апр 2017
  8. Troll

    Troll Гик

    Возьму на заметку...