в авторском скетче, видимо, случайно пропущены строки установки курсора дисплея в меню экрана 1 и 3.
вкупе с перепутаными пинами подключения дисплея, ошибкой в строке 75, поиском недостающих библиотек, хитрой установкой контрастности дисплея... всё это создаёт прекрасный прецендент для изучения Ардуино.
хорошо что есть откуда брать примеры, иначе этот скетч не запустить.
sav13, У меня к вам вопрос по датчикам TCS3200: насколько они калиброваны и что можно выжать из них?
Для своего проекта "Ардуино как Лего" сделал на их базе 2 датчика. Поставил защитную трубку вокруг датчика от засветки светодиодами и закрыл это все в коробочку с дырками под светодиоды и датчик. Сделал:
драйвер приема показаний на базе счетчика Т5 Меги2560 по прерываниям (1024мксек). Датчик выдает частотный сигнал в цветах - подсчет количества импульсов входа Т5 за время 1.024мсек. Посчитал обратную матрицу RGB по усредненным данным из даташит, воткнул её в драйвер. Далее согласно даташиту обнаружил примерно 15% "общую засветку" в ИК области и сделал обратное повышение контрастности на 12.5% (1/8). Далее, согласно даташиту высчитал зависимость частоты показаний "белого" от мощности излучения и пересчитал коэффициент в люксы .. всё это сделано с округлениями и точностью в 0.5% ..
Каково будет освещение белого листа 60вт лампой накаливания с расстояния 0.5м, для "калибровки" датчика с расстояния 5см от листа? Датчик направляем на лист, а не на лампу..
Вопрос: насколько этот датчик может использоваться как люксометр или RGB определитель цвета при таком подходе? Как вы считаете?
Каково будет освещение белого листа 60вт лампой накаливания с расстояния 0.5м, для "калибровки" датчика с расстояния 5см от листа? Датчик направляем на лист, а не на лампу..
Вопрос: насколько этот датчик может использоваться как люксометр или RGB определитель цвета при таком подходе? Как вы считаете?
Я сравнивал с несколькими поверенными люксметрами
Показания датчиков очень сильно зависят от конструкции сенсора. (Площадь окна, есть линза Френеля или нет), обысловленные назначением приборов. Даже два поверенных прибора могут сильно разнится в показаниях, хотя в испытательной лаборатории дают одно и тоже.
По результатам TSL2561 и BH1750 (в том числе разные экземпляры) дают практически идентичные показатели в одинаковых конструкциях. С поверенными прибрами хорошо бьются при расеянном освещении без косых лучей. Это говорит о том, что сами датчики идут откалиброванными с завода.
При использовании в конкретных условиях (например уличный датчик освещенности) требуется калибровка из-за положения и конструкции прибора целиком. В вашем случае защитный козырек сильно уменьшит освещенность по сравнению с поверенным приборам где сенсор в виде плоской или выпуклой линзы.
а нет ли мыслей прикрутить фоторезистор(фотодиод)? )) место на экране в режиме 1 и 3 есть пусть бы бегала б себе полосочка с процентами.
а схему можно? я про часть кнопки "ВКЛ-ВЫКЛ". а то не совсем понял - кнопка с фиксацией, однако в скетче для неё есть код.
может есть смысл сделать как в транзистортестере с питанием от лития?
и ещё вопрос - изменения коснулись только того, что Вы упомянули? а то читал в блоге что собирались ещё чего-то изменять.
Схему можно на пальцах )))
Дисплей:
U8GLIB_PCD8544 u8g(10, 4, 6, 5, 7);
CLK - pin10 DIN - Pin4 CE - Pin6 DC - Pin5 RST - Pin7
Питание дисплея напрямую к VCC (Было к Pin8)
Подсветка дисплея Pin9
Кнопка 1 (Подсветка) - Pin2
Кнопка 2 (Режим) - Pin3
Кнопка 3 с фиксацией в разрыв питания. В принципе, кнопку подсветки можно не делать, пусть всегда светит, когда включен.
Датчики I2C все к A4, A5 как обычно
Фотодиод я хочу в перспективе задействовать на измерение пульсаций. Но там нужно схему собирать - фотдиод + операционник. Сейчас эксперементирую с датчиком MAX44009 у которого мини мальный порог измерения 0.04 люкса, минимальное время измерения 6мс. Еще из интересного, что можно получать раздельные показания с ИК и оптического сенсора (также как и в TSL2561). В общем, перспектив много. Нужно только определтьбся, что нужно, что не нужно. Просто я использую эти сенсоры в параллельных проектах коммерческих.
тогда добавлю в Ваш скетч вариант с кнопкой ВКЛ-ВЫКЛ без фиксации.
про фотодиод - не такая великая схема )))) код написать в разы труднее.
про "что нужно-не нужно"(вкл режим"фантазия"):
1. датчик на фотодиоде.
2. датчик на фоторезисторе - ну и что что он инерционный? зато калибровать просто - Солнце=100%, а дальше попугаи помогут =)
3. кнопку на ВКЛ-ВЫКЛ по типу транзистортестера - сложностей минимум, зато все кнопки одинаковые.
4. я б добавил стартовую страницу, где можно было б выбирать изображение на экране.
5. ну и добавил бы комментарий про калибровку фоторезистора(фотодиода) - это что б не программно, а что б в скетче.
С фотодиодами все не так просто - больше всего фотодиодов продается с максимумом в ИК диапозоне. Они используются для управления. Правильный измерительный диод стоит довольно дорого.
Изерение - солнце 100% не отражает сути. Солнце бывает очень разное, утром и вечером, зимой и летом, в дымке и т.д. Его тоже можно мерить в люксах, как и лампочки.
Все таки совершенно не вижу смысла в фоторезисторе с 10-битной АЦП ардуины, в то время, когда уже есть откалиброванный на заводе цифровой датчик 16-бит (TSL2561) или 22-бит (MAX44009)
В общем собираюсь следующую версию сделать примерно такой:
- Датчик MAX44009 в режиме максимальной точности.(0,045 - 188000 люкс). Сенсор выносной с линзой френеля от ИК сенсора
- Фотодиод для измерения пульсаций в том же сенсоре автоопределение процента и частоты пульсаций . В графике вообще не вижу смысла. На дополнительном экране можно добавить информацию раздельной освещенности с ИК и оптического диода сенсора MAX44009
- Соответсвенно, кнопка одна - вкл/выкл. Экран сделать миниатюрный 1602. На нем лучше все видно.
ну... солнце да, разное. я имел в виду что 100% = яркий свет, а всё остальное мерять относительно него.
про АЦП Ардуины понятно, тут без вопросов.
про кнопки - решили оставить один режим?
про миниатюрный индикатор... хозяин-барин но, как понимаю, можно будет простой 1602 прикрутить? хотя 5110 позволил бы визуализировать красиво даже [s]попугаев[/s] фоторезистор - полосочка с процентами убедит любого ))))
ну... солнце да, разное. я имел в виду что 100% = яркий свет, а всё остальное мерять относительно него.
про АЦП Ардуины понятно, тут без вопросов.
про кнопки - решили оставить один режим?
про миниатюрный индикатор... хозяин-барин но, как понимаю, можно будет простой 1602 прикрутить? хотя 5110 позволил бы визуализировать красиво даже [s]попугаев[/s] фоторезистор - полосочка с процентами убедит любого ))))
в любом случае, спасибо за труды!
Давал попользоваться прибором раличным людям. График никому нафиг не нужен. Процент пульсации в очень редком случае. Поэтому и решил упростить управление для эргономики. Разве что на 12864 графику реализовать. Там хоть что-то внятное получится. На 5110 все жаловались - слепой дисплей.
Полосочка - она как раз совсем не информативная. Разве что ее к СНИПу привязать. Но для этого совсем не нужен фоторезистор, можно просто по формуле от освещенности с датчика длину ее расчитывать.
1602 полностью совместим с теми что на Али за копейки продаются
Каково будет освещение белого листа 60вт лампой накаливания с расстояния 0.5м, для "калибровки" датчика с расстояния 5см от листа? Датчик направляем на лист, а не на лампу..
Я сравнивал с несколькими поверенными люксметрами
Показания датчиков очень сильно зависят от конструкции сенсора. (Площадь окна, есть линза Френеля или нет), обысловленные назначением приборов. Даже два поверенных прибора могут сильно разнится в показаниях, хотя в испытательной лаборатории дают одно и тоже.
Спасибо, но у меня нет доступа к поверенным приборам. В любом случае, как понимаю при одних и тех же условиях освещенность в люксах должна быть одинаковой. Вот про вашу возможную помощь в калибровке я и хотел попросить:
Чтобы условия можно было воспроизвести, предлагаю сделать так: берем обыкновенную лампу накаливания на 60вт, без абажуров и отражателей. Освещаем только ею (завесив шторки, ночью и т.п.) лист белой офисной бумаги типа "Снегурочка" (или другой) (отр. в 90-95% там часто нормировано) с расстояния в 50см. от центра листа и под углом к перпендикуляру градусов 45 (измерять удобно "на дому"). И измеряем освещенность этого листа вашим или поверенным прибором расположив его над центром листа сантиметрах 5 .. или сколько удобно. .. и получаем освещенность в люксах.
Её и хочется получить, и использовать далее как ориентир для поверки своего датчика. Мне просто понять насколько сильно я ошибся в пересчетных коэффициентах из даташита. Да и другим, у кого нет доступа к поверке - будет какая-никакая, а отправная точка.
вредный совет? Эта линза для ИК 10 мкм (длина волны теплового излучения), кроме того - это линза френеля, так что при перемещении источника освещения или вращения датчика будут осцилляции показаний.
// Библиотека работы с устройствами по I2C
#include <Wire.h>
// Библиотека работы с TSL2561
#include <Adafruit_Sensor.h>
#include <Adafruit_TSL2561_U.h>
#include <TimerOne.h>
#include "sav_button.h"
#include <PCF8812_new.h>
#include "font_12x16_rus.h"
#include "font_5x8.h"
#include "font_16x24.h"
#define MAX_UNITS 63
Adafruit_TSL2561_Unified tsl = Adafruit_TSL2561_Unified(TSL2561_ADDR_FLOAT, 12345);
SButton button1(16,100,3000,0,0);
int key_mode2 = 1;
uint16_t autooff=0;
void timerIsr()
{
autooff++;
if (autooff>18000) power_off();
switch( button1.Loop()){
case SB_LONG_CLICK :
power_off();
break;
case SB_CLICK : //Короткое нажатие
autooff=0;
if( key_mode2 == 1){ key_mode2 = 2; } else { key_mode2 = 1; }
break;
}
}
/**
* Функция определения напряжения питания устройства
*/
static int vccRead(byte us =250) {
ADMUX = 1<<REFS0; // опорное напряжение - Vcc
ADMUX |= 0x0E; // объект измерения - внутренний источник
// стабилизированного напряжения 1.1В
delayMicroseconds(us);
ADCSRA |= 1<<ADSC; // запуск АЦ-преобразования
while(ADCSRA & (1<<ADSC)); // и ожидание его завершения
word x = ADC;
return x ? (1100L * 1023) / x : -1;
}
uint16_t l1=0,l2=0,l_min=0,l_max=0;
uint16_t u1 = 0;
double pulse = 0;
uint16_t l_mas[MAX_UNITS];
/**
* Текстовый экран
*/
void DisplayMode1(){
char s[20];
LcdPageONE();
do {
sprintf(s,"%u",l1);
LcdsetFont(font_12x16_rus);
LcdGotoXY(0,0);
LcdPrint(s , ON, 1); //u8g.drawStr( 0, 20, s);
LcdsetFont(font_12x16_rus);
LcdPrint( "lx" , ON, 1);
LcdsetFont(font_5x8);
sprintf(s,"Pulse: %d.%d%c",(int)pulse,(int)(pulse*10)%10,'%');
LcdGotoXY(0,30);
LcdPrint(s , ON, 1);
sprintf(s,"Bat: %d.%d V",u1/1000,u1%1000);
LcdGotoXY(0,39);
LcdPrint(s , ON, 1);
LcdGotoXY(0,48);
LcdPrint("Sensor TSL2561" , ON, 1);
} while(LcdPageTWO());
}
/**
* Графический экран
*/
void DisplayMode2(){
char s[20];
LcdPageONE();
do {
sprintf(s,"%u lx %d.%d%c",l1,(int)pulse,(int)(pulse*10)%10,'%');
LcdsetFont(font_5x8);
LcdGotoXY(0,7);
LcdPrint(s , ON, 1);
uint16_t dl = l_max - l_min;
LcdLine(0, 61, 100, 61 ,ON);
LcdLine(94, 59, 100, 61 ,ON );
LcdLine(94, 63, 100, 61 , ON);
for( int i=0; i<MAX_UNITS/3; i++){
uint16_t y = 60-(l_max-l_mas[i])*28/dl;
uint16_t y2 = 60-(l_max-l_mas[i+1])*28/dl;
LcdLine(i*3, y, i*3+3, y2, ON);
}
} while(LcdPageTWO());
}
void power_off()
{ LcdPageONE();
do {
LcdsetFont(font_12x16_rus);
LcdGotoXY(2,30);
LcdPrint("Buy buy" , ON, 1);
} while(LcdPageTWO());
delay(2000);
digitalWrite(15,LOW);
delay(20000);
}
void setup()
{
LcdInit( 10, 11, 12, 13, 14); //CS, RESET, D/C, CLK, DATA
pinMode(15,OUTPUT); // Выход на питание дисплея
digitalWrite(15,HIGH);
button1.begin();
Timer1.initialize(10000);
Timer1.attachInterrupt( timerIsr );
}
unsigned long ms1 = 0;
void loop()
{
unsigned long ms = millis();
// Опрос датчиков каждую секунду
if( (ms < ms1 || (ms - ms1) > 500)){
ms1 = ms;
l1=0;l2=0;l_min=0;l_max=0;
u1 = vccRead(100);
uint32_t l_avg = 0;
sensors_event_t event;
// Делаем MSX_UNITS измерений по 13мс
for( int i=0; i<MAX_UNITS; i++){
tsl.getEvent(&event);
l_avg += event.light;
l_mas[i] = event.light;
if( i == 0 ){
l_min = event.light;
l_max = event.light;
}
else {
if( event.light < l_min )l_min = event.light;
if( event.light > l_max )l_max = event.light;
}
}
l1 = l_avg / MAX_UNITS;
if( l_max != 0 )pulse = (double)((l_max - l_min))*100/(double)l_max;
else pulse = 0;
if( key_mode2 == 1)DisplayMode1();
else DisplayMode2();
}
}
----------------------------------
Спасибо за код ))
Повторил люксометр на дисплее от siemens a70
Управление и питание сделал на одной кнопке.
Ардуинка питается через р канальный полевик, включается 2с нажатием кнопки пока не запустится программа, отключяется по таймеру либо долгое удержание кнопки.
Удачный приборчик получился. Попробвал оба сенсора. Но для работы со светодиодным освещением хотелось бы с пульсациями поподробнее, так сказать. Существующей точности от датчика TSL маловато. При частоте пульсаций драйвера или любой другой схемы питания светодиодов 100Гц (10мс) уже выходим за возможности датчика (13мс). Наткнулся на аналоговый датчик ТЕМТ6000 разработанный для видимого спектра. На нем можно было бы реализовать измерение пульсаций с бОльшей точностью?
Вопрос понимаю не совсем по теме, но на других форумах никто внятно не ответил...(
Как датчик ВН1750 перевести в режим низкого разрешения ( 16мс )? В проекте который мы начали с сыном не нужна высокая точность измерения..., неоходима скорость ( так понимаю по умолчанию идет 1Лк/120мс , а это для меня много ибо импульс потока всего 100+-10мс ). зараннее благодарен!
С диапазоном я уже тоже проверял, хороший датчик. А пробовали пульсации этим датчиком измерять? У него, судя по даташиту 6,25мс быстродействие, должно хватить для бытовых целей?
С диапазоном я уже тоже проверял, хороший датчик. А пробовали пульсации этим датчиком измерять? У него, судя по даташиту 6,25мс быстродействие, должно хватить для бытовых целей?
Там все сложнее. Чем меньше время интеграции, тем хуже измеряемый диапазон. Нет автоматического переключения. А учшие результаты получаются на 800мс
Я забил на пульсации. Если нужно, можно их фототранзистором померить, подключенным к осциллографу. Или фотодиодом с усилителем
Ну вот я тоже начал пытать ТЕМРТ6000 фототранзистор, посмотрим, какие он результаты даст по измерению пульсаций. Я довольно много делаю всякой всячины на светиках и было бы весьма полезно знать (хотя бы для себя) уровень пульсаций светильника.
запустился скетч из поста 96.
дисплей надо так подключать:
// pin 10 - Serial clock out (SCLK)
// pin 4 - Serial data out (DIN)
Доброе время суток
получил моник решил проэкспериментировать
все сторонние тесты на ура
при заливке данно скетча при отключённом датчике эффект "0"
на какой версии программы ардуино вы сидите?
sav13 - где наша глобальная ошибка?
Та программа написана на 1.0.5
Сейчас портирую все на 1.6.5 + u8glib + поддержка разных сенсоров
поборол я наползание.
в авторском скетче, видимо, случайно пропущены строки установки курсора дисплея в меню экрана 1 и 3.
вкупе с перепутаными пинами подключения дисплея, ошибкой в строке 75, поиском недостающих библиотек, хитрой установкой контрастности дисплея... всё это создаёт прекрасный прецендент для изучения Ардуино.
хорошо что есть откуда брать примеры, иначе этот скетч не запустить.
О, здорово.
sav13, У меня к вам вопрос по датчикам TCS3200: насколько они калиброваны и что можно выжать из них?
Для своего проекта "Ардуино как Лего" сделал на их базе 2 датчика. Поставил защитную трубку вокруг датчика от засветки светодиодами и закрыл это все в коробочку с дырками под светодиоды и датчик. Сделал:
драйвер приема показаний на базе счетчика Т5 Меги2560 по прерываниям (1024мксек). Датчик выдает частотный сигнал в цветах - подсчет количества импульсов входа Т5 за время 1.024мсек. Посчитал обратную матрицу RGB по усредненным данным из даташит, воткнул её в драйвер. Далее согласно даташиту обнаружил примерно 15% "общую засветку" в ИК области и сделал обратное повышение контрастности на 12.5% (1/8). Далее, согласно даташиту высчитал зависимость частоты показаний "белого" от мощности излучения и пересчитал коэффициент в люксы .. всё это сделано с округлениями и точностью в 0.5% ..
Каково будет освещение белого листа 60вт лампой накаливания с расстояния 0.5м, для "калибровки" датчика с расстояния 5см от листа? Датчик направляем на лист, а не на лампу..
Вопрос: насколько этот датчик может использоваться как люксометр или RGB определитель цвета при таком подходе? Как вы считаете?
поборол я это дело =)
убрал прерывания всякие, оставил только кнопку MODE
Каково будет освещение белого листа 60вт лампой накаливания с расстояния 0.5м, для "калибровки" датчика с расстояния 5см от листа? Датчик направляем на лист, а не на лампу..
Вопрос: насколько этот датчик может использоваться как люксометр или RGB определитель цвета при таком подходе? Как вы считаете?
Я сравнивал с несколькими поверенными люксметрами
Показания датчиков очень сильно зависят от конструкции сенсора. (Площадь окна, есть линза Френеля или нет), обысловленные назначением приборов. Даже два поверенных прибора могут сильно разнится в показаниях, хотя в испытательной лаборатории дают одно и тоже.
По результатам TSL2561 и BH1750 (в том числе разные экземпляры) дают практически идентичные показатели в одинаковых конструкциях. С поверенными прибрами хорошо бьются при расеянном освещении без косых лучей. Это говорит о том, что сами датчики идут откалиброванными с завода.
При использовании в конкретных условиях (например уличный датчик освещенности) требуется калибровка из-за положения и конструкции прибора целиком. В вашем случае защитный козырек сильно уменьшит освещенность по сравнению с поверенным приборам где сенсор в виде плоской или выпуклой линзы.
Поделитесь своим скетчем.
вот.
оставил только кнопку выбор режима. щас допиливаю туда ещё датчик на фоторезисторе(хз зачем, но пусть будет).
отображение будет в виде полоски с процентами.
вот.
оставил только кнопку выбор режима. щас допиливаю туда ещё датчик на фоторезисторе(хз зачем, но пусть будет).
Фоторезистор вещь бесполезная - большая инертность + непонятно как калибровать.
Лучше фотодиод для измерения пульсаций
это так.
но моих познаний в программировании на это не хватит.
а тут встретил скетч на фоторезисторе, красивенькая полоска с процентами, место на экрене есть =)
калибровать... ну например в яркий солнечный день это будет 100%, а дальше в уменьшающихся попугаях ))))
UPD. не, не получается у мну (((
там другая библиотека, а как их подружить - хз
вот код, мож кому пригодится
В конце статьи добавил обновленный скетч v 2.1 и ссылки на используемые библиотеки
ооо! вот это дело! sav13, спасибо!
а нет ли мыслей прикрутить фоторезистор(фотодиод)? )) место на экране в режиме 1 и 3 есть пусть бы бегала б себе полосочка с процентами.
а схему можно? я про часть кнопки "ВКЛ-ВЫКЛ". а то не совсем понял - кнопка с фиксацией, однако в скетче для неё есть код.
может есть смысл сделать как в транзистортестере с питанием от лития?
и ещё вопрос - изменения коснулись только того, что Вы упомянули? а то читал в блоге что собирались ещё чего-то изменять.
ооо! вот это дело! sav13, спасибо!
а нет ли мыслей прикрутить фоторезистор(фотодиод)? )) место на экране в режиме 1 и 3 есть пусть бы бегала б себе полосочка с процентами.
а схему можно? я про часть кнопки "ВКЛ-ВЫКЛ". а то не совсем понял - кнопка с фиксацией, однако в скетче для неё есть код.
может есть смысл сделать как в транзистортестере с питанием от лития?
и ещё вопрос - изменения коснулись только того, что Вы упомянули? а то читал в блоге что собирались ещё чего-то изменять.
Схему можно на пальцах )))
Дисплей:
U8GLIB_PCD8544 u8g(10, 4, 6, 5, 7);
CLK - pin10
DIN - Pin4
CE - Pin6
DC - Pin5
RST - Pin7
Питание дисплея напрямую к VCC (Было к Pin8)
Подсветка дисплея Pin9
Кнопка 1 (Подсветка) - Pin2
Кнопка 2 (Режим) - Pin3
Кнопка 3 с фиксацией в разрыв питания. В принципе, кнопку подсветки можно не делать, пусть всегда светит, когда включен.
Датчики I2C все к A4, A5 как обычно
Фотодиод я хочу в перспективе задействовать на измерение пульсаций. Но там нужно схему собирать - фотдиод + операционник. Сейчас эксперементирую с датчиком MAX44009 у которого мини мальный порог измерения 0.04 люкса, минимальное время измерения 6мс. Еще из интересного, что можно получать раздельные показания с ИК и оптического сенсора (также как и в TSL2561). В общем, перспектив много. Нужно только определтьбся, что нужно, что не нужно. Просто я использую эти сенсоры в параллельных проектах коммерческих.
ага, понял про кнопки, спасибо!
тогда добавлю в Ваш скетч вариант с кнопкой ВКЛ-ВЫКЛ без фиксации.
про фотодиод - не такая великая схема )))) код написать в разы труднее.
про "что нужно-не нужно"(вкл режим"фантазия"):
1. датчик на фотодиоде.
2. датчик на фоторезисторе - ну и что что он инерционный? зато калибровать просто - Солнце=100%, а дальше попугаи помогут =)
3. кнопку на ВКЛ-ВЫКЛ по типу транзистортестера - сложностей минимум, зато все кнопки одинаковые.
4. я б добавил стартовую страницу, где можно было б выбирать изображение на экране.
5. ну и добавил бы комментарий про калибровку фоторезистора(фотодиода) - это что б не программно, а что б в скетче.
ага, понял про кнопки, спасибо!
тогда добавлю в Ваш скетч вариант с кнопкой ВКЛ-ВЫКЛ без фиксации.
про фотодиод - не такая великая схема )))) код написать в разы труднее.
про "что нужно-не нужно"(вкл режим"фантазия"):
1. датчик на фотодиоде.
2. датчик на фоторезисторе - ну и что что он инерционный? зато калибровать просто - Солнце=100%, а дальше попугаи помогут =)
3. кнопку на ВКЛ-ВЫКЛ по типу транзистортестера - сложностей минимум, зато все кнопки одинаковые.
4. я б добавил стартовую страницу, где можно было б выбирать изображение на экране.
5. ну и добавил бы комментарий про калибровку фоторезистора(фотодиода) - это что б не программно, а что б в скетче.
С фотодиодами все не так просто - больше всего фотодиодов продается с максимумом в ИК диапозоне. Они используются для управления. Правильный измерительный диод стоит довольно дорого.
Изерение - солнце 100% не отражает сути. Солнце бывает очень разное, утром и вечером, зимой и летом, в дымке и т.д. Его тоже можно мерить в люксах, как и лампочки.
Все таки совершенно не вижу смысла в фоторезисторе с 10-битной АЦП ардуины, в то время, когда уже есть откалиброванный на заводе цифровой датчик 16-бит (TSL2561) или 22-бит (MAX44009)
В общем собираюсь следующую версию сделать примерно такой:
- Датчик MAX44009 в режиме максимальной точности.(0,045 - 188000 люкс). Сенсор выносной с линзой френеля от ИК сенсора
- Фотодиод для измерения пульсаций в том же сенсоре автоопределение процента и частоты пульсаций . В графике вообще не вижу смысла. На дополнительном экране можно добавить информацию раздельной освещенности с ИК и оптического диода сенсора MAX44009
- Соответсвенно, кнопка одна - вкл/выкл. Экран сделать миниатюрный 1602. На нем лучше все видно.
ну... солнце да, разное. я имел в виду что 100% = яркий свет, а всё остальное мерять относительно него.
про АЦП Ардуины понятно, тут без вопросов.
про кнопки - решили оставить один режим?
про миниатюрный индикатор... хозяин-барин но, как понимаю, можно будет простой 1602 прикрутить? хотя 5110 позволил бы визуализировать красиво даже [s]попугаев[/s] фоторезистор - полосочка с процентами убедит любого ))))
в любом случае, спасибо за труды!
ну... солнце да, разное. я имел в виду что 100% = яркий свет, а всё остальное мерять относительно него.
про АЦП Ардуины понятно, тут без вопросов.
про кнопки - решили оставить один режим?
про миниатюрный индикатор... хозяин-барин но, как понимаю, можно будет простой 1602 прикрутить? хотя 5110 позволил бы визуализировать красиво даже [s]попугаев[/s] фоторезистор - полосочка с процентами убедит любого ))))
в любом случае, спасибо за труды!
Давал попользоваться прибором раличным людям. График никому нафиг не нужен. Процент пульсации в очень редком случае. Поэтому и решил упростить управление для эргономики. Разве что на 12864 графику реализовать. Там хоть что-то внятное получится. На 5110 все жаловались - слепой дисплей.
Полосочка - она как раз совсем не информативная. Разве что ее к СНИПу привязать. Но для этого совсем не нужен фоторезистор, можно просто по формуле от освещенности с датчика длину ее расчитывать.
1602 полностью совместим с теми что на Али за копейки продаются
понятно. и с 1602 согласен с Вами - даж самый простой красиво смотрится.
про полосочку - я на ней чего зациклился? что б как-то визуализировать, что б красота была )))) потому и думал фоторезистор прицепить.
а график да, сумбурный хоть и симпатичный получился.
понятно. и с 1602 согласен с Вами - даж самый простой красиво смотрится.
про полосочку - я на ней чего зациклился? что б как-то визуализировать, что б красота была )))) потому и думал фоторезистор прицепить.
а график да, сумбурный хоть и симпатичный получился.
А еще интересный прибор получится, если убрать все экраны, заменить Ардуину на ESP8266 и выводить показания на телефон/планшет по WiFi
)))))))))))))))))))) и отчёт сразу с рабочего места отправлять в надзирающий орган.
как по мне, это неоправданно усложнит и удорожит вполне себе народный прибор.
но Вам виднее.
Показания датчиков очень сильно зависят от конструкции сенсора. (Площадь окна, есть линза Френеля или нет), обысловленные назначением приборов. Даже два поверенных прибора могут сильно разнится в показаниях, хотя в испытательной лаборатории дают одно и тоже.
Спасибо, но у меня нет доступа к поверенным приборам. В любом случае, как понимаю при одних и тех же условиях освещенность в люксах должна быть одинаковой. Вот про вашу возможную помощь в калибровке я и хотел попросить:
Чтобы условия можно было воспроизвести, предлагаю сделать так: берем обыкновенную лампу накаливания на 60вт, без абажуров и отражателей. Освещаем только ею (завесив шторки, ночью и т.п.) лист белой офисной бумаги типа "Снегурочка" (или другой) (отр. в 90-95% там часто нормировано) с расстояния в 50см. от центра листа и под углом к перпендикуляру градусов 45 (измерять удобно "на дому"). И измеряем освещенность этого листа вашим или поверенным прибором расположив его над центром листа сантиметрах 5 .. или сколько удобно. .. и получаем освещенность в люксах.
Её и хочется получить, и использовать далее как ориентир для поверки своего датчика. Мне просто понять насколько сильно я ошибся в пересчетных коэффициентах из даташита. Да и другим, у кого нет доступа к поверке - будет какая-никакая, а отправная точка.
Сможете? Спасибо.
Здравствуйте, sav13!
А вы сможете на ЕСР8266 прицепить пачку световых датчиков прикрутить разных диапазонов (ML8511, TSL2561 и тд) с выводом на планшет/смарт?
medtexsnab(собака)bk.ru
sav13! Благодарю!
Текущий скетчик прижился
буду дальше набираться опыта
з.ы. скетч из сообщещения №61 не "вгружается".
в чём там проблема - не стал копать, загрузил свой вариант из №60.
з.ы. скетч из сообщещения №61 не "вгружается".
Скомпилировался без проблем.
нужно
вредный совет? Эта линза для ИК 10 мкм (длина волны теплового излучения), кроме того - это линза френеля, так что при перемещении источника освещения или вращения датчика будут осцилляции показаний.
sav13
Проверьте, пож-ста, схему:
https://cloud.mail.ru/public/L35J/QZ2oZrHSX
----------------------------------
Спасибо за код ))
Повторил люксометр на дисплее от siemens a70
Управление и питание сделал на одной кнопке.
Ардуинка питается через р канальный полевик, включается 2с нажатием кнопки пока не запустится программа, отключяется по таймеру либо долгое удержание кнопки.
Уважаемые коллеги!
Что я делаю не так, почему эти ошибки?
Arduino: 1.6.7 (Windows 7), Плата:"Arduino Pro or Pro Mini, ATmega328 (3.3V, 8 MHz)"
In file included from C:\...\A70\A70.ino:10:0:
C:\...\Documents\Arduino\libraries\PCF8812_NEW/font_12x16_rus.h:8:8: error: 'prog_uint8_t' does not name a type
static prog_uint8_t font_12x16_rus[] PROGMEM=
^
In file included from C:\...\A70\A70.ino:11:0:
C:\...\Documents\Arduino\libraries\PCF8812_NEW/font_5x8.h:8:8: error: 'prog_uint8_t' does not name a type
static prog_uint8_t font_5x8[] PROGMEM =
^
In file included from C:\...\A70\A70.ino:12:0:
C:\...\Documents\Arduino\libraries\PCF8812_NEW/font_16x24.h:8:8: error: 'prog_uint8_t' does not name a type
static prog_uint8_t font_16x24[] PROGMEM=
^
C:\...\A70\A70.ino: In function 'void DisplayMode1()':
A70:65: error: 'font_12x16_rus' was not declared in this scope
A70:70: error: 'font_5x8' was not declared in this scope
C:\...\A70\A70.ino: In function 'void DisplayMode2()':
A70:89: error: 'font_5x8' was not declared in this scope
C:\...\A70\A70.ino: In function 'void power_off()':
A70:108: error: 'font_12x16_rus' was not declared in this scope
satman123,
http://rgho.st/8spyZ44Qm решение вашей поблемы )) Подправленая библиотека.
Удачный приборчик получился. Попробвал оба сенсора. Но для работы со светодиодным освещением хотелось бы с пульсациями поподробнее, так сказать. Существующей точности от датчика TSL маловато. При частоте пульсаций драйвера или любой другой схемы питания светодиодов 100Гц (10мс) уже выходим за возможности датчика (13мс). Наткнулся на аналоговый датчик ТЕМТ6000 разработанный для видимого спектра. На нем можно было бы реализовать измерение пульсаций с бОльшей точностью?
Господа, здравствуйте!
Вопрос понимаю не совсем по теме, но на других форумах никто внятно не ответил...(
Как датчик ВН1750 перевести в режим низкого разрешения ( 16мс )? В проекте который мы начали с сыном не нужна высокая точность измерения..., неоходима скорость ( так понимаю по умолчанию идет 1Лк/120мс , а это для меня много ибо импульс потока всего 100+-10мс ). зараннее благодарен!
Что-то давно никаких новостей о люксметре. Как опыты с МАХ44009?
Что-то давно никаких новостей о люксметре. Как опыты с МАХ44009?
Опыты прошли успешно.
Точность отличная, диапазон намного больше. Цены на Али все падают и падают.
Только пока в люксметре нет необходимости. Есть ряд стационарных датчиков.
С диапазоном я уже тоже проверял, хороший датчик. А пробовали пульсации этим датчиком измерять? У него, судя по даташиту 6,25мс быстродействие, должно хватить для бытовых целей?
С диапазоном я уже тоже проверял, хороший датчик. А пробовали пульсации этим датчиком измерять? У него, судя по даташиту 6,25мс быстродействие, должно хватить для бытовых целей?
Там все сложнее. Чем меньше время интеграции, тем хуже измеряемый диапазон. Нет автоматического переключения. А учшие результаты получаются на 800мс
Я забил на пульсации. Если нужно, можно их фототранзистором померить, подключенным к осциллографу. Или фотодиодом с усилителем
Ну вот я тоже начал пытать ТЕМРТ6000 фототранзистор, посмотрим, какие он результаты даст по измерению пульсаций. Я довольно много делаю всякой всячины на светиках и было бы весьма полезно знать (хотя бы для себя) уровень пульсаций светильника.