Датчик освещенности и плавное изменение яркости подсветки
Можно модифицировать проект так, чтобы в зависимости от уровня освещенности менялась яркость светодиода. В алгоритм мы добавим следующие изменения:
· Яркость лампочки будем менять через ШИМ, посылая с помощью analogWrite() на пин со светодиодом значения от 0 до 255.
· Для преобразования цифрового значения уровня освещения от датчика освещенности (от 0 до 1023) в диапазон ШИМ яркости светодиода (от 0 до 255) будем использовать функцию map().
Пример скетча:
1. #define PIN_LED 10
2. #define PIN_PHOTO_SENSOR A0
3. void setup() {
4. Serial.begin(9600);
5. pinMode(PIN_LED, OUTPUT);
6. }
7. void loop() {
8. int val = analogRead(PIN_PHOTO_SENSOR);
9. Serial.println(val);
10. int ledPower = map(val, 0, 1023, 0, 255); // Преобразуем полученное значение в уровень PWM-сигнала. Чем меньше значение освещенности, тем меньше мощности мы должны подавать на светодиод через ШИМ.
11. analogWrite(PIN_LED, ledPower); // Меняем яркость
12. }
В случае другого способа подключения, при котором сигнал с аналогового порта пропорционален степени освещенности, надо будет дополнительно «обратить» значение, вычитая его из максимального:
1. int val = 1023 – analogRead(PIN_PHOTO_RESISTOR);
Схема датчика освещения на фоторезисторе и реле
Примеры скетча для работы с реле приведены в статье, посвященной программированию реле в ардуино. В данном случае, нам не нужно делать сложных телодвижений: после определения «темноты» мы просто включаем реле, подавай на его пин соответствующее значение.
1. #define PIN_RELAY 10
2. #define PIN_PHOTO_SENSOR A0
|
|
3. void setup() {
4. pinMode(PIN_RELAY, OUTPUT);
5. digitalWrite(PIN_RELAY, HIGH);
6. }
7. void loop() {
8. int val = analogRead(PIN_PHOTO_SENSOR);
9. if (val < 300) {
10. // Светло, выключаем реле
11. digitalWrite(PIN_RELAY, HIGH);
12. } else {
13. // Темновато, включаем лампочку
14. digitalWrite(PIN_RELAY, LOW);
15. }
16. }
Заключение
Проекты с применением датчика освещенности на базе фоторезистора достаточно просты и эффектны. Вы можете реализовать множество интересных проектов, при этом стоимость оборудования будет не высока. Подключение фоторезистора осуществляется по схеме делителя напряжения с дополнительным сопротивлением. Датчик подключается к аналоговому порту для измерения различных значений уровня освещенности или к цифровому, если нам важен лишь факт наступления темноты. В скетче мы просто считываем данные с аналогового (или цифрового) порта и принимаем решение, как реагировать на изменения. Будем надеяться, что теперь в ваших проектах появятся и такие вот простейшие «глаза».
https://www.youtube.com/watch?v=DwCK9VqrjAQ — видео ролик, подключение фоторезистора!
Дата добавления: 2022-06-11; просмотров: 39; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!