Автор Тема: EC-метр на базе ардуино  (Прочитано 18369 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Vad

  • Ветеран
  • *****
  • Сообщений: 6609
  • Мой аватар вырос.. на гидропонике :)
EC-метр на базе ардуино
« Ответ #150 : 24 Октября 2017, 23:48:00 »
Только зарегистрированные пользователи могут просматривать ссылки. Зарегистрируйтесь или Выполните вход
delayMicroseconds
нужно застрелить того пионера, который написал  дилэй для арду..
даже не застрелить.. а четвертовать! >:D
Форум сгнил.

Оффлайн serge mat

  • Старожил
  • ****
  • Сообщений: 310
  • химик со стажем
    • Email
EC-метр на базе ардуино
« Ответ #151 : 25 Октября 2017, 06:56:51 »
Только зарегистрированные пользователи могут просматривать ссылки. Зарегистрируйтесь или Выполните вход
Только зарегистрированные пользователи могут просматривать ссылки. Зарегистрируйтесь или Выполните вход
delayMicroseconds
нужно застрелить того пионера, который написал  дилэй для арду..
даже не застрелить.. а четвертовать! >:D
Вот не надо!
У меня на кружке пятиклашки, я показал им код без делея... Они не въехали. Нельзя же так сразу! Надо постепенно, сначала делей, а потом можно и отказаться...

Оффлайн Vad

  • Ветеран
  • *****
  • Сообщений: 6609
  • Мой аватар вырос.. на гидропонике :)
EC-метр на базе ардуино
« Ответ #152 : 25 Октября 2017, 13:24:11 »
Ну тут же не клуб пятиклассников.. *???*
я понимаю, что уровень развития некоторых товарисчей, присутствующих в обсуждении, даже ниже вашего кружка пятиклашек..
но... тем не менее... зачем детям такое показывать вообще...?
пусть бы они о дилэе узнали  потом, когда всему научились бы... узнали бы... и офигели.. :o


Форум сгнил.

Оффлайн PAA

  • Новичок
  • *
  • Сообщений: 16
    • Email
EC-метр на базе ардуино
« Ответ #153 : 25 Октября 2017, 18:42:01 »
..."Вад, использует встроенный ИОН,  измеряет  всего 10 раз.. на каждом из  4х ЕС метрах, медленно и методично, не подгоняя АЦП,  использует всю шкалу, все 10 бит, включая 2 младших, которые у него не шумят "потому что" Вад никуда не спешит."....
- Прошу прощения, Вад, я перепутал. Это ТС использует ускорение АЦП до 1МГЦ.
Что касается шума, то младший бит будет шуметь всегда, таковы особенности квантования, вы просто фильтруете шумы применяя обработку (ИМХО).

Оффлайн PAA

  • Новичок
  • *
  • Сообщений: 16
    • Email
EC-метр на базе ардуино
« Ответ #154 : 25 Октября 2017, 19:26:14 »
Уважаемый serge mat, я увидел в вашем коде, что вы ускоряете команду analogRead() при помощи изменения настроек регистра ADCSRA - "
(n & 4)   cbi(ADCSRA,ADPS2) ;
else    sbi(ADCSRA,ADPS2) ;
if  (n & 2)   cbi(ADCSRA,ADPS1) ;
else    sbi(ADCSRA,ADPS1) ;
if  (n & 1)   cbi(ADCSRA,ADPS0) ;
else    sbi(ADCSRA,ADPS0) ; - т.е. меняя значения трёх последних бит ( уменьшаете коэф. деления  - увеличивая тактовую частоту АЦП). Я уже писал, что разработчики не рекомендуют повышать её более 200кГц!!!. Если у вас Ардуино 16 МГЦ, то коэф. деления лучше не устанавливать меньше чем 64, при этом теоретически максимальная  частота переключения электродов должна быть не более чем 16х106/64/13 = 19.23кГц.
Но существует одна хитрость, которая позволяет не только поднять частоту переключения , но и сэкономить ресурс МК.  Дело в том, что АЦП в МК исп-т алгоритм последовательного приближения, а это означает, что время преобразования зависит от уровня аналогового сигнала на входе АЦП. АЦП требует 13 тактов, только при макс. входном сигнале - короче, есть алгоритм настроек АЦП, по сигналу окончания преобразования, который используется как  прерывание. В этом случае, АЦП будет реально работать в несколько раз быстрее без потери точности. Т.е. алгоритм таков: Идет переключение электрода, которое запускает преобразование, окончание преобразования переключает электрод и снова запускает преобразование и т.д. сколько раз - сколько вам необходимо измерений.  По поводу задержки - не нужно тут ни каких задержек, сбрасываете значение первого преобразования - вот это и есть задержка. Ваша задержка не оптимальна, длительность пер. процесса зависит от уровня сигнала и время преобразования тоже зависит, т.о. задержка будет плавающая на время перех. процесса (т.е. адаптивная), а у вас постоянная, переходный процесс давно закончился а ядро всё будет ждать когда закончится ваша задержка. Ну и про шумы - у МК в настройках регистра ADMUX (REFS[1:0])можно задать разные ИОН для АЦП так же и командой analogReference(). По умолчанию ИОН это ваш VCC из USB, а там шумов.... и все они пролазят в ADC value. Поменяйте ИОН на стабильный, похерьте младший разряд, разберитесь с analogRead и будет вам счастье и не нужно вам делать 300 выборок и тем более 5000 как Сив, вам для фильтрации хватит 10-15 выборок (ИМХО). Во всяком случае я себе пишу код именно под такой алгоритм.

Оффлайн serge mat

  • Старожил
  • ****
  • Сообщений: 310
  • химик со стажем
    • Email
EC-метр на базе ардуино
« Ответ #155 : 25 Октября 2017, 21:06:18 »
Только зарегистрированные пользователи могут просматривать ссылки. Зарегистрируйтесь или Выполните вход
Ну и про шумы - у МК в настройках регистра ADMUX (REFS[1:0])можно задать разные ИОН для АЦП так же и командой analogReference(). По умолчанию ИОН это ваш VCC из USB, а там шумов.... и все они пролазят в ADC value. Поменяйте ИОН на стабильный, похерьте младший разряд, разберитесь с analogRead и будет вам счастье и не нужно вам делать 300 выборок и тем более 5000 как Сив, вам для фильтрации хватит 10-15 выборок (ИМХО). Во всяком случае я себе пишу код именно под такой алгоритм.
Давайте сначала об опорном напряжении. Команда analogReference() знает для UNO только три варианта аргумента. Сейчас стоит DEFAUL. Есть еще INTERNAL, но там напряжение ниже, как я понял. И EXTERNAL. Это значит мне надо батарейку вешать специальную? Опять же на 5В надо не одну батарейку... Как это грамотно сделать?

Оффлайн Vad

  • Ветеран
  • *****
  • Сообщений: 6609
  • Мой аватар вырос.. на гидропонике :)
EC-метр на базе ардуино
« Ответ #156 : 25 Октября 2017, 21:46:28 »
Только зарегистрированные пользователи могут просматривать ссылки. Зарегистрируйтесь или Выполните вход
алгоритм последовательного приближения, а это означает, что время преобразования зависит от уровня аналогового сигнала на входе АЦП.
вы опять  что-то путаете
последовательное  приближение -  "я угадаю ваши 10 бит за  10  шагов"
а значит пофиг какое напряжение  на входе..
придется пройти все 10 итераций ... по 1 для каждого бита
Форум сгнил.

Оффлайн Vad

  • Ветеран
  • *****
  • Сообщений: 6609
  • Мой аватар вырос.. на гидропонике :)
EC-метр на базе ардуино
« Ответ #157 : 25 Октября 2017, 22:00:15 »
Только зарегистрированные пользователи могут просматривать ссылки. Зарегистрируйтесь или Выполните вход
Только зарегистрированные пользователи могут просматривать ссылки. Зарегистрируйтесь или Выполните вход
Ну и про шумы - у МК в настройках регистра ADMUX (REFS[1:0])можно задать разные ИОН для АЦП так же и командой analogReference(). По умолчанию ИОН это ваш VCC из USB, а там шумов.... и все они пролазят в ADC value. Поменяйте ИОН на стабильный, похерьте младший разряд, разберитесь с analogRead и будет вам счастье и не нужно вам делать 300 выборок и тем более 5000 как Сив, вам для фильтрации хватит 10-15 выборок (ИМХО). Во всяком случае я себе пишу код именно под такой алгоритм.
Давайте сначала об опорном напряжении. Команда analogReference() знает для UNO только три варианта аргумента. Сейчас стоит DEFAUL. Есть еще INTERNAL, но там напряжение ниже, как я понял. И EXTERNAL. Это значит мне надо батарейку вешать специальную? Опять же на 5В надо не одну батарейку... Как это грамотно сделать?
забить, использовать дефолт, вы все равно не заметите разницы
Форум сгнил.

Оффлайн vladindre

  • Постоялец
  • ***
  • Сообщений: 175
    • Email
EC-метр на базе ардуино
« Ответ #158 : 26 Октября 2017, 04:26:46 »
Цитировать (выделенное)
Это значит мне надо батарейку вешать специальную?
Нафига ?  Опорное по-нормальному заводится от питания схемы. То есть автоматически учитывается его дрейф и со всеми шумами и никакой головной боли. И все нормально работает.  Я всегда так делаю и никаких проблем не было. Еще никто не жаловался из клиентов. :)

Оффлайн siv237

  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3230
EC-метр на базе ардуино
« Ответ #159 : 26 Октября 2017, 06:07:20 »
Не знаю, зачем все эти сложности?

Вот специально сгенерил график раствора на клубничном дереве (пролив "ствола" раз в час) за месяц в высоком разрешении:
Могу дать сорсы данных хоть за весь период, для неверующих...

Верхний график температура воздуха (фиолетовым) и раствора в баке (зеленым)
Средний - усредненные сырые значения АЦП за секунду по электроду ЕС (фиолетовый), уровня (зеленый)

Никаких методов сглаживания графиков не применяется, измерения не откидываются и все включены в усреднение за 1 секунду.

Нижний - значение ЕС калиброванное по двум точкам с параметрами калибровки:
ec2=2.826
x2=145
ec1=1.232
x1=63

Только зарегистрированные пользователи могут просматривать ссылки. Зарегистрируйтесь или Выполните вход

Отлично видно, что точности измерений, двумя проводками, более чем достаточно для бытовых задач.
Основные отклонения ЕС от ожидания вносит теплый или холодный раствор при при проливе его через трубу, так как температурный датчик и электроды несколько в разных местах раствора.

Разница в показаниях между электродом уровня и электродом ЕС указывает на уровень раствора, а точнее глубину погружения в раствор электрода. К сожалению градиент температуры в растворе и его динамическое не равномерное перемешивание насосом тут действует еще более сильно.

Моя схема три алюминиевых проводка без обвязок прямо в ардуину, 2 одновременных раствора с опросом по очереди, проверял 4 одновременно, в том числе в одной емкости (взаимное воздействие не оказывается).
« Последнее редактирование: 26 Октября 2017, 06:17:57 от siv237 »
Только зарегистрированные пользователи могут просматривать ссылки. Зарегистрируйтесь или Выполните вход
Только зарегистрированные пользователи могут просматривать ссылки. Зарегистрируйтесь или Выполните вход
Только зарегистрированные пользователи могут просматривать ссылки. Зарегистрируйтесь или Выполните вход
Только зарегистрированные пользователи могут просматривать ссылки. Зарегистрируйтесь или Выполните вход
Только зарегистрированные пользователи могут просматривать ссылки. Зарегистрируйтесь или Выполните вход

Оффлайн Пресвятой_ДжимБим

  • Ветеран
  • *****
  • Сообщений: 817
EC-метр на базе ардуино
« Ответ #160 : 26 Октября 2017, 10:43:00 »
 :D Я не понимаю зачем в домашней гидропонике такая ультраточность в ЕС?
+/- пара десятых после запятой погоды не сделают.
Или просто в теме письками все меряются?))  :D
У кого больше?))
Настолько все проще делается: антенный разъем в качестве датчика, ардуино, самый простой скетч с лайтовым медианным фильтром, и вуаля. Выводи себе в сериал хоть до усеру. Чё велосипед то изобретать.

Оффлайн siv237

  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3230
EC-метр на базе ардуино
« Ответ #161 : 26 Октября 2017, 11:13:59 »
Только зарегистрированные пользователи могут просматривать ссылки. Зарегистрируйтесь или Выполните вход
:D Я не понимаю зачем в домашней гидропонике такая ультраточность в ЕС?
+/- пара десятых после запятой погоды не сделают.
Или просто в теме письками все меряются?))  :D
У кого больше?))
Настолько все проще делается: антенный разъем в качестве датчика, ардуино, самый простой скетч с лайтовым медианным фильтром, и вуаля. Выводи себе в сериал хоть до усеру. Чё велосипед то изобретать.
Это ты мне про велосипед? ты вообще понимаешь всю иронию своего сообщения? Этот график получен двумя, подключенными напрямую к портам, проводками без всяких медиан прямым опросом с ардуины.
Только зарегистрированные пользователи могут просматривать ссылки. Зарегистрируйтесь или Выполните вход
Только зарегистрированные пользователи могут просматривать ссылки. Зарегистрируйтесь или Выполните вход
Только зарегистрированные пользователи могут просматривать ссылки. Зарегистрируйтесь или Выполните вход
Только зарегистрированные пользователи могут просматривать ссылки. Зарегистрируйтесь или Выполните вход
Только зарегистрированные пользователи могут просматривать ссылки. Зарегистрируйтесь или Выполните вход

Оффлайн Пресвятой_ДжимБим

  • Ветеран
  • *****
  • Сообщений: 817
EC-метр на базе ардуино
« Ответ #162 : 26 Октября 2017, 11:16:18 »
Только зарегистрированные пользователи могут просматривать ссылки. Зарегистрируйтесь или Выполните вход
Только зарегистрированные пользователи могут просматривать ссылки. Зарегистрируйтесь или Выполните вход
:D Я не понимаю зачем в домашней гидропонике такая ультраточность в ЕС?
+/- пара десятых после запятой погоды не сделают.
Или просто в теме письками все меряются?))  :D
У кого больше?))
Настолько все проще делается: антенный разъем в качестве датчика, ардуино, самый простой скетч с лайтовым медианным фильтром, и вуаля. Выводи себе в сериал хоть до усеру. Чё велосипед то изобретать.
Это ты мне про велосипед? ты вообще понимаешь всю иронию своего сообщения? Этот график получен двумя, подключенными напрямую к портам, проводками без всяких медиан прямым опросом с ардуины.
Ну пипец!)))

Оффлайн Пресвятой_ДжимБим

  • Ветеран
  • *****
  • Сообщений: 817
EC-метр на базе ардуино
« Ответ #163 : 26 Октября 2017, 11:17:27 »
"Да я!!! Да у меня!!!")))

Оффлайн siv237

  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3230
EC-метр на базе ардуино
« Ответ #164 : 26 Октября 2017, 11:31:37 »
Только зарегистрированные пользователи могут просматривать ссылки. Зарегистрируйтесь или Выполните вход
"Да я!!! Да у меня!!!")))
;D ;D ;D
Только зарегистрированные пользователи могут просматривать ссылки. Зарегистрируйтесь или Выполните вход
Только зарегистрированные пользователи могут просматривать ссылки. Зарегистрируйтесь или Выполните вход
Только зарегистрированные пользователи могут просматривать ссылки. Зарегистрируйтесь или Выполните вход
Только зарегистрированные пользователи могут просматривать ссылки. Зарегистрируйтесь или Выполните вход
Только зарегистрированные пользователи могут просматривать ссылки. Зарегистрируйтесь или Выполните вход