От значений АЦП до люксов

Тема в разделе "Arduino & Shields", создана пользователем Un_ka, 17 дек 2018.

?

Дело?

  1. Дело!

    2 голосов
    100,0%
  2. Не дело...

    0 голосов
    0,0%
  1. Un_ka

    Un_ka Гуру

    Есть фоторезистор , подключйнный по стандартной схеме
    +ф-10ком-gnd
    |
    A0 // а ты понял схему ;)
    На него есть датшит где приведена следующая формула : _20181217_163001.JPG _20181217_163001.JPG
    Также есть сам датшит на фоторезистор и несколько лет назад была тема
    http://forum.amperka.ru/threads/Данные-в-люксах-от-фоторезистора.7592/
    Эта маленькая деталька , лежащая в каждом стартовом наборе , при правильном применении знаний может стать очень крутым датчиком...[​IMG] _20181217_163001.JPG
     

    Вложения:

    Последнее редактирование: 8 апр 2020
  2. parovoZZ

    parovoZZ Гуру

    мне фотодиоды больше по душе.
     
  3. Un_ka

    Un_ka Гуру

    у них значения хоть и линейнЕЕ ,но больше на ик-часть спектра реагируют
    да и разброс не большой . Я такой ставил ,чтобы 100 с АЦП получить лампу настольную в упор приходится ставить . Varef понизить не получится т. к. не только его считываю.
     
  4. Un_ka

    Un_ka Гуру

    Я тут с помощью приложения на телефоне сравнил люксы с датчика телефона и данных АЦП фоторезистора , график что то вроде квадратичного...
     
  5. parovoZZ

    parovoZZ Гуру

    ниже вольта не советую - шумы вылезут. Лучше АЦП в дифф режим переключить и там поиграть коэффициентами усиления.
     
    Un_ka нравится это.
  6. Un_ka

    Un_ka Гуру

    Что за режим такой ? Поискал о нём мало что написано , да и вопрос как переводить значения с фотодиода остаётся открытым , с учётом того что про фоторезистор написано не много.
     
  7. parovoZZ

    parovoZZ Гуру

    http://forum.amperka.ru/threads/Дифференциальный-режим-работы-АЦП.17060/

    http://forum.amperka.ru/threads/Микрофон-МК-и-ничего-лишнего.17072/

    В 328p МК такого нет. В 32u4 есть.
    трансимпедансный усилитель. Переводит ток в напряжение. Я, например, не знаю ни одного решения, как на фоторезисторе принять ИК излучение от ИК пульта. На диоде - запросто.
     
  8. mcureenab

    mcureenab Гуру

    В формулу gamma вместо R100 Ом подставляем результат измерения сопротивления r, а вместо 100 лк, искомый l лк. Решаем уравнение: gamma = lg(R10/r) / lg(l/10).

    Даташит на линейку приборов с очень разными значениями гамма. Поэтому сначала нужно узнать величину гамма.
     
  9. Un_ka

    Un_ka Гуру

    чему тогда равен R10 , 10 ? и l это 1 ?
     
  10. mcureenab

    mcureenab Гуру

    R10 - сопротивление прибора при освещённости 10 лк.
    10 - это те самые 10 лк для которых имеем R10.
    l - искомые люксы.

    По даташиту не понятно, является ли таблица на странице 2 продолжением таблицы на странице 1. Если да, то gamma и R10 можно узнать по типу прибора (Type) из колонок g10/100 и Light resistance, если нет, то только экспериментально.
     
  11. Un_ka

    Un_ka Гуру

    Итак, спустя чуть более года...
    Я таки решил разобраться с фоторезистором.
    Вот что получилось:
    1. Есть ещё один датшит на фоторезтор от Амперки.
    2. Также есть ещё один датшит на схожего вида фоторезтор.
    3. Мерим сопротивление фоторезтора в темноте (под подушкой самое то).
    4. В тёмное время суток, чтобы не мешал остальной свет.
    5. Берём светодиодную лампу цветовой температуры 3000К ( если у вас вдруг окажется лампа цветовой температурой 2850К , как указано в датшите, отпишитесь)
    6. Также качаем на несколько телефонов несколько приложений люксметров и выбираем из них наиболее правдоподобные и удобные.
    7. Делаем замеры сопротивления при 1,10,100 и 1000 люкс, причём фоторезтор должен находиться параллельно экрану телефон, около датчика яркости и не выступать из-за экрана вперёд.
    8. Левая часть данной формулы является коэффициентом, а самая правая это логарифм по основанию десять отношения сопротивления при десяти люксах к сопротивлению при 100 люкс.
    9. Получаем из данной формулы коэффициент гамма , путём подстановки сопротивлений при 10 и 100 , 1 и 10 , 100 и 1000 люкс , при 1и 100 , 10 и 1000 гамма делим на два, при 1и 1000, гамма делим на три. IMG_20200315_192803.jpg
    10. Находим среднее, он и будет нашей гамма в большинстве случаев. Также сравниваем сопротивление при темноте "dark" и сопротивление при 10 люкс с данными предоставленным в датшитах , радуемся если гамма, полученная вами, и представленная в датшите близки.
    11. Две основных формулы будут следующие:
    12. Перевод значений АЦП (analogRead ()) в Омы: R=(d*10000)/(1024-d) , при d=analogRead () , а 10000=10КОм сопротивление делящего резистора
      Код (C++):
      d=analogRead (A0);   float R=(float)((d*10000)/(1024-d));
    13. Перевод Омы в люксы: Lux=10^(lg(r1/R)/gamma) , где gamma - полученный вами коэффициент , а r1 - сопротивление при 1люксе.
      Код (C++):
      #define gamma 0.67
      #define r1 200000
      float Lux = pow(10, (lg(r1/R)/gamma));
    14. podkluch-arduino.png Вот вроде и всё ;).
    p.s. Реализован ли на Ардуино тип double, как на C/C++, то есть с двойной точностью. И возможность создавать динамические массивы.
    Кстати, коэффициент гамма может ходить в стороны на пять сотых (0.05) это от десятков до сотен люкс при тысячах люксах.
     
    Последнее редактирование: 23 мар 2020