Какой простой способ измерить окружающее освещение?
Я хочу установить светодиодные полосы на свой мотоцикл, например, в качестве стоп-сигнала и указателей поворота. Я использую светодиодные полосы WS2812, которые могут быть очень яркими, особенно при одновременном включении большого количества светодиодов.
Я хочу измерить окружающее освещение, чтобы на ярком солнце я мог зажечь светодиоды, скажем, на 100%. Но ночью, возможно, только на 30% интенсивности. Я хочу обнаружить окружающее освещение, чтобы изменить интенсивность.
Мне не нужно высокое разрешение и мне не нужна высокая скорость. Если окружающий свет измеряется, например, раз в секунду с разрешением 4 бита, этого уже будет достаточно.
Какой датчик освещенности (или фотодиод, или что-то еще) имеет смысл использовать для этого небольшого проекта и как его подключить? Имеет ли смысл использовать более одного датчика освещенности для лучшего определения среднего значения внешней освещенности (на случай, если один датчик находится в тени, а другой на солнце)?
Я нашел эти датчики у китайского поставщика:
https://www.banggood.com/CJMCU-9930-APDS-9930-Digital-Proximity-And-Ambient-Light-Sensor-For-Arduino-p-1103139.html
https://www.banggood.com/GY-49-MAX44009-Ambient-Light-Sensor-Module-For-Arduino-p-1196674.html
Но интерфейс I2C, похоже, излишен для моего простого проекта.
Есть предложения?
@Edgar, 👍3
2 ответа
Лучший ответ:
#define LDRpin A0
unsigned int LDRvalue = 0;
void setup(){
Serial.begin(9600);
}
void loop(){
LDRvalue = analogRead(LDRpin);
Serial.println(LDRvalue);
delay(1000);
}
Вы также можете использовать светодиод. Подключите светодиод и его резистор между двумя контактами порта. Затем, когда вы захотите измерить окружающий свет в своей программе, сделайте следующее:
- Убедитесь, что все подтягивания/тяги вниз отключены.
- Чтобы разрядить светодиод, начните с его включения на короткое время (достаточно тактового цикла), установив контакты в положение «выход» и установив анод на высокий уровень, а катод на низкий.
- Измените полярность, установив анодный вывод на низкое значение, а катодный — на высокое.
- Установите катодный вывод на вход.
- Используя таймер и прерывание по изменению состояния вывода, измерьте время, необходимое для того, чтобы катодный вывод стал низким.
Поскольку емкость светодиода меняется в зависимости от интенсивности света, время, необходимое светодиоду для разряда через резистор и сопротивление штыря, является показателем интенсивности света.
- Объединение кода для нескольких датчиков в одной программе
- Какова работа pulseIn?
- Сколько датчиков может поддерживать один модуль Arduino?
- Получение BPM из данного кода
- Как получить данные о весе с датчиков стеклянных электронных весов для ванной?
- DS18B20 дает высокие показания. Как заставить его вернуть правильную температуру?
- Какой тип разъема использует система GROVE?
- Улавливают ли ультразвуковые датчики прозрачные материалы?