Что-то пошло не так :(

Тема в разделе "Силовая электроника", создана пользователем Oksana_Kutel, 10 апр 2017.

  1. Oksana_Kutel

    Oksana_Kutel Нуб

    Что я неправильно сделала?
    При слабом освещении или когда совсем темно светодиод горит на средней мощности (тускло), когда светло - светодиод не горит. Но как только срабатывает датчик движения (не смотря на то, светло или темно) - светодиод начинает гореть на всю мощь .
    Это скетч.
    #define LIGHT_SENSOR A0 //фоторезистор
    #define PIR_SENSOR 2 //датчик движения
    #define LED 9 //светодиод

    #define LIGHT_HIGH 800 //уровень освещенности
    #define LED_ON 255 //уровни яркости светодиода
    #define LED_LOW 100
    #define LED_OFF 0



    void setup() //настройка
    {
    pinMode(PIR_SENSOR, INPUT_PULLUP);
    pinMode(LED, OUTPUT);
    analogRead(LIGHT_SENSOR);
    }


    void loop() //работа
    {
    if (analogRead(LIGHT_SENSOR) < LIGHT_HIGH) { //темно
    if (digitalRead(PIR_SENSOR)) //датчик движения
    analogWrite(LED, LED_ON); //включим от датчика движения
    else
    analogWrite(LED, LED_LOW); //слабо светим
    }
    else //светло
    analogWrite(LED, LED_OFF); //выключен и не включаем
    }
     

    Вложения:

    • 2.PNG
      2.PNG
      Размер файла:
      112,7 КБ
      Просмотров:
      791
  2. serg_admin

    serg_admin Гик

    Код (C++):
    void loop() //работа
    {
    if (analogRead(LIGHT_SENSOR) < LIGHT_HIGH)
    Думаю имелось ввиду
    Код (C++):
    void loop() //работа
    {
    if (analogRead(LIGHT_SENSOR) < LIGHT_LOW)
     
  3. serg_admin

    serg_admin Гик

    Кстати Вы проверяли сколько возвращает analogRead при нужном Вам освещении?
     
  4. AlexU

    AlexU Гуру

    В течении какого интервала времени светодиод должен светиться после срабатывания датчика движения?
     
  5. sslobodyan

    sslobodyan Гик

    На панельке ответа есть кнопочка "Код". Вставляйте текст через эту кнопочку.
    Ну и вот пример как проще разобраться с работой программы. По ходу выполнения в терминал шлется лог работы. Проверяйте свой скетч
    Код (C++):
    #define LIGHT_SENSOR A0 //фоторезистор
    #define PIR_SENSOR 2 //датчик движения
    #define LED 9 //светодиод

    #define LIGHT_HIGH 800 //уровень освещенности
    #define LED_ON 255 //уровни яркости светодиода
    #define LED_LOW 100
    #define LED_OFF 0

    void setup() //настройка
    {
      pinMode(PIR_SENSOR, INPUT_PULLUP);
      pinMode(LED, OUTPUT);
      analogRead(LIGHT_SENSOR);
      Serial.begin(9600);
    }

    void loop() //работа
    {
      int svet = analogRead(LIGHT_SENSOR); // запоминаем уровень освещенности
      Serial.print('Уровень '); Serial.print(svet); // выводим значение
      if (svet < LIGHT_HIGH) { //темно
        Serial.print(' - темно');
        if (digitalRead(PIR_SENSOR)) { //датчик движения
          Serial.print(' - сработал датчик - полный свет');
          analogWrite(LED, LED_ON); //включим от датчика движения
        }
        else {
          Serial.print(' - датчик молчит - слабо светим');
          analogWrite(LED, LED_LOW); //слабо светим
        }
      }
      else { //светло
        Serial.print(' - светло - свет выключен');
        analogWrite(LED, LED_OFF); //выключен и не включаем
      }
      Serial.println();
    }