Подсветим... ночной путь: подсветка кровати.

Тема в разделе "Глядите, что я сделал", создана пользователем ИгорьК, 25 ноя 2014.

Метки:
  1. dimamult

    dimamult Нуб

    Всем привет . Как-то собрал подсветку ночную в проходной коридорчик , вроде работало ,но увидел вариант из начала темы и понял что я наколхозил лишнего . Я тугой в этой теме , хватило смекалки собрать куски кода и собрать рабочий вариант но у него было два блока и вроде понимал что криво но на тот момент лучше не смог. Ну классика -лучшее враг хорошего . У меня не было модуля датчика света от "Амперки" , а без него у меня не работало даже близко ,пробовал варианты прошивок которые были под эту схему но с разными модулями ...не работает у меня и всё. Даже наоборот не работало . Начал повторять путь Паштета -выяснил что одна ардуина у меня ушаталась во время криворуких сборок . Но даже дождавшись разных модулей освещённости у меня упорно не было нужного результата. И я начал вспоминать что у меня то работало без модулей , с простым фоторезистором и как . По коду вышло ещё проще чем у кого либо тут ))) Понимает день и ночь , поскольку я настроил на ночь тусклый свет ,его не хватает поднять значение фоторезистора выше ночного порога . На движуху реагирует только ночью . Короче вот вариант для обречённых ,которые не осилили варианты из первых страниц )))) .
    код :
    #define fadePin 3 //пин управления мосфет транзистором
    #define foto A0 //вход с фоторезистора


    int pirPin = 2; //пин подключения управляющего сигнала PIR датчика (датчик движения)
    int light; //переменная для хранения состояния света (вкл/выкл)




    void setup(){
    pinMode(pirPin,INPUT); //настраиваем 2 пин как вход для сигналов с датчика
    pinMode(fadePin,OUTPUT); //пин 3на выход для управления транзистором
    light=0; //устанавливаем переменную для первого включения света
    }

    void loop(){
    if (( analogRead (foto) < 200 )&&(digitalRead(pirPin)==HIGH ))//если освещение меньше 200 и сигнал с датчика есть ,т.е. кто-то прошёл
    {
    if(light == 0) // и если свет не был включен
    {
    for(int i=0; i<20; i++) // то плавно включаем свет
    {
    analogWrite(fadePin,i);
    delay(70); // каждые 20 мс увеличение на 1
    }
    light = 1; // и ппередаём значение пременной , что свет включен
    delay (10000);
    }

    }
    else //иначе
    {if(light == 1 ) //если свет включен
    {
    for(int i=20; i>=0; i--) //плавно гасим
    {
    analogWrite(fadePin,i);
    delay(70);
    }
    light=0; //и предаём значение пременной ,что свет выключен
    }
    }
    }
     

    Вложения: