УФ излучение , выбор датчика
Актуальная , на слуху сейчас тема , соответственно и разных датчиков хватат
Уж я сильно не заморачивался этим вопросом , но в моей кубышке целых три модели завалялось :
Два аналоговых - GUVA-S12SD и ML8511
Да один цифровой - VEML6070
Сразу на начальном этапе отмел аналоговый ML8511
Без облучения чем либо на его выходе 0,9-0,95в , дал засветку УФ , напряжение поднялось ближе к полутора вольтам , все бы это можно было еще пережить , на когда датчик прореагировал и на синий свет , и на белый , пусть и послабее чем на УФ , но на мат сорвался в голос когда УФ-датчик и красный цвет увидел , после такого дисквалифицировал его пожизненно
А вот другой аналоговый GUVA-S12SD - молодец , впрочем я это уже и раньше знал , летом часто с нам в сад выбегал в поисках УФ активности
Так и не подловил ни одной УФ аномалии , все жестко повязано на видимую солнечную освещенность , УФ компонента жестко привязана к ней
Самое интересное что датчик до безобразия прост - уф-фотодиод и оу для раскачки сигнала
Осталось сказать о цифровике VEML6070 , мозгов понавертели в нем ого-го , а по делу тоже туфта , так же путает свою шерсть с государственной , так же все вплоть до красного цвета видит любвиобильный мой
Но все же оспавил его для сравнения с GUVA-S12SD , чтоб не устраивать безальтернативных выборов
И так
Вариант первый :
Комплектация :
Arduino nano
HD44780 1602 + модуль посл.интерфейса
VEML6070
GUVA-S12SD
Схема подключения :
Программа (скетч) :
#include <LiquidCrystal_I2C.h>//библиотека под LCD
LiquidCrystal_I2C lcd(0x27,16,2);
#include <Wire.h>
#include "Adafruit_VEML6070.h"
Adafruit_VEML6070 uv = Adafruit_VEML6070();
int AUF;
void setup() {
analogReference(EXTERNAL); // включаем внешний источник опорного напряжения
uv.begin(VEML6070_1_T); //варианты времени интеграции : _HALF_T _1_T _2_T _4_T( 62мс , 125мс , 250мс , 500мс)
}
void loop() {
lcd.init();// Инициализация lcd дисплея
lcd.backlight();// Включение подсветки дисплея
AUF = analogRead(A0); // получаем значение с аналогового входа A0
lcd.setCursor(0, 1);
lcd.print("VA-S12SD");
lcd.setCursor(10, 1);
lcd.print(" ");// 4 знака затир
lcd.setCursor(10,1);
lcd.print(AUF);
lcd.setCursor(0, 0);
lcd.print("VEML6070");
lcd.setCursor(10, 0);
lcd.print(" ");// 6 знаков затир
lcd.setCursor(10, 0);
lcd.print(uv.readUV());
delay(300);
}
УФ светодиод 365нм оба датчика видят , один меряет в попугаях , другой в мартышках , но не суть есть некие условные единицы , на практике важно больше/меньше , что было вчера , что сегодня
синий цвет , GUVA-S12SD по нулям , а VEML6070 продолжает хавать и синий
белый холодный светодиод , VEML6070 заметно умерил пыль , но все равно считает его
ну и наконец красный , а VEML6070 так и не уймется , что у вас ? веревочка ?, давайте и веревочку
Вот и куда такой тащить на улицу , он весь солнечный спектр в одну кошелку сметет
Разве что дома для каких экспериментов использовать , когда знаешь что работаешь только с УФ составляющей
Посему я все же оставил ему право на жизнь , только индикатор взял попроще , тут 4х знаков хватит за глаза
Вариант второй :
Комплектация :
Arduino nano
TM1637
VEML6070
Схема подключения :
Программа(скетч) :
#include <TM1637.h>// библиотека для подключение модуля семисегментного инд. TM1637
TM1637 tm1637(3,2);
#include <Wire.h>
#include "Adafruit_VEML6070.h"
Adafruit_VEML6070 uv = Adafruit_VEML6070();
void setup() {
tm1637.init();// инициализация библиотеки «TM1637.h»
tm1637.set(4);//установка яркости , указанная константа равна 4 , диапазон установки 0-7
uv.begin(VEML6070_1_T); //варианты времени интеграции : _HALF_T _1_T _2_T _4_T
//( 62мс , 125мс , 250мс , 500мс)
}
void loop() {
int UF=uv.readUV();
tm1637.display(UF);
delay(500);
}
Еще почему оставил вариант этого датчика прозапас , у него можно поднять время интегрирования и поднять этим чувствительность , что может оказаться в работе с маломощными уф-диодами
Ну и коль пошла такая пьянка , то грех обижать добра молодца GUVA-S12SD
Вариант третий :
Комплектация :
Arduino nano
TM1637
GUVA-S12SD
Схема подключения :
Программа(скетч) :
#include <TM1637.h>// библиотека для подключение модуля семисегментного инд. TM1637
TM1637 tm1637(3,2);
#include <Wire.h>
void setup() {
analogReference(EXTERNAL); // включаем внешний источник опорного напряжения
tm1637.init();// инициализация библиотеки «TM1637.h»
tm1637.set(4);//установка яркости , указанная константа равна 4 , диапазон установки 0-7
}
void loop() {
int AUF = analogRead(A0); // получаем значение с аналогового входа A0
tm1637.display(AUF );
delay(500);
}
Все три варианта рабочие , да только на солнце не больно индикаторы разглядишь , особенно светодиодные , и даже синий цвет не спасет
А для аналогового датчика и вообще ардуинка нафиг не нужна , запитал его 3,6-5в да подключил к нему 100мка в качестве вольтметра ограничив ток резистором
я он летом с такой порнографией летом пробегал
, ну и заводской люксометр еще брал чтобы привязывать УФ уровень к освещенности
Напругу кроны енкой 5в ограничил , головку под одновольтовый вольтметр заточил , выше 1в показаний и не было
Перейти к содержанию
0 Комментариев
Рекомендуемые комментарии
Комментариев нет
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти