Датчик ультрафиолетового излучения GY-ML8511
Датчик ультрафиолетового излучения GYML8511 — является аналоговым модулем, способным определять интенсивность ультрафиолетового излучения в диапазонах UV-A (ближний: 400-315 нм) и UV-B (средний: 315-280 нм).
Характеристики
- Входное напряжение питания (VIN): 5В;
- Входное напряжение питания (3V3): 3,3В;
- Потребляемый ток: до 2 мА (номинально 1 мА);
- Диапазон измеряемого излучения: 400 – 280 нм (UV-A и UV-B);
- Время стабилизации после подачи питания: до 2 мс;
- Максимальный ток на выходе (OUT): до 5 мА;
- Рабочая температура: -20 – +70 °С;
- Температура хранения: -30 – +85 °С;
- Габариты: 12х13,5 мм;
- Вес: 2 гр;
Подключение
Для удобства подключения к Arduino воспользуйтесь Trema Shield, Trema Power Shield, Motor Shield и т.д.
- Датчик имеет 5 выводов:
- OUT – выход напряжение которого прямо пропорционально интенсивности ультрафиолетового излучения.
- VIN – вход напряжения питания, от +4 до +6 В (номинально 5 В) постоянного тока.
- GND – вход питания (общий).
- 3V3 – вход напряжения питания, от +2,7 до +3,6 В (номинально 3,3 В) постоянного тока.
- EN – вход разрешения (подтянут внутренним сопротивлением модуля). При установке в уровень логического «0» модуль перестанет регистрировать УФ излучение.
Выход «OUT» подключается к любому выводу Arduino (на схеме подключён к выводу A0). Вход «EN» можно оставить не подключённым, т.к. он подтянут внутренним сопротивлением модуля.
Напряжение питания подаётся на вывод «VIN» (5 В) или на вывод «3V3» (3,3 В)
Питание
- Модуль можно запитать двумя способами:
- от напряжения 5 В (допускается 4…6 В) постоянного тока, подав его на выводы «GND» и «VIN» модуля.
- от напряжения 3,3 В (допускается 2,7…3,6 В) постоянного тока, подав его на выводы «GND» и «3V3» модуля.
Подробнее о датчике
Модуль построен на базе чипа ML8511 в который входит ультрафиолетовый светодиод и операционный усилитель. Дополнительно в модуле установлен стабилизатор напряжения LM6206-3.3 n3 для питания чипа от напряжения 5 В через вход VIN.
Работа чипа ML8511 основана на фотовольтаическом эффекте: рабочая поверхность ультрафиолетового светодиода поглощает часть электромагнитного излучения УФ диапазона UV-A и UV-B, благодаря чему электроны получают энергию фотонов и переходят на внешний энергетический уровень, где становятся свободными. Неравномерное увеличение количества свободных электронов приводит к перераспределению зарядов, что вызывает возникновение тока, который усиливается операционным усилителем.
Уровень напряжения на выходе «OUT» прямо пропорционален силе тока протекающего через ультрафиолетовый светодиод, а следовательно, интенсивности ультрафиолетового излучения.
Примеры
Вывод значений в монитор порта
void setup(){ Serial.begin(9600); // Инициируем передачу данных в монитор последовательного порта на скорости 9600 бит/сек
}
void loop(){ Serial.println(analogRead(A0)); // Читаем показания датчика с вывода A0 и отправляем их в монитор последовательного порта delay(500); // Устанавливаем задержку на пол секунды
}
Комплектация
- 1х Датчик УФ-излучения GY-ML8511;
- 1х Соединитель типа “ПАПА-ПАПА”;
Ссылки
Источник: http://iarduino.ru/shop/Sensory-Datchiki/datchik-ultrafioletovogo-izlucheniya-gy-ml8511.html
Использование светодиода как оптического сенсора (фотоприемника). Мой самодельный радиометр для измерения излучения Солнца
Светодиод как источник излучения
Светодиод (англ. LED) чаще всего используется в качестве излучателя света (при прямом смещении pn-перехода, англ. forward biased).
Кристалл светодиода излучает свет под определенными углами, так как из-за явления полного внутреннего отражения световые частицы могут покидать кристалл только в пределах конусов вывода излучения (англ.
escape cones) – верхнего и боковых (для прямоугольного кристалла):
Можно рассмотреть диаграмму его излучения под различными углами, расположив светодиод параллельно экрану:
Как видно, присутствует сильный верхний луч от верхнего конуса, усиленный фокусирующим эффект корпуса, и более слабые боковые лучи, обусловленные боковыми конусами. Можно рассмотреть центральный луч подробнее, расположив светодиод перпендикулярно экрану:
Светодиод как приемник излучения
Светодиод может использоваться и в качестве фотоприемника (при обратном смещении pn-перехода, англ. reverse biased). Впервые этот эффект исследовал в 1970-е годы Forrest M. Mims III (forrestmims.
org), он описывается в многочисленных публикациях. С помощью этого эффекта можно, например, подстраивать яркость свечения индикаторного светодиода в зависимости от уровня освещения.
Forrest M.
Mims III
К преимуществам светодиода как оптического сенсора можно отнести его низкую стоимость и достаточо узкую полосу пропускания, не требующую применения дополнительных оптических фильтров. К недостаткам можно отнести влияние температуры на результаты измерения.
Для применения светодиода в качестве датчика света на него необходимо подать обратное напряжение смещения (анод – “минус”, катод – “плюс”). Напомню, что у светодиода длинный вывод – анод, короткий – катод.
Фотоны, падающие на pn-переход светодиода, вызывают генерацию фототока (англ. photocurrent)), который весьма невелик (светодиод не предназначен для генерации большого фототока):
Имеются данные, что при прямом падении солнечного света на 5-мм красный светодиод (1000 мКд при 20 мА) фототок составляет 20 мкА.
Работающий как фотоприемника светодиод можно представить в виде параллельного соединения источника фототока IF и емкости C (10…15 пФ):
Следует отметить, что в таком режиме светодиод будет реагировать на световое излучение с длиной волны, равной или меньшей, чем длина волны излучения светодиода (например, у желто-зеленого светодиода она составляет 555 нм, а максимум чувствительности такого светодиода как фотоприемника приходится на 525 нм с шириной диапазона чувствительности около 50 нм, а красный светодиод является хорошим детектором оранжевого света):
Красные, оранжевые и желтые светодиоды основаны на AlGaInP, синие, зеленые – на InGaN. При этом необходимо учесть, что влияние оказывают и фильтрующие свойства корпуса светодиода.
Я провел ряд опытов, которые показали, что красный светодиод не реагирует на излучение инфракрасного светодиода, зеленый – на излучение инфракрасного и красного сетодиодов и красного лазера, белый – на излучение инфракрасного, красного и зеленого сетодиодов и красного и зеленого лазеров.
Оценить световой поток, падающий на светодиод, можно двумя способам:
1 – измерение фототока
2 – использование светодиода как конденсатора в режиме заряда/разряда (фактически выполняется интеграция фототока по времени)
Измерение фототока
Измерять фототок можно непосредственно или с помощью измерения напряжения на резисторе R.
Использование заряда/разряда емкости светодиода
В этом варианте светодиод через токограничивающий резистор подключается к выводу микроконтроллера через токоограничивающий резистор. Вывод переключается в режим “выхода” для заряда емкости светодиода, а затем в режим “входа” для измерения напряжения светодиода в процессе разряда. При этом оппределяется длительность разряда T до порогового напряжения:
Ультрафиолетовое излучение Солнца
УФ-излучение Солнца делится на три области:
UVA – 315…400 нм – на земной поверхности в 15…20 раз превышает UVB
UVB – 280…315 нм – 90 % поглощается атмосферой, изменения уровня UVB сильно ощущаются людьми, причем сам уровень зависит от высоты, расположения Солнца в небе, объема озона в атмосфере и облачного покрова
UVC – 100…280 нм – почти всё поглощается атмосферой
Оценка интенсивности солнечного излучения, проходящего через атмосферу
Для измерения передачи солнечного света через земную атмосферу применяются два вида инструментов:
- инструменты для измерения излучения всего неба (англ. full-sky instruments) – радиометры (широкополосные радиометры – пиранометры или солариметры);для радиометров реакция детектора на прямое облучение источником света должна быть пропорциональна косинусу зенитного угла источника света (англ. cosine response).
- инструменты для измерения прямого солнечного излучения (англ. direct sunlight instruments) – солнечные фотометры (широкополосные фотометры – пирогелиометры).
В обоих этих категориях применяются инструменты для измерения излучения в широком диапазоне длин волн или только для заданной длины волны.
Forrest M. Mims III построил солнечный фотометр (англ. Sun photometer) на основе светодиодов для измерения оптической плотности атмосферы. Это позволяет оценить содержание аэрозолей, озона и водяного пара в атмосфере.
Сейчас подобные детекторы широко применяются для измерений в близком инфракрасном, видимом и ультрафиолетовом диапазонах.
Мой самодельный радиометр
Я сделал свой простейший зенитный узкополосный радиометр (англ.
zenith-looking narrow-band radiometer), подключив батарею “Крона” через интегральный стабилизатор 78L05 (выходное напряжение составило около 5 В) и резистор сопротивлением 4,7 МОм к “белому” светодиоду (5 мм):
Светодиод белого свечения на самом деле содержит “синий” светодиод (на основе InGaN или GaN с длиной волны излучения 465 нм), что делает его восприимчивым к лучам синего, фиолетового и ультрафиолетового света. Это позволяет оценить интенсивность УФ-излучения Солнца. Сам светодиод я поместил в непрозрачную трубку, оставив открытой только верхнюю полусферу корпуса.
Я измеряю напряжение на резисторе R, пропорциональное фототоку светодиода, цифровым мультиметром на пределе 2 В.
Мой радиометр измеряет излучение неба в зените (англ. zenith sky radiance (ZSR)).
Общая интенсивность излучения (англ. irradiance) складывается из двух составляющих: $T = S + D$ , где $S$ – прямое излучение Солнца, $D$ – рассеянное излучение (от неба). Чем меньше высота Солнца (больше его зенитный угол $z$), тем длинее путь, проходимый солнечными лучами в атмосфере и тем меньше $S$.
При закрытом облаками Солнце $S$ уменьшается (при плотной облачности – весьма заметно), но при этом возрастает $D$, причем уровень этой составляющей при облачности может превышать уровень для ясного неба.
Я расположил светодиод вертикально на открытом месте в июльский день:
Я получил такие результаты:
При закате 4 августа 2017 года при практически безоблачном небе напряжение на резисторе составило 3 мВ.
При поднесении датчика моего фотометра практически вплотную к светящейся КЛЛ мощностью 23 Вт показания напряжения на составляют 0,20…0,25 В, что соответствует фототоку 43…53 нА.
Продолжение следует
Источник: https://acdc.foxylab.com/leds
Подключение детектора радиации к arduino
Одна из главных опасностей ионизирующего излучения состоит в том, что человек своими органами чувств не способен его никак зарегистрировать и даже получение дозы превышающей смертельную скажется спустя часы после облучения.
Это приводит к тому, что радиация идеально укладывается в образ незримой смерти, которая пугает многих людей гораздо больше других вполне реальных опасностей [1-2].
Так что этой угрозе часто придают больше внимания, чем она того заслуживает на практике.
Таким образом, приобретение, либо конструирование, специального прибора для измерения уровня радиации является весьма актуальным. Индикатор радиоактивности позволит точно установить стоит ли опасаться того или иного предмета. Для радиолюбителей в шкафах, у которых можно порой найти весьма неожиданные артефакты, это особенно актуально.
В простейшем случае индикатор радиоактивности должен сигнализировать о заметном повышении радиационного фона, а в идеале позволять количественно оценить уровень радиации и соответственно степень опасности. Разумеется, в сети Интернет можно найти массу материалов, полезных для самостоятельного конструирования индикаторов радиоактивности разной степени сложности [3-7].
В простейшем случае можно воспроизвести индикаторы, которые не измеряют уровень радиации, а просто сигнализируют о повышении уровня радиации [8-14].
При нежелании изготавливать с нуля достаточно сложный узел со счетчиком Гейгера, высоковольтным источником питания и схемой первичной обработки сигнала хорошо подойдет соответствующий модуль для аппаратной плат формы Arduino [15], о котором дальше и пойдет речь.
Данный модуль можно питать непосредственно от платы Arduino, ток потребляемый устройством составляет около 14 мА.
Следует заметить, что выключатель питания, при таком способе подачи питания не работает и от его положения ничего не зависит.
Процесс радиоактивного распада это абсолютно случайный процесс и предсказать когда придет сигнал о срабатывании детектора совершенно невозможно, по этой причине информацию о таком событии надо обработать как можно быстрее. Для этого хорошо подходит процедура прерывания [16-20].
Автору удалось найти описание вот такого аппаратно-программного комплекса, который представляет собой индикатор радиоактивности, подключаемый к компьютеру [21].
Использованный в данной схеме модуль заметно отличается от имеющегося у автора, однако, среди прочего в состав проекта входит код для платы Arduino [22], который выдает в последовательный порт количество распадов в минуту (cpm).
По сути, программа просто считает все события с нулевого прерывания (второй цифровой порт Arduino) за период 15 с и вычисляет по нему cpm [23]. Как указывается в известной литературе [14], количество событий, регистрируемых счетчиком СТС-5 или СБМ-20 за 40 с, примерно равняется фону радиации в микрорентгенах в час.
Следует заметить, что применяемый в данном приборе счетчик Гейгера типа J305 в целом конструктивно сходен с СТС-5 или СБМ-20. Таким образом, результаты счета должны по порядку совпадать с уровнем радиации в микрорентгенах в час. Автор лишь немного подредактировал программу, так что бы считывать данные из монитора последовательного порта было удобнее (программа geiger).
Для начала сравним показания нашего индикатора радиоактивности с показаниями прибора СОЭКС.
В мониторе последовательного порта, хорошо видно, что радиоактивный распад, это случайный процесс. Таким образом, показания от одного цикла измерений к другому могут заметно изменяться, это нормально и не является поводом для беспокойства.
Сам по себе нормальный радиационный фон тоже не опасен, все живое на Земле эволюционировало под его воздействием, так что опасаться естественного радиационного фона, это все равно, что бояться солнечного света или дождя, хотя больше половины наших сограждан считает иначе [24]. Причиной кратковременного повышения уровня радиации, может быть, к примеру, ливень вторичных частиц, порожденный космическим излучением [25]. В целом видно, что показания индикатора радиоактивности на Arduino по порядку вполне совпадают с показаниями индикатора радиоактивности СОЭКС.
Естественно интересно посмотреть, как поведет себя прибор при существенном повышении уровня радиации. В качестве «контрольного источника» было использовано пять бусин из уранового стекла [26]. Следует заметить, что уровень радиации от такого «источника» весьма низок даже в упор и быстро уменьшается с расстоянием.
Радон урановое стекло, также, по всей видимости, не выделяет [27]. Так, что единственный способ пострадать от такого «источника», это подавиться бусиной. На фотографии, хорошо видно, что линия бусин положена параллельно оси счетчика Гейгера, так, чтобы максимально возможное количество частиц попало в детектор.
В мониторе, последовательного порта, хорошо видно, что показания возросли на порядок.
Для сравнения можно взять туже линию бусин и положить на нее индикатор радиоактивности СОЭКС.
Следует отметить, что линия бусин лежит, на минимально возможном расстоянии от детектора, так чтобы как можно большая часть потока бета-частиц прошла через отверстия в корпусе, которые специально предназначенные для их пропуска.
Хорошо видно, что показания по порядку совпадают, несколько более низкие показания можно объяснить, тем, что пластиковый корпус прибора экранирует часть потока бета частиц.
Разумеется, подобная «калибровка» индикатора радиоактивности носит очень приблизительный характер, хотя бы потому, что бытовой индикатор радиоактивности СОЭКС, далеко не лабораторный прибор.
Кроме этого на показания может влиять множество других факторов. Одним из самых значительных может являться изменение взаимной геометрии источника и детектора излучения.
К примеру, просто повернем детектор радиации на 90 градусов, так что бы линия бусин была перпендикулярна оси детектора.
Хорошо видно, что при этом показания снизились почти в три раза, из-за того, что теперь, гораздо меньше частиц может пролететь через детектор.
В целом даже просто измерение радиации от такого близкого бета-источника в микрорентгенах в час это условность, и вообще-то так делать нельзя [28-30]. Еще можно положить бусины сбоку от детектора, так, что бы корпус экранировал бета-частицы.
Как понимает автор, изрядная часть историй о том, что «дозиметр специально так сделан, что бы занижать показания» связана именно с неумением правильно организовать процесс измерения.
Еще в качестве примера можно вспомнить дозиметр «Белла» [31] у которого счетчик Гейгера закрыт свинцовым экраном, что, по мнению некоторых впечатлительных граждан явно указывает на «заговор» с целью скрыть от людей реальный уровень радиационного фона.
На самом деле данный прибор предназначен, для того чтобы работать с гамма-излучением, которое, как известно, обладает высокой проникающей способностью. Тонкий свинцовый экран призван отсечь бета-излучение проникающая способность которого гораздо меньше. При этом бывают дозиметры, у которых такой свинцовый экран является съемным, например «Терра» [32].
Одним словом процесс получения объективных данных об уровне радиации весьма не прост и требует как минимум хорошего знания возможностей своего измерительного прибора, усреднения показаний за значительный интервал времени, учета влияния взаимной геометрии источника и детектора и т.п.
- 1) Ричард Д.Миллер Физика для будущих президентов – М.: Астрель: Полиграфиздат, 2011
- 2) Александр Константинов Занимательная радиация. Всё, о чём вы хотели спросить: чем нас пугают, чего мы боимся, чего следует опасаться на самом деле, как снизить риски – Новоуральск.: ООО Аристократ, 2016.
- 3) http://forum.rhbz.org/topic.php?forum=80&topic=51
- 4) http://forum.cxem.net/index.php?/topic/195844-совет-по-подключению-счётчиков-гейгера/
- 5) http://radiokot.ru/circuit/digital/measure/60/
- 6) https://pikabu.ru/story/schetchik_geygera_dlya_arduino_4990796
- 7) http://arduino.ru/forum/programmirovanie/schetchik-geigera-arduino
- 8) http://radioskot.ru/publ/byttekhnika/dozimetr_bytovoj_dgb_05b/21-1-0-898
- 9) http://radioskot.ru/publ/byttekhnika/schetchik_ionizirujushhikh_chastic/21-1-0-904
- 10) Лекомцев Д. Г. Демонстрационный индикатор радиоактивного излучения. Журнал Радио №1 2015, с. 40-41
- 11) Даниленко В., Кочетов Н. В лучах Беккереля. Журнал Моделист конструктор №5 1994 г. c.14-16
- 12) Даниленко В., Кочетов Н. В лучах Беккереля. Журнал Моделист конструктор №6 1994 г. с.28-30
- 13) Клементьев С. Самодельный радиометр. Журнал Юный техник №1 1956 г. с.64-65
- 14) Поляков В. Индикатор радиоактивности. Журнал Юный техник №7 2011 г. с.74-78
- 15) Здесь должна быть ссылка на мою статью Детектор радиации
- 16) http://radioprog.ru/post/114
- 17) https://all-arduino.ru/programmirovanie-arduino/attachinterrupt/
- 18) http://robotosha.ru/arduino/arduino-interrupts.html
- 19) https://all-arduino.ru/arduino-dlya-nachinayushhih-urok-14-preryvaniya/
- 20) http://robocraft.ru/blog/arduino/45.html
- 21) http://www.rhelectronics.net/store/radiation-logger.html
- 22) http://radioshem.net/index.php?newsid=149
- 23) https://modernsurvivalblog.com/nuclear/radiation-geiger-counter-the-radiation-network/
- 24) https://wciom.ru/index.php?id=236&uid=111345
- 25) http://livni.jinr.ru/index.php?option=com_content&view=article&id=184&Itemid=102&lang=ru
- 26) https://www.youtube.com/watch?v=oGtfbQZD4uE&index=9&list=PLjrd8KXBP-Aohp0mEFUz21gh4nHuEddxu
- 27) https://www.youtube.com/watch?v=MJVQZhTaMbU
- 28) https://www.youtube.com/watch?v=jasPSAIk428&index=22&list=PLjrd8KXBP-Aohp0mEFUz21gh4nHuEddxu
- 29) https://www.youtube.com/watch?v=h4d5AUp-U2s&list=PLjrd8KXBP-Aohp0mEFUz21gh4nHuEddxu&index=20
- 30) https://www.youtube.com/watch?v=2xpHH0yJl2A&list=PLjrd8KXBP-Aohp0mEFUz21gh4nHuEddxu&index=24
- 31) http://forum.rhbz.org/topic.php?forum=2&topic=162
- 32) http://forum.rhbz.org/topic.php?forum=77&topic=1
Архив с программой. Специально для сайта Радиосхемы – Denev
Форум по дозиметрам
Источник: http://radioskot.ru/publ/izmeriteli/podkljuchenie_detektora_radiacii_k_arduino/15-1-0-1365
Спектральный анализ в домашних условиях
Друзья приближается вечер пятницы, это прекрасное интимное время, когда под покровом манящего сумрака можно достать свой спектрометр и всю ночь, до первых лучей восходящего солнца мерить спектр лампы накаливания, а когда взойдет солнце померить и его спектр.
Как у вас все еще нет своего спектрометра? Не беда пройдемте под кат и исправим это недоразумение. Внимание! Данная статья не претендует на статус полноценного туториала, но возможно уже через 20 минут после её прочтения вы разложите свой первый спектр излучения.
Человек и спектроскоп
Я буду повествовать вам в том порядке, в котором проходил все этапы сам, можно сказать от худшего к лучшему. Если кто-то нацелен сразу на более ли менее серьезный результат, то половину статьи можно смело пропустить. Ну а людям с кривыми руками (как у меня) и просто любопытным будет интересно почитать про мои мытарства с самого начала.
В интернете гуляет достаточное количество материалов о том, как собрать спектрометр/спектроскоп своими руками из подручных материалов. Для того чтобы обзавестись спектроскопом в домашних условиях, в самом простом случае понадобится совсем не много — CD/DVD болванка и коробка.
На мои первые опыты в изучении спектра меня натолкнул этот материал — Спектроскопия
Собственно благодаря наработкам автора, я собрал свой первый спектроскоп из пропускающей дифракционной решетки DVD диска и картонной коробки из под чая, а еще ранее до этого мне хватило плотного куска картона с прорезью и пропускающей решетки от DVD болванки.
Не могу сказать, что результаты были ошеломляющие, но первые спектры получить вполне удалось, чудом сохраненные фотографии процесса под спойлеромФото спектроскопов и спектраСамый первый вариант с куском картона
Второй вариант с коробкой из под чаяИ отснятый спектр
Как вариант можно сделать по другому, использовать отражающий слой или использовать спичечный коробок и лезвия.
От спектроскопа к спектрометру
Ну что же предположим, что вы уже посмотрели на спектры всего, что светиться в вашем доме. Возникает логическое развитие ситуации. Как же теперь исследовать то, что получили?
Тут нам опять-таки на помощь придут сразу несколько вариантов.
Первым, что я нашел по тематике спектрального анализа, оказалась разработка зарубежного ученого — «Cell Phone Spectrophotometer», которая предлагает в качестве спектрометра использовать собранный спектроскоп, камеру мобильного телефона и написанное автором бесплатное ПО Интересная система, но ввиду отсутствия компонентов под рукой, саму систему я собирать не стал, а воспользовался только ПО и заранее отснятыми спектрами.
Как ни странно, но использование ПО (CellPhoneSpec.exe), вызвало у меня и у коллеги некоторые затруднения, по большей части эмпирически я разобрался, как оно работает, до сих пор надеюсь, что понял правильно, в любом случае даже если и нет, то в конце статьи я приведу вариант, который железно работает. Ну а пока немного о CellPhoneSpec.
Моя инструкция больше похожа на пляски с бубном, но все же. Для работы с программой нам понадобиться образец полного спектра и фото отснятого опытного спектра ну а дальше по порядку: 0) Желательно для удобства положить все фото в одну папку к .
exe файлу программы 1) Открываем программу, в поле reference выбираем картинку с образцом полного спектра, в поле sample выбираем фото образца 2) Кликаем на крайний синий участок reference всплывает диалог – выбираем “blue end”, кликаем на красный конец спектра и выбираем “red end” соответственно, ну и тоже самое проделаем для вкладки с образцом.
3) Казалось бы вот и все давай строй графики, но постоянно выскакивает некая ошибка, Я лечу ее так. В полях spectrum parameters удаляю значения после точки и точку включительно ну допустим делаю из 720.
0 просто 720 и жму enter и так для всех значений, после этого в поле sample еще раз выбираю тот же рисунок что подкладывал вначале и после этого о чудо загорается кнопка Make Plot 4) Нажимаем Make Plot получаем графики трех каналов (RGB) и суммарный.
Полученные данные можно сохранить в CSVСкриншотВид настроенной программы
Не могу сказать насколько достоверен данный метод, но полученные графики худо бедно можно коррелировать с моими ожиданиями и с графиками полученными с помощью SpectralWorkbench., но я все же не буду утверждать, что методика описанная мной на 100% верна (в инструкции автора я особо не вникал).
Самый сок
Ввиду неуверенности в качестве да и не особого удобства получения результатов спектрального анализа полученных ранее, я обратился за помощью к своему талантливому другу и коллеге DrZugrik
И этот золотой человек с прямыми руками собрал мне прекрасный спектроскоп.
За основу он взял разработки проекта PublicLab.org (инструкция по сборке), о котором ранее упоминалось на просторах Хабра
Единственное для моего удобства, он модифицировал данную конструкцию USB видеокамерой, получилось вот так:фото спектрометра
Автор сего рукотворного чуда просил добавить комментарий: «Простите, синяя изолента кончилась, пришлось взять заграничный аналог» :)Сразу скажу, эта модификация избавила меня от необходимости пользоваться камерой мобильного телефона, но был один недостаток камеру не удалось откалибровать под настройки сервиса Spectral Worckbench (о котором пойдет ниже речь). Поэтому захват спектра в режиме реального времени мне осуществить не удалось, но распознавать уже собранные фотографии вполне. Итак допустим вы купили или собрали спектроскоп по указанной выше инструкции.
После этого создайте учетную запись в проекте PublicLab.org и переходите на страницу сервиса SpectralWorkbench.org Дальше я опишу вам ту методику распознавания спектра, которой пользовался сам.
Для начала нам надо будет откалибровать наш спектрометр, Для этого вам будет необходимо получить снимок спектра люминесцентной лампы, желательно — большой потолочной, но подойдет и энергосберегающая лампа.
1) Нажимаем кнопку Capture spectra 2) Upload Image 3) Заполняем поля, выбираем файл, выбираем new calibration, выбираем девайс (можно выбрать мини спектроскоп или просто custom), выбираем какой у вас спектр вертикальный или горизонтальный, чтобы было понятно спектры на скриншоте предыдущей программы — горизонтальные 4) Откроется окно с графиками. 5) Проверяем, как повернут ваш спектр.
Слева должен быть синий диапазон, справа — красный. Если это не так выбираем кнопку more tools – flip horizontally, после чего видим, что изображение повернулось а график нет, так что нажимаем more tools – re-extract from foto, все пики снова соответствуют реальным пикам. 6) Нажимаем кнопку Calibrate, нажимаем begin, выбираем синий пик прямо на графике (см.
скриншот), нажимаем ЛКМ и открывается всплывающее окно еще раз, теперь нам надо нажать finish и выбрать крайний зеленый пик, после чего страница обновиться и мы получим откалиброванное по длинам волн изображение. Теперь можно заливать и другие исследуемые спектры, при запросе калибровки нужно указывать уже откалиброванный нами ранее график.
СкриншотВид настроенной программы
Внимание! Калибровка предполагает, что вы в дальнейшем будете делать снимки на тот же самый аппарат, который калибровали изменение аппарата разрешения снимков, сильное смещение спектра на фото относительно положения на откалиброванном примере, может исказить результаты измерения. Честно признаюсь я свои снимки слегка правил в редакторе.
Если где была засветка, затемнял окружение, иногда немного поворачивал спектр, чтобы получить прямоугольное изображение, но еще раз повторюсь размер файла и расположение относительно центра снимка самого спектра лучше не менять. С остальными функциями вроде макросов, авто или ручной подстройки яркости я предлагаю вам разобраться самостоятельно, на мой взгляд они не так критичны.
Полученные графики потом удобно переносить в CSV, при этом первое число будет дробной (вероятно дробной) длинной волны, а через запятую будет усредненное относительное значение интенсивности излучения. Полученные значения красиво смотреться в виде графиков, построенных например в ScilabУ SpectralWorkbench.org есть приложения для смартфонов. Я ими не пользовался. поэтому оценить не могу.
Красочного вам дня во всех цветах радуги друзья.
UPD: По просьбе DrZugrik, дополнительно напишу, что вариант с оборудованием SpectralWorckbench является одним из наиболее бюджетных, некоторые дополнительные модули спектрометра для ардуино могут стоить 500 вечно условных единиц.
Источник: https://habr.com/post/189548/
Датчик цвета и Arduino
С использованием датчика цвета ваш Arduino может научиться распознавать цвета.
На данный момент один из лучших сенсоров цвета – TCS34725.
На многих датчиках на базе TCS34725 устанавливаются дополнительные чувствительные фотодиоды, которые минимизируют ультрафиолетовую составляющую спектра, что значительно увеличивает точность снятия показаний.
Работа фильтра состоит в том, чтобы откинуть ультрафиолетовую компоненту освещения, так как человеческий глаз ее не воспринимает. В результате, точность распознавания цветов значительно увеличивается.
Датчики цвета от компании Adafruit (работа с этим датчиком и рассматривается в дальнейшей статье), например, обладают потрясающим динамическим диапазоном: 3,800,000:1 (диапазон можно настраивать). Кроме того, регулируется коэффициент усиления.
TCS34725 RGB sensor имеет встроенный регулятор 3.3 В, так что вы можете запитывать модуль постоянным током в диапазоне от 3 до 5 В. I2C контакты работают с питанием логики 3.3 или 5 В. Кроме того, на модуле предусмотрен светодиод с MOSFET драйвером, который отображает цвет объекта, который вы “рассматриваете”. Светодиод можно включать-отключать в зависимости от ваших потребностей.
Данный модуль производится в двух форм-факторах: версия для беспаечной монтажной платы (на рисунке слева) и версия крепежа к одежде и работы на базе Arduino Flora (на рисунке справа).
Сборка датчика цвета и подключение к Arduino
Датчик цвета в круглом форм-факторе можно подключить с помощью контактов с крокодилами на концах или с помощью токопроводящей нити.
Датчика цвета для беспаечной монтажной платы продается с нераспаянными рельсами для монтажа. Ниже приведена пошаговая инструкция по распайке рельс на модуль сенсора цвета. Если следовать этой небольшой инструкции, процесс пройдет быстро и безболезненно ;).
Датчик цвета подключается к Arduino с помощью I2C интерфейса. Для подключения будет использовано 4 контакта.
Подключение к Flora:3.3 V -> 3 V (красный проводник)GND -> GND (черный проводник)SDA -> SDA (белый проводник)SCL -> SCL (зеленый проводник) |
Подключение к Arduino Uno:5 V -> VIN (красный проводник)GND -> GND (черный проводник)SDA -> SDA (оранжевый проводник)SCL -> SCL (белый проводник)Примечание: На более старых версиях Arduino, таких как Duemilanove и предшественникам версии R3 UNO, SDA – это пин Analog 4, а SCL – Analog 5.На версиях-предшественниках Arduino Mega R2, SDA находится на пине digital 21.На платах Arduino Leonardo, SDA Находится на пине 2, а SCL – на digital 3. |
Управляем светодиодом
(Только для версии датчика цвета для беспаечной монтажной платы). Светодиод можно отключить следующими способами:
1. Подключитесь к Земле для полного отключения.
2. Подключитесь к цифровому контакту на Arduino и управляйте его состоянием с помощью функции digitalWrite().
3. Подключите светодиод к пину INT и управляйте его состоянием с помощью setInterrupt() (более детальную информацию можно найти в даташите библиотеки).
Используем датчик цвета!
Установка библиотеки
Скачайте библиотеку Adafruit_TCS34725 с Github. Если вы устанавливаете дополнительную библиотеку впервые, рекомендуем почитать статью “Библиотеки и Arduino”.
Тестируем датчик цвета
Запустите тестовый скетч TCS34725 для проверки работоспособности сенсора.
Загрузите скетч на ваш Arduino Uno или Flora и откройте окно серийного монитора, чтобы отследить результат. Скетч должен выводить в окне серийного монитора результат в виде строк с цветами (смотрите на рисунке ниже). Переместите, сенсор, чтобы оценить как он реагирует на различные источники света.
Параметры цвета выводятся в следующем формате:
- Цветовая температура – измеряется в Кельвинах;
- Уровень освещенности – Люкс или Люмен на квадратный метр;
- R, G и B (отфильтрованные) значения;
- Чистое (нефильтрованное) значение;
Скетч ColorView
Скетч ColorView предполагает отображение цвета с помощью встроенного светодиода. Белый светодиод используется для подсветки близко расположенных объектов, а датчик контролирует свет, отраженный от этого объекта. После этого скетч ColorView задействует RGB выходы и RGB светодиод отображает цвет объекта, который мы контролируем!
Подключение RGB светодиода
Загрузите скетч ColorView на ваш Arduino и поэкспериментируйте, поднося к датчику объекты разных цветов. Светодиод должен угадывать цвет объекта!
Задействуем Processing!
В библиотеку Adafruit_TCS34725 Library включен скетч для Processing, с помощью которого скетч ColorView для Arduino взаимодействует с Processing и отображает цвет на вашем мониторе в режиме реального времени.
К сожалению, скетч для Processing работает только с версией Processing 1.5.1 и не совместим с версией Processing 2.0!
Датчик цвета и Processing
Библиотека Adafruit_TCS34725 – гайд по функциям
Объявление и инициализация:
Adafruit_TCS34725(tcs34725IntegrationTime_t = TCS34725_INTEGRATIONTIME_2_4MS,
tcs34725Gain_t = TCS34725_GAIN_1X);
Объявляем сенсор TCS34725, указывая время интегрирования и значения коэффициента усиления.
boolean Adafruit_TCS34725::begin(void);
Инициализируем сенсор цвета TCS34725. Эта функция должна вызываться раньше остальных.
Усиление и время интегрирования:
void Adafruit_TCS34725::setIntegrationTime(tcs34725IntegrationTime_t it)
Устанавливаем время интегрирования для отдельных сэмплов цветов с датчика. Чем больше это значение, тем больше чувствительность датчика цвета при малых уровнях освещенности. Корректные значения приведены ниже:
TCS34725_INTEGRATIONTIME_2_4MS = 0xFF, /**< 2.4 мс */
TCS34725_INTEGRATIONTIME_24MS = 0xF6, /**< 24 мс */
TCS34725_INTEGRATIONTIME_50MS = 0xEB, /**< 50 мс */
TCS34725_INTEGRATIONTIME_101MS = 0xD5, /**< 101 мс */
TCS34725_INTEGRATIONTIME_154MS = 0xC0, /**< 154 мс */
TCS34725_INTEGRATIONTIME_700MS = 0x00 /**< 700 мс */
void Adafruit_TCS34725::setGain(tcs34725Gain_t gain)
Устанавливаем коэффициент усиления аналогово-цифрового преобразователя, что влияет на чувствительность датчика цвета. Корректные значения следующие:
TCS34725_GAIN_1X = 0x00, /**< нет усиления */
TCS34725_GAIN_4X = 0x01, /**< усиление в 2 раза */
TCS34725_GAIN_16X = 0x02, /**< усиление в 16 раз */
TCS34725_GAIN_60X = 0x03 /**< усиление в 60 раз */
Считывание цвета и расчеты:
void Adafruit_TCS34725::getRawData (uint16_t *r, uint16_t *g, uint16_t *b, uint16_t *c)
Считываем данные красного, зеленого, голубого и нейтрального сегментов сенсора.
uint16_t Adafruit_TCS34725::calculateColorTemperature(uint16_t r, uint16_t g, uint16_t b)
Рассчитываем температуру цветов отдельных красного, зеленого, голубого и нейтрального компонентов цвета.
uint16_t Adafruit_TCS34725::calculateLux(uint16_t r, uint16_t g, uint16_t b)
Расчет Люкс для четырех компонент цвета.
Прерывания и управление светодиодом:
void Adafruit_TCS34725::setInterrupt(boolean i)
Устанавливаем прерывание сенсора для генерации прерывания, когда диапазон выходит за рамки предусмотренного (смотрите setIntLimits() выше). Пин Int есть только на версии датчика в прямоугольном форм-факторе.
Булевый параметр можно использовать для управления светодиодом. На breadboard версии датчика, вам надо подключить контакт светодиода к контакту INT для управления светодиодом.
- При передаче сигнала типа “false”, светодиод будет реагировать на цвет предмета.
- Если передать “true”, светодиод выключится.
void Adafruit_TCS34725::clearInterrupt(void)
Убираем прерывание сенсора.
void Adafruit_TCS34725::setIntLimits(uint16_t low, uint16_t high)
Устанавливает уровни high и low для прерываний. Для более детального ознакомления с прерываниями, можете заглянуть в data sheet.
Полезные ссылки и файлы для загрузки
Схема модуля датчика цвета:
(Измерения на чертеже – в дюймах!)
Даташит датчика цвета TCS34725 для Arduino.
Оставляйте Ваши комментарии, вопросы и делитесь личным опытом ниже. В дискуссии часто рождаются новые идеи и проекты!
Источник: http://arduino-diy.com/arduino-datchik-tsveta
Подключение фоторезистора к ардуино и работа с датчиком освещенности
Датчики освещенности (освещения), построенные на базе фоторезисторов, довольно часто используются в реальных ардуино проектах. Они относительно просты, не дороги, их легко найти и купить в любом интернет-магазине.
Фоторезистор ардуино позволяет контролировать уровень освещенности и реагировать на его изменение.
В этой статье мы рассмотрим, что такое фоторезистор, как работает датчик освещенности на его основе, как правильно подключить датчик в платам Arduino.
Фоторезистор ардуино и датчик освещенности
Фоторезистор, как следует из названия, имеет прямое отношение к резисторам, которые часто встречаются практически в любых электронных схемах.
Основной характеристикой обычного резистора является величина его сопротивления. От него зависят напряжение и ток, с помощью резистора мы выставляем нужные режимы работы других компонентов.
Как правило, значение сопротивления у резистора в одних и тех же условиях эксплуатации практически не меняется.
В отличие от обычного резистора, фоторезистор может менять свое сопротивление в зависимости от уровня окружающего освещения.
Это означает, что в электронной схеме будут постоянно меняться параметры, в первую очередь нас интересует напряжение, падающее на фоторезисторе.
Фиксируя эти изменения напряжения на аналоговых пинах ардуино, мы можем менять логику работы схемы, создавая тем самым адаптирующиеся под вешние условия устройства.
Фоторезисторы достаточно активно применяются в самых разнообразных системах. Самый распространенный вариант применения — фонари уличного освещения. Если на город опускается ночь или стало пасмурно, то огни включаются автоматически.
Можно сделать из фоторезистора экономную лампочку для дома, включающуюся не по расписанию, а в зависимости от освещения. На базе датчика освещенности можно сделать даже охранную систему, которая будет срабатывать сразу после того, как закрытый шкаф или сейф открыли и осветили.
Как всегда, сфера применения любых датчиков ардуино ограничена лишь нашей фантазией.
Какие фоторезисторы можно купить в интернет-магазинах
Самый популярный и доступный вариант датчика на рынке – это модели массового выпуска китайских компаний, клоны изделий производителя VT. Там не всегда можно разораться, кто и что именно производит тот или иной поставщик, но для начала работы с фоторезисторами вполне подойдет самый простой вариант.
Начинающему ардуинщику можно посоветовать купить готовый фотомодуль, который выглядит вот так:
На этом модуле уже есть все необходимые элементы для простого подключения фоторезистора к плате ардуино. В некоторых модулях реализована схема с компаратором и доступен цифровой выход и подстроечный резистор для управления.
Российскому радиолюбителю можно посоветовать обратить на российский датчик ФР. Встречающиеся в продаже ФР1-3, ФР1-4 и т.п. — выпускались ещё в союзовские времена. Но, несмотря на это, ФР1-3 — более точная деталь. Из этого следует и разница в цене За ФР просят не более 400 рублей. ФР1-3 будет стоить больше тысячи рублей за штуку.
Маркировка фоторезистора
Современная маркировка моделей, выпускаемых в России, довольно простая. Первые две буквы — ФотоРезистор, цифры после чёрточки обозначают номер разработки. ФР -765 — фоторезистор, разработка 765. Обычно маркируется прямо на корпусе детали
У датчика VT в схеме маркировке указаны диапазон сопротивлений. Например:
- VT83N1 — 12-100кОм (12K — освещенный, 100K — в темноте)
- VT93N2 — 48-500кОм (48K — освещенный, 100K — в темноте).
Иногда для уточнения информации о моделях продавец предоставляет специальный документ от производителя. Кроме параметров работы там же указывается точность детали.
У всех моделей диапазон чувствительности расположен в видимой части спектра. Собирая датчик света нужно понимать, что точность срабатывания — понятие условное.
Даже у моделей одного производителя, одной партии, одной закупки отличаться она может на 50% и более.
На заводе детали настраиваются на длину волны от красного до зелёного света. Большинство при этом «видит» и инфракрасное излучение. Особо точные детали могут улавливать даже ультрафиолет.
Достоинства и недостатки датчика
Основным недостатком фоторезисторов является чувствительность к спектру. В зависимости от типа падающего света сопротивление может меняется на несколько порядков.
К минусам также относится низкая скорость реакции на изменение освещённости. Если свет мигает — датчик не успевает отреагировать.
Если же частота изменения довольно велика — резистор вообще перестанет «видеть», что освещённость меняется.
К плюсам можно отнести простоту и доступность. Прямое изменение сопротивления в зависимости от попадающего на неё света позволяет упростить электрическую схему подключения. Сам фоторезистор очень дешев, входит в состав многочисленных наборов и конструкторов ардуино, поэтому доступен практически любому начинающему ардуинщику.
Подключение фоторезистора к ардуино
В проектах arduino фоторезистор используется как датчик освещения. Получая от него информацию, плата может включать или выключать реле, запускать двигатели, отсылать сообщения. Естественно, при этом мы должны правильно подключить датчик.
Схема подключения датчика освещенности к ардуино довольна проста. Если мы используем фоторезистор, то в схеме подключения датчик реализован как делитель напряжения.
Одно плечо меняется от уровня освещённости, второе — подаёт напряжение на аналоговый вход. В микросхеме контроллера это напряжение преобразуется в цифровые данные через АЦП. Т.к.
сопротивление датчика при попадании на него света уменьшается, то и значение падающего на нем напряжения будет уменьшаться.
В зависимости от того, в каком плече делителя мы поставили фоторезистор, на аналоговый вход будет подаваться или повышенное или уменьшенное напряжение.
В том случае, если одна нога фоторезистора подключена к земле, то максимальное значение напряжения будет соответствовать темноте (сопротивление фоторезистора максимальное, почти все напряжение падает на нем), а минимальное – хорошему освещению (сопротивление близко к нулю, напряжение минимальное). Если мы подключим плечо фоторезистора к питанию, то поведение будет противоположным.
Сам монтаж платы не должен вызывать трудностей. Так как фоторезистор не имеет полярности, подключить можно любой стороной, к плате его можно припаять, подсоединить проводами с помощью монтажной платы или использовать обычные клипсы (крокодилы) для соединения.
Источником питания в схеме является сам ардуино. Фоторезистор подсоединяется одной ногой к земле, другая подключается к АЦП платы (в нашем примере — АО). К этой же ноге подключаем резистор 10 кОм.
Естественно, подключать фоторезистор можно не только на аналоговый пин A0, но и на любой другой.
Несколько слов относительно дополнительного резистора на 10 К. У него в нашей схеме две функции: ограничивать ток в цепи и формировать нужное напряжение в схеме с делителем.
Ограничение тока нужно в ситуации, когда полностью освещенный фоторезистор резко уменьшает свое сопротивление. А формирование напряжения — для предсказуемых значений на аналоговом порту.
На самом деле для нормальной работы с нашими фоторезисторами хватит и сопротивления 1К.
Меняя значение резистора мы можем «сдвигать» уровень чувствительности в «темную» и «светлую» сторону. Так, 10 К даст быстрое переключение наступления света. В случае 1К датчик света будет более точно определять высокий уровень освещенности.
Если вы используете готовый модуль датчика света, то подключение будет еще более простым. Соединяем выход модуля VCC с разъемом 5В на плате, GND – c землей. Оставшиеся выводы соединяем с разъемами ардуино.
Если на плате представлен цифровой выход, то отправляем его на цифровые пины. Если аналоговый – то на аналоговые. В первом случае мы получим сигнал срабатывания – превышения уровня освещенности (порог срабатывания может быть настроен с помощью резистора подстройки). С аналоговых же пинов мы сможем получать величину напряжения, пропорциональную реальному уровню освещенности.
Пример скетча датчика освещенности на фоторезисторе
Мы подключили схему с фоторезистором к ардуино, убедились, что все сделали правильно. Теперь осталось запрограммировать контроллер.
Написать скетч для датчика освещенности довольно просто. Нам нужно только снять текущее значение напряжения с того аналогового пина, к которому подключен датчик. Делается это с помощью известной нам всем функции analogRead(). Затем мы можем выполнять какие-то действия, в зависимости от уровня освещенности.
Давайте напишем скетч для датчика освещенности, включающего или выключающего светодиод, подключенный по следующей схеме.
Алгоритм работы таков:
- Определяем уровень сигнала с аналогового пина.
- Сравниваем уровень с пороговым значением. Максимально значение будет соответствовать темноте, минимальное – максимальной освещенности. Пороговое значение выберем равное 300.
- Если уровень меньше порогового – темно, нужно включать светодиод.
- Иначе – выключаем светодиод.
#define PIN_LED 13
#define PIN_PHOTO_SENSOR A0 void setup() { Serial.begin(9600); pinMode(PIN_LED, OUTPUT);
} void loop() { int val = analogRead(PIN_PHOTO_SENSOR); Serial.println(val); if (val < 300) { digitalWrite(PIN_LED, LOW); } else { digitalWrite(PIN_LED, HIGH); }
}
Прикрывая фоторезистор (руками или светонепроницаемым предметом), можем наблюдать включение и выключение светодиода. Изменяя в коде пороговый параметр, можем заставлять включать/выключать лампочку при разном уровне освещения.
При монтаже постарайтесь расположить фоторезистор и светодиод максимально далеко друг от друга, чтобы на датчик освещенности попадало меньше света от яркого светодиода.
Датчик освещенности и плавное изменение яркости подсветки
Можно модифицировать проект так, чтобы в зависимости от уровня освещенности менялась яркость светодиода. В алгоритм мы добавим следующие изменения:
- Яркость лампочки будем менять через ШИМ, посылая с помощью analogWrite() на пин со светодиодом значения от 0 до 255.
- Для преобразования цифрового значения уровня освещения от датчика освещенности (от 0 до 1023) в диапазон ШИМ яркости светодиода (от 0 до 255) будем использовать функцию map().
Пример скетча:
#define PIN_LED 10
#define PIN_PHOTO_SENSOR A0 void setup() { Serial.begin(9600); pinMode(PIN_LED, OUTPUT);
} void loop() { int val = analogRead(PIN_PHOTO_SENSOR); Serial.println(val); int ledPower = map(val, 0, 1023, 0, 255); // Преобразуем полученное значение в уровень PWM-сигнала. Чем меньше значение освещенности, тем меньше мощности мы должны подавать на светодиод через ШИМ. analogWrite(PIN_LED, ledPower); // Меняем яркость }
В случае другого способа подключения, при котором сигнал с аналогового порта пропорционален степени освещенности, надо будет дополнительно «обратить» значение, вычитая его из максимального:
int val = 1023 – analogRead(PIN_PHOTO_RESISTOR);
Схема датчика освещения на фоторезисторе и реле
Примеры скетча для работы с реле приведены в статье, посвященной программированию реле в ардуино. В данном случае, нам не нужно делать сложных телодвижений: после определения «темноты» мы просто включаем реле, подавай на его пин соответствующее значение.
#define PIN_RELAY 10
#define PIN_PHOTO_SENSOR A0 void setup() { pinMode(PIN_RELAY, OUTPUT); digitalWrite(PIN_RELAY, HIGH);
} void loop() { int val = analogRead(PIN_PHOTO_SENSOR); if (val < 300) { // Светло, выключаем реле digitalWrite(PIN_RELAY, HIGH); } else { // Темновато, включаем лампочку digitalWrite(PIN_RELAY, LOW); }
}
Заключение
Проекты с применением датчика освещенности на базе фоторезистора достаточно просты и эффектны. Вы можете реализовать множество интересных проектов, при этом стоимость оборудования будет не высока. Подключение фоторезистора осуществляется по схеме делителя напряжения с дополнительным сопротивлением.
Датчик подключается к аналоговому порту для измерения различных значений уровня освещенности или к цифровому, если нам важен лишь факт наступления темноты. В скетче мы просто считываем данные с аналогового (или цифрового) порта и принимаем решение, как реагировать на изменения.
Будем надеяться, что теперь в ваших проектах появятся и такие вот простейшие «глаза».
Источник: https://ArduinoMaster.ru/datchiki-arduino/photorezistor-arduino-datchik-sveta/