Какой датчик определяет свет?

У меня есть комплект из 37 датчиков, как описано здесь:

  • http://www.instructables.com/id/ Arduino-37-в-1-комплект-датчиков-объяснение/?ВСЕ ШАГИ
  • https://tkkrlab.nl/wiki/Arduino_37_sensors

Я хочу создать простую схему:

  • при обнаружении света — мигать светодиодом.
  • если нет света — ничего не делайте

Среди 37 датчиков я не нашел ничего, связанного со светом/яркостью/люменами...

Можете ли вы посоветовать мне, какой датчик приобрести?


Мне нужен фотоэлемент (светозависимый резистор), как описано здесь: https:/ /learn.adafruit.com/adafruit-arduino-lesson-9-sensing-light/parts ?

, 👍1


4 ответа


3

Под номером 23 в списке стоит фоторезистор, соответствующий модулю KY-018 в вашем комплекте, который вы назвали фотоэлементом (фотоэлемент – это еще один тип датчика, который мои знания). Как следует из названия, фоторезистор — это устройство, изменяющее свое сопротивление в зависимости от количества света, которое оно обнаруживает/получает.

Фоторезистор обычно выглядит так:

Чтобы получить значимые показания от LDR, вам необходимо преобразовать сопротивление в напряжение, которое может считывать АЦП Arduino. Самый простой способ — использовать делитель напряжения: соединение между LDR (фоторезистором) и R1 является узлом для подключите аналоговый контакт, чтобы получить показания, которые будут представлять собой напряжение, пропорциональное напряжению питания (5 В), определяемому соотношением двух сопротивлений.

Упомянутый выше модуль KY-018 уже обеспечивает все необходимое и предоставляет вам 3 контакта: 5V, ANALOG и GND.

schematic

,

Ваш последний абзац полная чушь., @Majenko

Почему ты так говоришь @Маженко? Если он подключит LDR напрямую к 5 В и GND и поместит установку под лампу мощностью 50 Вт, он создаст короткое замыкание, при этом сопротивление LDR быстро станет незначительным при сильном освещении., @Roberto Lo Giacco

Если он подключит LDR напрямую к 5 В и GND, как он вообще сможет получить от него какие-либо показания?, @Majenko

@Маженко, где я упоминал о прочтении? И вообще, имеет ли теперь смысл мой последний абзац? Кроме того, сможет ли он получить показания со своей установки с помощью делителя напряжения? Не говоря уже о том, сколько раз я видел, как новички удивлялись, что их аналоговые показания постоянно получали «1023» или «0» только потому, что они подключили свой вывод к линиям 5 В или GND. В любом случае, я собираюсь обновить этот абзац, но расслабьтесь!, @Roberto Lo Giacco

Нет, это ничуть не лучше. Это не имеет абсолютно ничего общего с потреблением или источником слишком большого тока, а связано с тем фактом, что АЦП Arduino считывает напряжение, а делитель напряжения — это самый простой способ получить переменное напряжение от переменного сопротивления., @Majenko

Я еще раз отредактировал свой ответ, чтобы удалить часть «абсолютно ничего» **нарушающую** права, которая вас, кажется, так волнует, но я считаю, что это по-прежнему действительный общий совет. Тем не менее, у вас нет причин быть настолько агрессивным по отношению ко мне, я пытаюсь помочь людям здесь, и мой совет был не таким, как «засовывайте свои толстые пальцы в розетку», так что остыньте и будьте более добры к своим коллегам-соавторам! Я ценю комментарии и исправления, однако это не оправдывает агрессивных формулировок., @Roberto Lo Giacco

Давайте [продолжим обсуждение в чате](http://chat.stackexchange.com/rooms/46245/discussion-between-roberto-lo-giacco-and-majenko)., @Roberto Lo Giacco


3

Вам нужен «Модуль фоторезистора KY-018». Это номер № 23 «Фоторезистор» на веб-странице instructables.com.

Модуль фоторезистора KY-018

Модуль содержит светозависимый резистор (LDR).

Дополнительную информацию о модуле можно найти по адресу https://tkkrlab.nl/wiki/Arduino_KY-018_Photo_resistor_module.

,

1

Используйте фоторезистор, известный как фотоэлемент. Это переменные резисторы, значения которых меняют в зависимости от интенсивности источника света.

Это датчик KY-018: модуль фоторезистора KY-018.

Вот полезный код:

const int sensor = A0; //declare photocell pin
const int led = 13;

void setup()
{
  pinMode(sensor, INPUT);
  pinMode(led, OUTPUT);
}

void loop()
{
  int val = analogRead(sensor);
  if(val > 512)
  {
    digitalWrite(led, HIGH);
    delay(500);
    digitalWrite(led, LOW);
    delay(500);
  }
}
,

-1

Нет, я бы посоветовал вам не заморачиваться с фотоэлементами, фототранзисторами и светозависимыми резисторами.

Лучшим ответом является модуль обнаружения и измерения света 1750.

Он подключается через I2C и считывает числовое значение, соответствующее количеству воспринимаемого света (люкс).

Очень легко настроить.

Я использую его для измерения освещенности неба, чтобы сравнить его с мощностью моих солнечных батарей.

Вот крутой проект люксметра (в комплекте с инструкциями по подключению и кодом), который использует его для определения света и отображает результаты на 7-сегментном дисплее:

СОЗДАНИЕ ПРОСТОГО ЦИФРОВОГО ИЗМЕРИТЕЛЯ ОСВЕЩЕНИЯ ИСПОЛЬЗОВАНИЕ ARDUINO И ДАТЧИКА BH1750FVI

,

У ОП уже есть светочувствительный датчик. Если вы их не продаете, нет смысла советовать ОП купить еще один модуль., @Edgar Bonet