ну, за полгода можно было шесть раз уже у китайцев заказать..
http://www.aliexpress.com/...duino+mega+2560
Доступная автоматика HelloDistiller на Ардуино Мега 2560
Nicolaith
Бакалавр
Ижевск
51 36
Отв.500 12 Июня 14, 15:04
Отв.501 12 Июня 14, 19:41
smk787, Осталось выяснить как оно туда подается. С разъема питания через процессор или ключ. Или извне на этот пин. Я думаю все таки как я и писал.
smk787
Магистр
Семикаракорск
229 44
Отв.502 13 Июня 14, 00:24
Перечитывая тему автоматизации смотрите что нашел.
Это конечно не то что произошло у msg31, но требует доработки скетча. Или это уже поправили?
Так, сегодня проводил стресс тесты Есть несколько вопросов.1. Почему, после перехода из режима в режим или вообще при входе в меню не вырубается нагрузка? Вот перешел из режима стабилизации мощности в режим displaying - лампочка так и горит, как было задано в мощности.2. Оторвал провод датчика напряжения - пофиг веник, как горело так и горит... На дисплее замерло Zr и U на прежнем уровне. Может генерировать аларм и выключать нагрузку?3. Оторвал детектор нуля. Хм. Я ожидал, что лампочка погаснет. Фиг вам. У нее вообще такой дикий каматоз начался, что смотреть страшно 4. Покрутил потенциометр датчика напряжения. Хм. На дисплее значения меняются но "степень" яркости горения лампочки не меняется, может просто не заметно, не знаю.Да и вообще что-то ее колбасит. Вот установил стабилизацию мощности 400Вт из 3000 Вт, дергается яркость, видимо детектор нуля не совсем четко ловит ноль.ys1797, 26 Марта 14, 20:30
Это конечно не то что произошло у msg31, но требует доработки скетча. Или это уже поправили?
msg31
Научный сотрудник
Барнаул
4.6K 2.5K
Отв.503 13 Июня 14, 10:54
smk787, Осталось выяснить как оно туда подается. С разъема питания через процессор или ключ. Или извне на этот пин. Я думаю все таки как я и писал.hardvik, 12 Июня 14, 19:41Все правильно, при завершении процесса на пин PIN_ALL_OFF программа подает высокий уровень. По этому уровню реле должно отключить дифавтомат.
msg31
Научный сотрудник
Барнаул
4.6K 2.5K
Отв.504 13 Июня 14, 11:01, через 7 мин
Это конечно не то что произошло у msg31, но требует доработки скетча. Или это уже поправили?smk787, 13 Июня 14, 00:24Ну это не совсем то, но близко - реакция системы на аппаратные сбои.
smk787
Магистр
Семикаракорск
229 44
Отв.505 13 Июня 14, 11:02, через 2 мин
Все правильно, при завершении процесса на пин PIN_ALL_OFF программа подает высокий уровень. По этому уровню реле должно отключить дифавтомат.msg31, 13 Июня 14, 10:54Т.е. при завершении любого процесса -дистиляции(любой), ректификации, разваривании и.т.д, на этот пин подается высокий уровень? - кстати какой уровень? Получается, что если мы каким либо образом скомутируем дифавтомат с этим пином, то по завершении любого процесса, у нас будет полностью отключаться от питания вся автоматика (или тэн)? и чтоб его включить надо будет предусмореть кнопочку для включения дифавтомата?
smk787
Магистр
Семикаракорск
229 44
Отв.506 13 Июня 14, 11:05, через 3 мин
Ну это не совсем то, но близко - реакция системы на аппаратные сбои.msg31, 13 Июня 14, 11:01может надо сделать защиту от таких сбоев, чтоб беды не случилось?
ys1797
Доцент
Санкт-Петербург
1K 339
Отв.507 13 Июня 14, 13:29
Это конечно не то что произошло у msg31, но требует доработки скетча. Или это уже поправили?smk787, 13 Июня 14, 00:24
Я тут где-то выкладывал слегка модернизированную версию.
В ней основные мысли и реализации были такие:
1. Триак ВСЕГДА выключается по прерыванию нуля, исключение - полная мощность (Power==UstPower)
2. Настройка ацп на более шустрое преобразование:
sbi(ADCSRA,ADPS2);
cbi(ADCSRA,ADPS1);
cbi(ADCSRA,ADPS0);
MAX_INDEX_INPUT надо в этом случае увеличить до 255 (граница байта)
Кол-во выборок возрастает, примерно, до 170. Даже не нужно делать:
TimeOpenTriac1=tic_adc+ (SqNapr-FindPower)*(tic_adc[i+1]-tic_adc)/(SqNapr-SqNaprPrev);
и так точность будет в районе 0.7%
3. Вместо сравнения двух таймеров для вычисления времени включения триака я использую рассчитанное (TimeOpenTriac)
и deltaZ - это среднеарифметическое отклонение прерывания и реального нуля, которое высчитывается из накопленных
значений отклонения прохождению нуля и момента когда напряжение начинает расти (следующая не нулевая выборка в прерывании по 3 таймеру)
Плюсы - меньше математики в прерывании, плавнее горит лампочка (подключенная параллельно нагрузке) на малых мощностях.
Доп плюсы: освобождаем 1 таймер, который можем задействовать для других целей.
4. Опрос клавиатуры надо всеж выкинуть из прерывания и поместить его в loop(), чтоб не мешать работе других критичных прерываний.
При этом уменьшается каматоз на нагрузке при установленной маленькой мощности.
5. UstPower тоже стоит устанавливать в ноль при переходе между любыми режимами работы (например с режима стабилизации мощности в режим Displaying)
Ну и еще всякие мелочи не достойные отдельного внимания...
msg31
Научный сотрудник
Барнаул
4.6K 2.5K
Отв.508 13 Июня 14, 16:31
может надо сделать защиту от таких сбоев, чтоб беды не случилось?smk787, 13 Июня 14, 11:05Да, сделаю, сейчас их намечается пока два - пропадание детектирования нуля и пропадание детектирования сетевого напряжения.
Я тут где-то выкладывал слегка модернизированную версию.Не исключено, что пункт 1 помог бы избежать аварии. В Пункте 2 особого смысла нет, 255 выборок и в квадрат возводить дольше. Пункт 3 возможно имеет смысл, но и так все работает. Пункт 4 я пробовал, разницы не заметил, ведь клавиатура считывается значительно реже, чем вызывается измеренеие сетевого напряжения, зато гарантированно с регулярными промежутками времени. По пункту 5 я писал, что Displaying - это отладочный режим, он для отладки, поэтому при переходе в него все остается как есть.
В ней основные мысли и реализации были такие:ys1797, 13 Июня 14, 13:29
И еще, когда ты выкладывал свой скетч, написал, что уменьшена скорость работы с портами. Я еще удивился, почему уменьшена, скачал скетч и увидел, что на самом деле скорость увеличена за счет отказа от функции digitalWrite().
Вот что действительно бы мне помогло - это разобраться в причине "зависания", и "прыганья" значения АЦП впервые я заметил его при подключении датчика давления, он "зависал" на определенном ненулевом значении, причем даже перерезагрузка не помогала, работа его восттанавливалась при выключении контроллера. Остальные каналы АЦП разботали исправно. Вторая проблема - "прыганье" значения при измерении сетевого напряжения. У меня значение сетевого напряжения менялось от 4 - до 250, перезагрузка и отключение питания контроллера не помогала, на следующий день все нормально работало, тогда я погрешил на то, что питание контроллера и вентилятора охлаждения симистора велось от одного импульсного блока питания. Подключил неимпульсный блок питания и на вентилятор поставил отдельное питание, вроде все нормализовалось. Хотя возможно у меня просто глючная ардуина, придет новая, поменяю, проверю.
Кстати, вот схема дополнительного аварийного отключения. Она аналогично подобной схеме от этой темы [ИРТ-4к и РМ-2 современная автоматика колонны]
smk787
Магистр
Семикаракорск
229 44
Отв.509 13 Июня 14, 18:21
msg31, Макс, я выше тебя спрашивал про дифавтомат и нарряжение на пине ардуины.
msg31
Научный сотрудник
Барнаул
4.6K 2.5K
Отв.510 13 Июня 14, 18:57, через 36 мин
Ну какое напряжение, конечно 3-5в логическая единица, 0-1 логический ноль.
smk787
Магистр
Семикаракорск
229 44
Отв.511 13 Июня 14, 19:26, через 30 мин
msg31, Т.е. при завершении любого процесса -дистиляции(любой), ректификации, разваривании и.т.д, на этот пин подается высокий уровень? - кстати какой уровень? Получается, что если мы каким либо образом скомутируем дифавтомат с этим пином, то по завершении любого процесса, у нас будет полностью отключаться от питания вся автоматика (или тэн)? и чтоб его включить надо будет предусмореть кнопочку для включения дифавтомата?
msg31
Научный сотрудник
Барнаул
4.6K 2.5K
Отв.512 13 Июня 14, 19:43, через 17 мин
Автоматику надо питать отдельно, а дифавтомат подключать перед силовой частью контроллера. На дифавтомате есть рычажок включения, кнопка доплонительно не нужна.
smk787
Магистр
Семикаракорск
229 44
Отв.513 13 Июня 14, 20:41, через 59 мин
msg31, что конкретно надо отключить дифавтоматом?
Отв.514 13 Июня 14, 20:43, через 2 мин
smk787, ВСЕ. Всю подачу напряжения на аппарат.
ys1797
Доцент
Санкт-Петербург
1K 339
Отв.515 13 Июня 14, 21:23, через 40 мин
Не исключено, что пункт 1 помог бы избежать аварии. В Пункте 2 особого смысла нет, 255 выборок и в квадрат возводить дольше. Пункт 3 возможно имеет смысл, но и так все работает. Пункт 4 я пробовал, разницы не заметил, ведь клавиатура считывается значительно реже, чем вызывается измеренеие сетевого напряжения, зато гарантированно с регулярными промежутками времени. По пункту 5 я писал, что Displaying - это отладочный режим, он для отладки, поэтому при переходе в него все остается как есть. И еще, когда ты выкладывал свой скетч, написал, что уменьшена скорость работы с портами. Я еще удивился, почему уменьшена, скачал скетч и увидел, что на самом деле скорость увеличена за счет отказа от функции digitalWrite().msg31, 13 Июня 14, 16:31
Насчет пункта 2. У меги я смотрю основные затраты идут на операции деления. По этому я старался по минимуму использовать их в прерываниях и старался делить смещением бит влево
Ну и меня учили, что delay() в прерываниях - это адски плохо..
Пункт 3 - подсмотрел у буржуев - мне понравилось плавность и визуальная стабильность. Да и планировал это для PID регулятора, там вообще тот расчет (TimeOpenTriac) не используется, только запускается для высчитывания дельты.
Странно, что Displaying - это тестовый, после первого включения в него попадаем. Может ввести тогда режим StandBy, где просто смотрим параметры, и сделать его по умолчанию?
Да про скетч немного не то написал, уменьшено время выполнения - увеличена скорость...
В меге всего один адц и система коммутации его на пины Ax Я тут такие забавные значения получал, когда последовательно опрашивал все аналоговые входы.
Почему-то значение напряжение на A2 у меня влияло на ввод A1, может там какие переходные процессы идут при перекомутации? Попробую тут на днях несколько выборок, посмотрю изменения.
msg31
Научный сотрудник
Барнаул
4.6K 2.5K
Отв.516 14 Июня 14, 03:33
Ну и меня учили, что delay() в прерываниях - это адски плохо..ys1797, 13 Июня 14, 21:23
У меня нет delay в прерываниях, кроме аварийных случаев и открытия симистора. Насчет взаимовлияния выводов скупую инфу читал в инете, сам сталкивался с непонятными значениями, отсюда в программе и многократная проверка критических аналоговых значений. Была бы полезной инфа, как с этим бороться... Именно по этой причине чтение аналоговых датчиков я перенес в прерывание - показалось, что в этом случае показания стабильнее, правда я не уверен, но пока так.
Кстати, вроде разобрался с причиной "прыганья" сетевого напряжения. Судя по всему дело в помехах при подключенном сотовом телефоне. Без телефона все нормально, с телефоном напряжение скачет. В общем, это не удивительно, все знают, что происходит, когда телефон лежит рядом с колонками от компьютера.
Возможно уменьшить помехи от сотового поможет гальваническая развязка, но пока я не знаю, как ее сделать.
kollega63
Студент
ковров
45 20
Отв.517 14 Июня 14, 11:01
А вместо реле, если поставить МОС3023 можно?
kollega63
Студент
ковров
45 20
Отв.518 14 Июня 14, 11:07, через 7 мин
По этой схеме.
msg31
Научный сотрудник
Барнаул
4.6K 2.5K
Отв.519 14 Июня 14, 11:43, через 36 мин
Запросто.