Мисля, че има хора, които са някак неудобни постоянно да се приближават към лампата и да включват светлината, поради което има желание цялата лампа да се включи независимо. Да, има „интелигентни“ гнезда, които се управляват чрез Wi-Fi, има и по-прости, на които можете да зададете времето за реакция, но, разбира се, винаги можете да си купите димер и всъщност не се притеснявате. Но всичко това може да се направи. направете го сами (с изключение на Wi-Fi-изходи), въпреки че тази опция е например за LED ленти, тъй като при управлението на почивката ще има някои нюанси, в лицето на гореспоменатия димер. В нашия случай яркостта в зависимост от околното осветление плавно ще се промени.
Необходими детайли
1., в този случай - Nano, можете да направите нещо по-малко, например Micro
2. Фоточувствителен елемент, тук са резистор (18 KOhm) и фоторезистор (имам SF-2 6A), свързани последователно. Всичко това ще работи почти като тунинг резистор.
3. MOSFET транзистор, по-добре по-слаб, 55 ампера е твърде много (ако консумацията на ток е малка, не се изисква особено мощен транзистор)
4. Разбира се, проводници. Тънка жица е необходима, за да доведе „сензора“ по-близо до прозореца, този, който е по-дебел, е свързан към захранването на лампата и към Arduinka (а самият модул не е необходимо да бъде окачен на дебела жица, така или иначе консумира малко)
Събрание. Стъпка 1
Работата на този вид светлинен сензор трябва да бъде проверена по добър начин, защото се опитах да направя всичко възможно най-евтино и лесно.
За да го направите, имате нужда от резистор и фоторезистор. Свързваме ги последователно, 5V и GND щифтове ще бъдат свързани към началото и края, централният ще бъде свързан към дадения аналогов контакт във фърмуера, неговият номер ще се промени.
Ако има съмнение, че такъв сензор не работи много добре, можете да го проверите с помощта на кода по-долу и монитора на порта.
Код за проверка, ако имате съмнения:
#define potent_pin 0 // Контакт със среден крак, 0 промени към всеки друг аналог
int val;
настройка за невалидност () {
Serial.begin (9600); // Активиране на изхода към порт при 9600 бод
}
void loop () {
val = analogRead (potent_pin);
val = карта (val, 0, 1023, 0, 100); // 100 може да бъде заменен с всяка стойност до 1023 включително
val = ограничение (val, 0, 100); // 100 промяна на стойността, посочена по-горе, ако е била променена
Serial.println (val); // изход към порт монитор
забавяне (30); // забавяне
}
Ако изходните стойности се променят, в зависимост от осветеността, тогава всичко е наред
Събрание. Стъпка 2
Страхотно, сензорът работи. Сега е моментът за създаване на код за генериране на PWM сигнал за контрол на полевата работа.
ВНИМАНИЕ, PWM на ATmega168 / ATmega328 контролери се генерира само на 3, 5, 6, 9, 10 и 11 цифрови пина.
Код 2:
int pwm;
настройка за невалидност () {
}
void loop () {
pwm = analogRead (0);
pwm = карта (pwm, 1023, 0, 0, 255);
pwm = ограничение (pwm, 0, 255);
analogWrite (3, pwm-255); // PWM към третия цифров
}
Числото 255 може да бъде променено в диапазона от 0 до 1023 включително и тази стойност може да бъде променена директно в движение. Както ми показа практиката, максимум 255 е най-добрият вариант, ако е по-малко - гори прекалено ярко през деня, ако е повече - гори по-слабо, тогава когато е необходимо.
Събрание. финал
На щифта 5V и GND спояваме екстремните контакти на нашия резистор, при A0 поставяме средния. Припояваме портата на полевия транзистор към D3, източника към минус мощността от Arduino и захранването, светодиодите до минус към изтичането и плюс на мощността към плюс на източника. Схематично изглежда така:
Не е необходимо да се поставя транзистор с полев ефект върху радиатор, освен ако, разбира се, не се използва мощен, но няма смисъл в особено мощен. Но беше необходима дълга жица, за да доведе сензора до място, където външната светлина не пада, например, зад цвете или навън през прозорец и т.н. Препоръчително е да поставите кондензатор на захранването и източването на полевия транзистор, например, моята лента започна да работи всъщност не е правилно. Arduino може да се захранва не от USB или захранването от телефона, а от лентовото захранване, като подава напрежение от 7-15 волта към GND и VIN.
Случаят е направен от тялото на убитото захранване, където поставих захранването на лентата и Arduino, с споен съединител. Почти прилягаше по размер, но вече беше постоянно на касета.
Затова затворих сензора с ръка:
Но аз не държа ръка върху него:
Къде това може да ви е полезно?
Този дизайн може да помогне при всяка деликатна работа, при която имате нужда от стабилна подсветка, например, ако сте забравили да включите светлината, но лентата е включена. Също така е удобно да го използвате, ако имате разсад някъде за по-нататъшно засаждане на градинското легло. Къде е да го използвате, за да прецените, разбира се, на вас.
Послепис Вярно, че ръцете ми са криви и закрепих неправилно светодиода на веригата.
#define potent_pin 0 // Контакт със среден крак, 0 промени към всеки друг аналог
int val;
настройка за невалидност () {
Serial.begin (9600); // Активиране на изхода към порт при 9600 бод
}
void loop () {
val = analogRead (potent_pin);
val = карта (val, 0, 1023, 0, 100); // 100 може да бъде заменен с всяка стойност до 1023 включително
val = ограничение (val, 0, 100); // 100 промяна на стойността, посочена по-горе, ако е била променена
Serial.println (val); // изход към порт монитор
забавяне (30); // забавяне
}
int pwm;
настройка за невалидност () {
}
void loop () {
pwm = analogRead (0);
pwm = карта (pwm, 1023, 0, 0, 255);
pwm = ограничение (pwm, 0, 255);
analogWrite (3, pwm-255); // PWM към третия цифров
}
На щифта 5V и GND спояваме екстремните контакти на нашия резистор, при A0 поставяме средния. Припояваме портата на полевия транзистор към D3, източника към минус мощността от Arduino и захранването, светодиодите до минус към изтичането и плюс на мощността към плюс на източника. Схематично изглежда така:
Не е необходимо да се поставя транзистор с полев ефект върху радиатор, освен ако, разбира се, не се използва мощен, но няма смисъл в особено мощен. Но беше необходима дълга жица, за да доведе сензора до място, където външната светлина не пада, например, зад цвете или навън през прозорец и т.н. Препоръчително е да поставите кондензатор на захранването и източването на полевия транзистор, например, моята лента започна да работи всъщност не е правилно. Arduino може да се захранва не от USB или захранването от телефона, а от лентовото захранване, като подава напрежение от 7-15 волта към GND и VIN.
Случаят е направен от тялото на убитото захранване, където поставих захранването на лентата и Arduino, с споен съединител. Почти прилягаше по размер, но вече беше постоянно на касета.
Затова затворих сензора с ръка:
Но аз не държа ръка върху него:
Къде това може да ви е полезно?
Този дизайн може да помогне при всяка деликатна работа, при която имате нужда от стабилна подсветка, например, ако сте забравили да включите светлината, но лентата е включена. Също така е удобно да го използвате, ако имате разсад някъде за по-нататъшно засаждане на градинското легло. Къде е да го използвате, за да прецените, разбира се, на вас.
Послепис Вярно, че ръцете ми са криви и закрепих неправилно светодиода на веригата.