Перейти к контенту
МОРСКОЙ АКВАРИУМ - форум Аква Лого

Аква Лого / мы на связи
Аква Лого в VK
Аква Лого в Телеграмм
Аква Лого в соцсетях

Паутинный шелк

Необычный половой диморфизм

Водяной паук

Alex_M

Лед светильник 70Вт. для DMS 500PL (72л.)

Рекомендуемые сообщения

Вообще-то я это к чему спрашивал))

Имеется - Arduino UNO, LCD16x2, часы, датчики температуры...

Увидев вашу тему, подумал - вот оно, то, что надо!))) Затрат минимум, эффективность - 100%

Скетч с библиотеками запустились сразу. Все нормально работает. Подключаю LCD - по I2C, проблема((( С "delay (60000)", время на дисплее и температура обновляется через минуту((

Убираю delay - все работает нормально.

Т.к. в ардуино понимаю, надеюсь пока) мало, возник вопрос - ничего там никуда в память не забивается???)) Так что в итоге работать вообще не будет????))

Поделиться этим сообщением


Ссылка на сообщение

Да все правильно.

 

В Вашем варианте можно сделать так.

 


void loop ()
{
if ( ( millis() % 60000 ) == 0 ) //вызов раз в минуту
{
Led_Dim_PWM();
RalayOnOff();
}
if ( ( millis() % 1000 ) == 0 ) //вызов раз в секунду, читаем температуру и обновляем экран
{
Temp_read(); //читаем температуру
Screen_out(); //обновляем экран
}
}

Изменено пользователем Alex_M (см. историю изменений)

Поделиться этим сообщением


Ссылка на сообщение

Вообще-то я это к чему спрашивал))

Имеется - Arduino UNO, LCD16x2, часы, датчики температуры...

Увидев вашу тему, подумал - вот оно, то, что надо!))) Затрат минимум, эффективность - 100%

Скетч с библиотеками запустились сразу. Все нормально работает. Подключаю LCD - по I2C, проблема((( С "delay (60000)", время на дисплее и температура обновляется через минуту((

Убираю delay - все работает нормально.

Т.к. в ардуино понимаю, надеюсь пока) мало, возник вопрос - ничего там никуда в память не забивается???)) Так что в итоге работать вообще не будет????))

 

а какие датчики температуры используете?

 

можете пример кода скинуть работы с ними и с дисплеем?

 

UPD. да у Алекса действительно простой для освоения проект, код, написанный доступно. То с чего стоит начать. всего по минимуму, при этом достаточно. у меня уже несколько месяцев работает светильник и я к нему не подхожу )

 

UPD2. Хотел еще спросить, у меня иногда на ардуине лампочка с зеленого меняет цвет на оранжевый и так и горит если не передернуть питание. что это может быть? )

Изменено пользователем Basopotam (см. историю изменений)

Поделиться этим сообщением


Ссылка на сообщение

Да все правильно.

 

В Вашем варианте можно сделать так.

 


void loop ()
{
if ( ( millis() % 60000 ) == 0 ) //вызов раз в минуту
{
Led_Dim_PWM();
RalayOnOff();
}
if ( ( millis() % 1000 ) == 0 ) //вызов раз в секунду, читаем температуру и обновляем экран
{
Temp_read(); //читаем температуру
Screen_out(); //обновляем экран
}
}

 

имха

 

так не очень хорошо делать.

дело в том, что проверив переменную "на один раз в минуту" и что-то там поделав (да и даже ни чего не делая), не факт что вы отследите событие "в каждую секунду" (конечно, это особенно актуально для коротких интервалов, исчисляемых милисекундами).

нет если конечно стабильность и точность сего события не важна, можно и так, но работать может через раз.

 

необходимо делать вложения от частого к редкому, но даже такой подход не обеспечит максимальной точности исполнения. если у вас более одного/двух временных маркеров, лучше отслеживать их в прерывании по таймеру (в прерывании выставляете маркеры, а уже в основном цикле их проверяете, выполняете и сбрасываете)

Изменено пользователем Kiraso (см. историю изменений)

Поделиться этим сообщением


Ссылка на сообщение
Basopotam
По поводу "мегаконтроллера" - согласен. Слишком много всего....
Дтчики температупы - DS18B20.
А если по порядку)) Arduino Uno, LCD Keypad Shield DFRobot (это LCD с кнопками. Сверху уны ставить удобно, а вот если хочешь использовать выходы на ардуино по полной, то он нафиг не нужен)), тем более при подключении его по I2C, у него RW на землю запаян, так что без напильника не обойтись - надо отрывать), часы 1307.
LCD подключен по I2C через микросхему PCF8574.
Сначала запускал часы, датчики температуры.... Потом пытался объединить скетчи.
В итоге заработало только так:


// Подключение необходимых библиотеки
#include <Wire.h>
#include "RTClib.h"
#include <OneWire.h>
#include <DallasTemperature.h>

// Датчик (или датчики) подключаются к пину 2 Ардуины
#define ONE_WIRE_BUS 2

// настройка «onewire» для работы с любыми другими девайсами (не только Dallas датчиками температуры)
OneWire oneWire(ONE_WIRE_BUS);

// подключаем Dallas Temperature.
DallasTemperature sensors(&oneWire);

// подключение библиотеки для LCD через PCF8574
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x38,16,2); // «0х38» адрес LCD

int k=0; // назначение для переменной при нажатии кнопок
int u=0; // назначение 2-й переменной для датчика уровня
int v=0; // назначение 3-й переменной для охлаждения воды
int Relay1=7; // вентилятор охлаждения радиатора, назначаем 7-й выход
int Relay2=8; // включение «луны», назначаем 8 выход
byte Relay1Status=false;
byte Relay2Status=false;
int Relay3 = 4; // вентилятор охлаждения воды, назначаем 4-й выход
int Relay4 = 12; // автодолив, назначаем 12-й выход

RTC_DS1307 RTC;
// назначаем время восходов и закатов, выходы PWM
int Hours_Start_Sunrise[6] = {11, 9, 10, 11, 12, 12}; // начало рассвета по каналам час
int Minutes_Start_Sunrise[6] = {0, 0, 0, 0, 0, 0}; // начало рассвета по каналам минута
int Hours_End_Sunrise[6] = {15, 12, 13, 14, 15, 15}; // окончание рассвета по каналам час
int Minutes_End_Sunrise[6] = {0, 0, 0, 0, 0, 0}; // окончание рассвета по каналам минута

int Hours_Start_Sunset[6] = {17, 20, 19, 18, 17, 17}; // начало заката по каналам час
int Minutes_Start_Sunset[6] = {0, 0, 0, 0, 0, 0}; // начало заката по каналам минута
int Hours_End_Sunset[6] = {21, 23, 22, 21, 21, 21}; // окончание заката по каналам час
int Minutes_End_Sunset[6] = {0, 0, 0, 0, 0, 0}; // окончание заката по каналам минута

int MinuteDay_Start_Sunrise[6]; // день в минутах для начала рассвета
int MinuteDay_End_Sunrise[6]; // день в минутах для окончания рассвета

int MinuteDay_Start_Sunset[6]; // день в минутах для начала заката
int MinuteDay_End_Sunset[6]; // день в минутах для окончания заката

int Current_MinuteDay; // текущая минута суток
int Current_Period[6]; // текущая часть суток 1-рассвет, 2-день, 3-закат, 4-ночь для каждого ШИМ

int Meridian_PWM[6] = {128, 128, 128, 128, 128, 76}; // макс. значение ШИМ 50% на все каналы, 76% на Red
int Midnight_PWM[6] = {0, 0, 0, 0, 0, 0}; // минимальное значение ШИМ
int Current_PWM[6] = {0, 0, 0, 0, 0, 0}; // текущее значение ШИМ


/* *********************************************************/
/* * * */
/* * ШИМ пин для CW, TV, RB, NB, CY, DR * */
/* * Пин - 3 - CW - Cool White * */
/* * Пин - 5 - TV - True Violet * */
/* * Пин - 6 - RB - Royal Blue * */
/* * Пин - 7 - NB - Blue * */
/* * Пин - 10 - CY – Cyan * */
/* * Пин - 11 - DR - DeepRed * */
/* * * */
/* *********************************************************/

int PWM_Pin[6] = {3, 5, 6, 9, 10, 11}; // назначение PWM выходов для CW, TV, RB, NB, CY, DR


void setup ()
{

lcd.init();
lcd.backlight();
Serial.begin(57600);
Wire.begin();
RTC.begin();
sensors.begin();

pinMode(A0, INPUT); // настраиваем аналоговый вход A0
pinMode(A1, INPUT); // настраиваем аналоговый вход A1

// назначаем на 7-м и 8-м пинах уровени
pinMode(Relay1, OUTPUT);
pinMode(Relay2, OUTPUT);
digitalWrite(Relay1, LOW);
digitalWrite(Relay2, HIGH);
// назначаем на 4-м и 12-м пинах (пины реле) низкий уровень
pinMode(Relay4, OUTPUT);
digitalWrite(Relay4, LOW);
pinMode(Relay3, OUTPUT);
digitalWrite(Relay3, LOW);

if (! RTC.isrunning())
{
lcd.setCursor(0, 0);
lcd.print("RTC no time");
//строчка ниже – установка времени (для установки – убрать комм. и установить дату и время)
//RTC.adjust(DateTime(__DATE__, __TIME__));
}

for (int i=0; i<=5; i++)
{
pinMode(PWM_Pin[i], OUTPUT); // Установка пин для ШИМ
}

for (int i=0; i<=5; i++)
{
analogWrite(PWM_Pin[i], Midnight_PWM[i]); // Установка минимального значения ШИМ
Current_PWM[i]=Midnight_PWM[i]; // Установка текущих значений ШИМ в минимум
}

for (int i=0; i<=5; i++)
{
MinuteDay_Start_Sunrise[i]=60*Hours_Start_Sunrise[i] + Minutes_Start_Sunrise[i]; // Расчет минуты суток для начала рассвета
MinuteDay_End_Sunrise[i]=60*Hours_End_Sunrise[i] + Minutes_End_Sunrise[i]; // Расчет минуты суток для окончания рассвета
MinuteDay_Start_Sunset[i]=60*Hours_Start_Sunset[i] + Minutes_Start_Sunset[i]; // Расчет минуты суток для начала заката
MinuteDay_End_Sunset[i]=60*Hours_End_Sunset[i] + Minutes_End_Sunset[i]; // Расчет минуты суток для окончания заката
}

}


// Процедура расчета текущего периода и значения PWM по каналам

void Led_Dim_PWM()
{
DateTime now = RTC.now();
Current_MinuteDay = (now.hour() * 60) + now.minute();

for (int i=0; i<=5; i++)
{
Current_Period[i]=4;
if (Current_MinuteDay>=MinuteDay_Start_Sunrise[i] && Current_MinuteDay<=MinuteDay_End_Sunrise[i])
{
Current_Period[i]=1;
}
if (Current_MinuteDay>MinuteDay_End_Sunrise[i] && Current_MinuteDay<MinuteDay_Start_Sunset[i])
{
Current_Period[i]=2;
}
if (Current_MinuteDay>=MinuteDay_Start_Sunset[i] && Current_MinuteDay<=MinuteDay_End_Sunset[i])
{
Current_Period[i]=3;
}

if (Current_Period[i]==1)
{
Current_PWM[i]=(float)(((float)Current_MinuteDay-MinuteDay_Start_Sunrise[i])/((float)MinuteDay_End_Sunrise[i]-MinuteDay_Start_Sunrise[i]))*((float)Meridian_PWM[i]-Midnight_PWM[i]);

if (Current_PWM[i]<Midnight_PWM[i])
{
Current_PWM[i]=Midnight_PWM[i];
}
analogWrite(PWM_Pin[i], Current_PWM[i]);
}

if (Current_Period[i]==2)
{
if (Current_PWM[i]!=Meridian_PWM[i])
{
Current_PWM[i]=Meridian_PWM[i];
analogWrite(PWM_Pin[i], Current_PWM[i]);
}
}

if (Current_Period[i]==3)
{
Current_PWM[i]=(float)(((float)MinuteDay_End_Sunset[i]-Current_MinuteDay)/((float)MinuteDay_End_Sunset[i]-MinuteDay_Start_Sunset[i]))*((float)Meridian_PWM[i]-Midnight_PWM[i]);
analogWrite(PWM_Pin[i], Current_PWM[i]);
}

if (Current_Period[i]==4)
{
if (Current_PWM[i]!=Midnight_PWM[i])
{
Current_PWM[i]=Midnight_PWM[i];
if (Current_PWM[i]<Midnight_PWM[i])
{
Current_PWM[i]=Midnight_PWM[i];
}
analogWrite(PWM_Pin[i], Current_PWM[i]);
}
}
}

Serial.print(now.year(), DEC);
Serial.print('/');
Serial.print(now.month(), DEC);
Serial.print('/');
Serial.print(now.day(), DEC);
Serial.print(' ');
Serial.print(now.hour(), DEC);
Serial.print(':');
Serial.print(now.minute(), DEC);
Serial.print(':');
Serial.print(now.second(), DEC);
Serial.print(" Current_MinuteDay: ");
Serial.print(Current_MinuteDay, DEC);
Serial.println();


for (int i=0; i<=5; i++)
{
Serial.print("Channel #");
Serial.print(i, DEC);
Serial.print(", Current Period: ");
if (Current_Period[i]==1) {Serial.print("Sunrise");}
if (Current_Period[i]==2) {Serial.print("Meridian");}
if (Current_Period[i]==3) {Serial.print("Sunset");}
if (Current_Period[i]==4) {Serial.print("Midnight");}
Serial.print(", Current PWM: ");
Serial.print(Current_PWM[i], DEC);
Serial.println();
}
Serial.println();
}

void RalayOnOff()
{
int SumPWM=0;

for (int i=0; i<=5; i++)
{
SumPWM=SumPWM+Current_PWM[i];
}
if (SumPWM>=50 && Relay1Status==false)
{
Relay1Status=true;
Relay2Status=false;
digitalWrite(Relay1, HIGH);
digitalWrite(Relay2, LOW);
}

if (SumPWM<50 && Relay1Status==true)
{
Relay1Status=false;
Relay2Status=true;
digitalWrite(Relay1, LOW);
digitalWrite(Relay2, HIGH);
}
}
void loop ()
{
{

Led_Dim_PWM();
RalayOnOff();

}

DateTime now = RTC.now();
sensors.requestTemperatures(); // запрос показаний температуры

k=analogRead(0); // значение «k» равно аналоговому входу A0
u=analogRead(1); // значение «u» равно аналоговому входу A1

if (u<10) // при срабатывании датчика уровня, на выходе 4 устанавливается высокий уровень
{
digitalWrite(Relay4, HIGH);
delay(3000);
}
else if (u>=10) // при срабатывании датчика уровня, на выходе 4 устанавливается низкий уровень
{
digitalWrite(Relay4, LOW);
}


v=sensors.getTempCByIndex(1); // переменной "v" присваивается темп. 1-го датчика (Т воды)
if (v>=28) // если температура поднимается до 28 градусов, срабатывает реле на вентилятор охлаждения
{
digitalWrite(Relay3, HIGH);
}
else if (v<26) // если температура опускается до 26 градусов, вентилятор выключается
{
digitalWrite(Relay3, LOW);
}
if (k>1000) // если кнопки не нажаты, то высвечивается время и данные по температуре
{
lcd.setCursor(0, 0);
lcd.print(now.hour(), DEC);
lcd.print(":");
lcd.print(now.minute(), DEC);
lcd.print(":");
lcd.print(now.second(), DEC);
lcd.print(" ");
lcd.setCursor(0, 1);
lcd.print("A="); // температура аквариума
lcd.setCursor(2, 1);
lcd.print(sensors.getTempCByIndex(0)); // первый датчик в воде
lcd.print(" ");
lcd.setCursor(8, 1);
lcd.print("R="); // температура на радиаторе
lcd.setCursor(10, 1);
lcd.print(sensors.getTempCByIndex(1)); // второй датчик на радиаторе
}
}
Понимаю, что не очень красиво))
В комментариях расписано - что и для чего)))

Алекс!
Можете помочь?
Вот куда это:

[color=#000088]if[/color] [color=#666600]([/color] [color=#666600]([/color] millis[color=#666600]()[/color] [color=#666600]%[/color] [color=#006666]1000[/color] [color=#666600])[/color] [color=#666600]==[/color] [color=#006666]0[/color] [color=#666600])[/color] [color=#880000]//вызов раз в секунду, читаем температуру и обновляем экран[/color]
[color=#666600]{[/color]
[color=#660066]Temp_read[/color][color=#666600]();[/color] [color=#880000]//читаем температуру[/color]
[color=#660066]Screen_out[/color][color=#666600]();[/color] [color=#880000]//обновляем экран[/color]
[color=#666600]}[/color]

надо пришпилить?
Или... как правильно сделать?

P.S. Знатоков прошу не шпынять)) Помогите лучше с советом))
Никогда с программированием не дружил)) С паяльником и электрикой - более менее, а вот с программированием....

Надеюсь за офтоп не примут? а то может уже пора ветку по программированию ардуино открывать))

Поделиться этим сообщением


Ссылка на сообщение

Круто! )

 

а можно к коду приложить ссылки на библиотеки?

 

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

 

логика такая:

 

Нажимаем одновременно 2 кнопки (первая и вторая) и переходим в режим ручного управления светом:

 

1. кнопка выбор канала

2. кнопка яркость + (шим +)

3. кнопка яркость минус (шим минус)

 

выход из ручного режима нажимаем одновременно 2 кнопки.

 

 

 

Автодолив через релюху подключен? и какой датчик уровня воды используется?

 

Для i2c использовалась такая шняга? http://www.ebay.com/itm/IIC-I2C-interface-Level-Conversion-Module-5-3v-System-Arduino-Sensor-new-/330810342439?pt=LH_DefaultDomain_0&hash=item4d05d53c27

Изменено пользователем Basopotam (см. историю изменений)

Поделиться этим сообщением


Ссылка на сообщение
Алекс!

Можете помочь?

Вот куда это:

 

if ( ( millis() % 1000 ) == 0 ) //вызов раз в секунду, читаем температуру и обновляем экран

{

Temp_read(); //читаем температуру

Screen_out(); //обновляем экран

}

 

надо пришпилить?

Или... как правильно сделать?

 

Сходу не подскажу.

Я сам пока только начинаю разбираться с arduino. Я планировал объявить глобальные переменные для хранения считанных значений температуры и создал бы отдельную процедуру для считывания с датчиков температуры. А где необходимо использовал бы значения температуры из глобальной переменой.

Поделиться этим сообщением


Ссылка на сообщение

Вот если бы она еще работал))) Было бы .... круто))))

Вот в настоящий момент дисплей ничего не показывает. На serial.print - шим начинает переходить в "закат" и уменьшать значения. Т.е основная программа работает, а вот все что вокруг...)))

Кнопки распаены через резисторы. Если только поочередно - кнопок - 5 штук.

Да, по поводу релюх забыл.... 4 релюхи управление - 5 вольт. А уровни - герконовые, черз резистор на 5 в. При замыкании - на общий (землю).

Это все на коленках, на плате монтажной)) По отдельности - все работает. А вот вместе(((

По поводу библиотек - библиотеки те, что Алекс давал + :

 

DallasTemperature.zip

 

LiquidCrystal_I2C.zip

 

Все работает в версии - 1.0

 

Сходу не подскажу.

Я сам пока только начинаю разбираться с arduino. Я планировал объявить глобальные переменные для хранения считанных значений температуры и создал бы отдельную процедуру для считывания с датчиков температуры. А где необходимо использовал бы значения температуры из глобальной переменой.

 

Мдя.... для меня темный лес.... переменные((

Поделиться этим сообщением


Ссылка на сообщение

Алекс!

Спасибо за подсказку:

if ( ( millis() % 1000 ) == 0 ) //вызов раз в секунду, читаем температуру и обновляем экран

{

Temp_read(); //читаем температуру

Screen_out(); //обновляем экран

}

В итоге сделал отдельный блок для температуры и датчиков, все нормально работает!!!!

 

 

Basopotam

Для i2c использовалась такая шняга? http://www.ebay.com/...=item4d05d53c27

Нет. По i2c подключил так - http://jt5.ru/examples/oled-i2c/

Там все расписано.

Поделиться этим сообщением


Ссылка на сообщение

Алекс!

Спасибо за подсказку:

if ( ( millis() % 1000 ) == 0 ) //вызов раз в секунду, читаем температуру и обновляем экран

{

Temp_read(); //читаем температуру

Screen_out(); //обновляем экран

}

В итоге сделал отдельный блок для температуры и датчиков, все нормально работает!!!!

Отлично. Рад что смог помочь.

Поделиться этим сообщением


Ссылка на сообщение

Алекс!

Спасибо за подсказку:

if ( ( millis() % 1000 ) == 0 ) //вызов раз в секунду, читаем температуру и обновляем экран

{

Temp_read(); //читаем температуру

Screen_out(); //обновляем экран

}

В итоге сделал отдельный блок для температуры и датчиков, все нормально работает!!!!

 

 

Basopotam

Для i2c использовалась такая шняга? http://www.ebay.com/...=item4d05d53c27

Нет. По i2c подключил так - http://jt5.ru/examples/oled-i2c/

Там все расписано.

 

интересная тема, спасибо.

 

Наверное есть изначально экраны с кнопками, работающие по i2c. Не думал делать на таких?

Поделиться этим сообщением


Ссылка на сообщение

Наверное есть, не знаю. Знаю что шилды LCD с i2c сразу есть (там та же микросхема стоит PCF8574)

Поделиться этим сообщением


Ссылка на сообщение

Светодиоды: сборки Димы.

Управление: arduino nano.

 

Все остальное опишу, когда будет готов светильник, т.к. многое меняется в процессе сборки светильника. :)

 

Алекс!

Если не секрет, баночка та же? Просто интересно, сколько сборок планируете?

Поделиться этим сообщением


Ссылка на сообщение

Алекс!

Если не секрет, баночка та же? Просто интересно, сколько сборок планируете?

 

Светильник под новую банку.

Сборок будет 10шт. (уже куплены).

Поделиться этим сообщением


Ссылка на сообщение

Начал обновление светильника:

 

На данный момент выкинул все фиолетовые светодиоды (от 385 до 420нм) и поставил COB 420нм 1шт и COB 430нм 2шт.

COBы работают сейчас на 0.6А и общая мощность примерно 16-17Вт.

Планирую использовать их на 1А, тогда будет примерно 28-30Вт.

 

После замены: флуоресценция уменьшилась, но и засветка мути в воде тоже исчезла. Цвет более приятный на глаз.

 

 

Объединил цианы и зеленые в одну цепочку, отключил DR совсем.

 

Далее планирую: увеличить количество RB до 10-12шт, B до 8шт., возможно, уменьшить CW до 4шт.

Поделиться этим сообщением


Ссылка на сообщение

Если не секрет, какие токи сейчас на каналах?

И здорово было бы фотки посмотреть)))

Поделиться этим сообщением


Ссылка на сообщение

Начал обновление светильника:

 

На данный момент выкинул все фиолетовые светодиоды (от 385 до 420нм) и поставил COB 420нм 1шт и COB 430нм 2шт.

COBы работают сейчас на 0.6А и общая мощность примерно 16-17Вт.

Планирую использовать их на 1А, тогда будет примерно 28-30Вт.

 

После замены: флуоресценция уменьшилась, но и засветка мути в воде тоже исчезла. Цвет более приятный на глаз.

 

 

Объединил цианы и зеленые в одну цепочку, отключил DR совсем.

 

Далее планирую: увеличить количество RB до 10-12шт, B до 8шт., возможно, уменьшить CW до 4шт.

 

можно пояснить, что имеется в виду по сов?

 

все нашел ))) спасиб! а что за компоненты использовал?

Изменено пользователем Basopotam (см. историю изменений)

Поделиться этим сообщением


Ссылка на сообщение

Если не секрет, какие токи сейчас на каналах?

И здорово было бы фотки посмотреть)))

По каналам на максимуме:

1. TV сейчас 0.6А, планирую 1А

2. RB сейчас 0.7А, планирую 1А

3. B сейчас 0.6А, планирую 0.7А

4. C+G сейчас 0.5, планирую C 0.5А, G 0.6A

5. DR отключен

6. CW сейчас 1А, планирую 1А

Последние фотографии есть в моей теме

 

можно пояснить, что имеется в виду по сов?

Вот такие

420nm

430nm

Поделиться этим сообщением


Ссылка на сообщение

 

 

 

Вот такие

420nm

430nm

 

какие впечатления по данным диодам?

Поделиться этим сообщением


Ссылка на сообщение

какие впечатления по данным диодам?

Не давно поставил, пока рано делать выводы…

По цвету все нормально.

Поделиться этим сообщением


Ссылка на сообщение

Будет значительная засветка мути в воде (хотя и флуоресценция увеличится), особенно если «левый хвост» распределения уйдет за 400нм.

Поделиться этим сообщением


Ссылка на сообщение

а можешь написать физические размеры матриц которые ты используешь? а то у меня на радиаторе всего понатыкано...

Поделиться этим сообщением


Ссылка на сообщение

а можешь написать физические размеры матриц которые ты используешь? а то у меня на радиаторе всего понатыкано...

Вечером посмотрю.

Поделиться этим сообщением


Ссылка на сообщение

Пожалуйста, авторизуйтесь, чтобы оставить комментарий

Вы сможете оставлять комментарии после авторизации



Войти

×
×
  • Создать...

Политика обработки персональных данных