Аппаратная платформа Arduino для автоматизации наших процессов
alekslug
Научный сотрудник
винокур, Лобня.
5.2K 1.7K
Отв.840 24 Янв. 14, 16:44
Вот. совсем недорого Mega 2560 http://www.tinydeal.com/...ue-p-94889.html
svarnoy
Профессор
Жуковский.
9.1K 4.6K
Отв.841 24 Янв. 14, 18:44
Электрическая часть вроде завершена.
Автоматика заточена под конкретную задачу.
7 управляемых нагрузок.3 реле 10А,2 реле 26А,2 SSR 26А.2 сервопривода.На переднюю панель выведены клавиши управления 5тью нагрузками
Внутри:
Передняя панель:
Разьёмы датчика температуры,сервопривода, ардуина:
Силовые выходы:
Хотел-бы сказать,что "автоматика на базе ардуины" ,это не только купленная платка в Китае за 20 долларов,и программа скачанная в интернете,но и много своего времени и умения потраченных на сборку и отладку.
Автоматика заточена под конкретную задачу.
7 управляемых нагрузок.3 реле 10А,2 реле 26А,2 SSR 26А.2 сервопривода.На переднюю панель выведены клавиши управления 5тью нагрузками
Внутри:
Передняя панель:
Разьёмы датчика температуры,сервопривода, ардуина:
Силовые выходы:
Хотел-бы сказать,что "автоматика на базе ардуины" ,это не только купленная платка в Китае за 20 долларов,и программа скачанная в интернете,но и много своего времени и умения потраченных на сборку и отладку.
Брагин
Магистр
Краснодар
278 76
Отв.842 24 Янв. 14, 22:26
svarnoy,
да еще чтоб не мучиться с глюками дисплея подключился по I2C!
но у тебя клава самопал, и коды АЦП не такие как на покупной, у нас без нажатия 1023 на входе.
klester,
проверить можно програмулиной.
http://files.homedistiller.ru/99138.rar
и подставить значения сюда "butval[1]" а дальше уже в тот скетч
да еще чтоб не мучиться с глюками дисплея подключился по I2C!
но у тебя клава самопал, и коды АЦП не такие как на покупной, у нас без нажатия 1023 на входе.
klester,
проверить можно програмулиной.
http://files.homedistiller.ru/99138.rar
butsens=20
val = analogRead(butPin); // читаем АЦП порта кнопок (значение от 0 до 1023)
if (val > (butval[5]-butsens) && val < (butval[5]+butsens)) {butPush = 5;} // если считанное значение около (на величину butsens)
// значения соответствующего кнопке 5 то считаем что она и нажата
if (val > (butval[4]-butsens) && val < (butval[4]+butsens)) {butPush = 4;} // аналогично для остальных
if (val > (butval[3]-butsens) && val < (butval[3]+butsens)) {butPush = 3;}
if (val > (butval[2]-butsens) && val < (butval[2]+butsens)) {butPush = 2;}
if (val > (butval[1]-butsens) && val < (butval[1]+butsens)) {butPush = 1;}
// if (val < (butval[1]+butsens)) {butPush = 1;}
// коды кнопок: 1 - вверх, 2 - влево, 3 - ок, 4 - вправо, 5 вниз
и подставить значения сюда "butval[1]" а дальше уже в тот скетч
сообщения удалены (5)
msg31
Научный сотрудник
Барнаул
4.6K 2.5K
Отв.843 25 Янв. 14, 08:22
Все перенесено в отдельную ветку [Доступная автоматика на Ардуино Мега 2560.]
svarnoy
Профессор
Жуковский.
9.1K 4.6K
Отв.844 25 Янв. 14, 10:57
msg31, Ты бы отдельную ветку себе сделал,проект у тебя удачный,завершённый,при желании повторяемый.
А то сдесь затеряется,и потом хрен найдёшь,ещё год назад в этой ветке было всего 15 странииц.
А то сдесь затеряется,и потом хрен найдёшь,ещё год назад в этой ветке было всего 15 странииц.
Брагин
Магистр
Краснодар
278 76
Отв.845 29 Янв. 14, 00:33
Чего-то я давно не брал в руки шашки. А тема живет, но поскольку спирт у меня из отходов, а в основном СЭМ, то у меня автомат сэмоварки.
Кому интересен автомат для самогона - выкладываю. Доработал то что выкладывал тут на странице 20...
Что доработал:
-все таки добил звуковой сигнал, орет благим матом пока не нажмешь кнопку и не поменяешь банку.
-автоматом при смене фракции меняет мощьность нагрева
-щелкает тремя релюшками на три фракции, думаю для автоматического разделителя банок пригодиться.
-на полном автомате пищит, щелкает, регулирует до самого конца сам (полностью не проверял!!!!)
-в любом месте можно подрегулировать мощьность нагрева с индикацией RMS мощности (нужен ACS712)
-есть 5 (можно добавить - убрать предустановок почти всех функций) т.е. выбрал режим и вперед
========
уточню: реализована регулировка, но не стабилизация мощности нагрева. у меня на 2 кВт рабочий, головы на 20 единицах ~ 800 W, рабочая на 70 ~ 1.600W ? разгон - хвост 100 - 2000Вт.
++++++++
осталось только доделать переключение голов по объему, надо поэкспериментировать с датчиком проводимости и как его прицепить к ардуине и тогда переключение на тело будет происходить или по температуре или по наполнению уровня в банке.
подключение оформлено в комментах в начале программы, настройки предустановок в строчках РЕЖИМ, ну если будут вопросы - может схемку нарисую.
отэц улучшения тут [сообщение #11747480]
неоходимые прибамбасы берем у китайцев список тут [сообщение #11760463]
новая версия программы тут [сообщение #11881589]
Кому интересен автомат для самогона - выкладываю. Доработал то что выкладывал тут на странице 20...
Что доработал:
-все таки добил звуковой сигнал, орет благим матом пока не нажмешь кнопку и не поменяешь банку.
-автоматом при смене фракции меняет мощьность нагрева
-щелкает тремя релюшками на три фракции, думаю для автоматического разделителя банок пригодиться.
-на полном автомате пищит, щелкает, регулирует до самого конца сам (полностью не проверял!!!!)
-в любом месте можно подрегулировать мощьность нагрева с индикацией RMS мощности (нужен ACS712)
-есть 5 (можно добавить - убрать предустановок почти всех функций) т.е. выбрал режим и вперед
========
уточню: реализована регулировка, но не стабилизация мощности нагрева. у меня на 2 кВт рабочий, головы на 20 единицах ~ 800 W, рабочая на 70 ~ 1.600W ? разгон - хвост 100 - 2000Вт.
++++++++
осталось только доделать переключение голов по объему, надо поэкспериментировать с датчиком проводимости и как его прицепить к ардуине и тогда переключение на тело будет происходить или по температуре или по наполнению уровня в банке.
подключение оформлено в комментах в начале программы, настройки предустановок в строчках РЕЖИМ, ну если будут вопросы - может схемку нарисую.
отэц улучшения тут [сообщение #11747480]
неоходимые прибамбасы берем у китайцев список тут [сообщение #11760463]
новая версия программы тут [сообщение #11881589]
svarnoy
Профессор
Жуковский.
9.1K 4.6K
Отв.846 29 Янв. 14, 09:39
надо поэкспериментировать с датчиком проводимости и как его прицепить к ардуинеБрагин, 29 Янв. 14, 00:33Так там вроде всё просто.Два проводка с оголёнными концами,один на +5 второй на аналоговый вход (А0-А15).Обьявляеш этот порт входом,и всё.
Попадёт жидкость на контакты,в зависимости от её сопротивления часть этих 5 вольт пробьётся в ардуину,АЦП эти остатки перещитает в цифру(0-1024) Вот с этим значением и работаем,выведи на экран и посмотри что покажет на сухую,потом в спирт мокни.
Резистор не забудь припаять между +5 и входом,какой не знаю,у меня платки с китая готовые.
msg31
Научный сотрудник
Барнаул
4.6K 2.5K
Отв.847 29 Янв. 14, 09:45, через 7 мин
Так там вроде всё просто.Два проводка с оголёнными концами,один на +5 второй на аналоговый вход (А0-А15).Обьявляеш этот порт входом,и всё.Мы с alekslug пробовали так, слишком много помех оказалось, может чего не додумали, конечно. Стабильнее работает такая схема:
svarnoy, 29 Янв. 14, 09:39
Алексей выяснил, что для измерения спирта резистор лучше брать 1.5М. Изначально надо выставить напряжение на АЦП Ардуино около 1020
Ориентироваться надо на падения напряжения, когда оно держится на уровне 900-950 в течение 2-3х секунд, чтобы защититься от помех.
alekslug
Научный сотрудник
винокур, Лобня.
5.2K 1.7K
Отв.848 29 Янв. 14, 13:02
часть этих 5 вольт пробьётся в ардуину,АЦП эти остатки перещитает в цифру(0-1024)svarnoy, 29 Янв. 14, 08:39Еще помехи пробиваются на вход Ардуино и сильно искажают показания, поэтому делаем как
msg31,написал
Ориентироваться надо на падения напряжения,msg31, 29 Янв. 14, 08:45ПЫСЫ. Еще спирт не любит постоянного тока, сопротивление его увеличивается при пропускании его. Поляризация происходит. Поэтому нужен для измерения диэлектрической составляющей спирта переменный ток или постоянный пульсирующий. Но этого тока Ардуино не любит.Надо согласовывать.
svarnoy
Профессор
Жуковский.
9.1K 4.6K
Отв.849 29 Янв. 14, 14:47
Еще помехи пробиваются на вход Ардуино и сильно искажают показанияalekslug, 29 Янв. 14, 13:02Ну я же написал про резистор.
Проверил сейчас,Резистор 30Ком подключил одним концом к - другим к входу(А8),проводок от входа(А8) и от +5 сунул в стакн с
Пустой - 0
Водка углёванная (от cybervlad) - 270
Водка не углёванная (моя) - 370
Спирт (с балкона,там -20С) - 60
Вода с крана холодная - 560
Замкнуть проводки - 1023
Сначало показания не стабильны и прыгают плюс/минус 5-10 едениц,так-же зависит от глубины погружения контакта в среду,но если контакт не трогать давольно быстро цифры стабилизируются и почти не прыгают.Граница 0 и не 0 очень чёткая.
Если не ставить цель точного измерения сопротивления,а просто определять намок/не намок,то вполне достаточно 1 резистора(я пробывал 4,6Ком и 30Ком) и двух проводков.
скетч с первой страницы,только под готовый экран с кнопками.
alekslug
Научный сотрудник
винокур, Лобня.
5.2K 1.7K
Отв.850 29 Янв. 14, 14:51, через 5 мин
svarnoy,для воды может и годится твой способ, но не для спирта . Сопротивление спирта составляет сотни килоом и влияние помех сильно смазывает картину.
ПЫСЫ. Поэтому резистор 30 ком будет просто шунтировать цепь измерения.
ПЫСЫ. Поэтому резистор 30 ком будет просто шунтировать цепь измерения.
svarnoy
Профессор
Жуковский.
9.1K 4.6K
Отв.851 29 Янв. 14, 15:16, через 26 мин
alekslug,
Хотя это меня навело на интересную мысль!
А давайте на ряду с градусностью,запахом,попробуем меряться еще и величиной сопротивление, за эталон возьмём резистор 1,5Мом.
для воды может и годится твой способ, но не для спиртаalekslug, 29 Янв. 14, 14:51Либо ты не полностью прочитал моё сообщение,либо у меня не спирт.Я написал,что мой спирт имеет значение 60 при резисторе 30Ком,и очень явная граница,и этого вполне достаточно для определения намок/не намок.
Хотя это меня навело на интересную мысль!
А давайте на ряду с градусностью,запахом,попробуем меряться еще и величиной сопротивление, за эталон возьмём резистор 1,5Мом.
alekslug
Научный сотрудник
винокур, Лобня.
5.2K 1.7K
Отв.852 29 Янв. 14, 15:27, через 11 мин
Мы по кругу ходим.
Чем будем измерять? Нужен стандартный датчик. Схему измерения еще надо.
msg31
Научный сотрудник
Барнаул
4.6K 2.5K
Отв.853 29 Янв. 14, 15:46, через 19 мин
Пустой - 0Насколько я помню, у нас пустой от 0 до 50 прыгал. Может какая помеха рядом была?
svarnoy, 29 Янв. 14, 14:47
svarnoy
Профессор
Жуковский.
9.1K 4.6K
Отв.854 29 Янв. 14, 16:35, через 49 мин
Насколько я помню, у нас пустой от 0 до 50 прыгал. Может какая помеха рядом была?msg31, 29 Янв. 14, 15:46Так у меня без резистора до 1023 прыгал,резистор поставил с - на входящий порт и чётко 0.
Чем будем измерять? Нужен стандартный датчик. Схему измерения еще надо.alekslug, 29 Янв. 14, 15:27Я предлагал измерять ардуиной и резистором 1,5Мом и мерится в данной ветеке.Например, длинна провода до ардуины 1 метр,глубина погружения контактов 1 см.
msg31
Научный сотрудник
Барнаул
4.6K 2.5K
Отв.855 29 Янв. 14, 16:46, через 11 мин
Так у меня без резистора до 1023 прыгал,резистор поставил с - на входящий порт и чётко 0.Я предлагал измерять ардуиной и резистором 1,5Мом и мерится в данной ветеке.Например, длинна провода до ардуины 1 метр,глубина погружения контактов 1 см.Сопротивлением провода можно пренебречь, то есть длина неважна, а вот глубиной погружения и площадью контактов-возможно нет. Ну, впрочем, у меня мерять нечего - колонны у меня нет, спирта тоже. Только дистиллят.
svarnoy, 29 Янв. 14, 16:35
Брагин
Магистр
Краснодар
278 76
Отв.856 29 Янв. 14, 20:01
Так, коллеги, вы ушли в сторону. я говорил об возможности однозначного определения наличия уровня голов в таре. а вы ушли в тонкости измерения проводимости спиртосодержащей жидкости при длительном процессе измерения, - как сказал, самому понравилось . так вот, к нашим баранам, я на своих двух ведрах СС имею поллитровый нержовый стакан колбы от термоса и это будет 5% голов, но для повторяемости желательно иметь что-то более прозаическое- например два нержовых стержня длинной 37 мм, но что однозначно даст сигнал на ардуину. короче надо взять головы и посмотреть что будет на входе с резисторами, без них, вообщем я поэкспериментирую.
Осталось как раз два входа, один на головы, а второй можно сделать для входа "ПОЛНЫЙ ПИПЕЦ" (затоп, пары спирта и т.д )
я тут сдуру навоял схемку, аль чертеж на тот скетч из 850 поста [сообщение #11880825]
для отбора голов по объему добавить схемку №2, как вариант что-то типа фото 3
В программе управление отбора голов по объему включение (по умолчанию "включно", если не подключать датчик ничего плохого не произойдет)в меню MENU-LOGIC-Head Contr Level
Значит так, минимум нужный для работы: реле главного ТЭНА и реле клапана воды + 1 датчик температуры в куб. но тогда можно выкинуть автоматику нафиг
минимальный правильный комплект SSR, реле тэна разгона (если есть разгонный тэн), реле воды.
управление в работе простое, если ничего страшного не происходит, то матюгальник орет по моменту смены посуды, звук убираем кнопкой ОК, после смены посуды жмем "ВПРАВО", если включен пункт @FULLAUTO@ - то орет 5 сек. и продолжает гнать, переключив нагрев, клапан приемной емкости.
Что еще - всегда после запуска, один из клапанов всегда открыт, на всякий случай и этот клапан - голов.
для первого погона в принципе нужно то что выше написано.
для автомата нужно SSR-реле, и клапана если будите делить по банкам не вручную.
ACS712 нужна только как показомер мощбности, приемник ИК(TSOP 7000 или похожий)сигналов, только если будете извращатся с пультом ДУ ( но удобно иногда).
если это не прицеплять, ничего страшного не произойдет - работать будет.
Все параметры настраиваются в меню. но есть несколько предустановок (669-678 строки и похожие ниже) где можно поменять что как нравиться и в следующий раз в меню выбрав режим - все параметры подставлены, нажал "погнали" и все никакого полета мысли, сплошное ремесло, но это уже другой вопрос
на сегодня там режимы: первый до воды, первый с отсечением хвостов пораньше, второй перегон, второй перегон с медленным отбором хвостиков, медленный нагрев чтоб не пригорело "болото".
все время забываю, для внесения в программу кодов кнопок с вашего пульта ДУ нужно закинуть в А. программу и прочитать коды типа как в красной рамке, скопировать их в программу "сэмоварки" вместо тех что сейчас там на ваши ибудет дружба с пультом ДУ!
Осталось как раз два входа, один на головы, а второй можно сделать для входа "ПОЛНЫЙ ПИПЕЦ" (затоп, пары спирта и т.д )
я тут сдуру навоял схемку, аль чертеж на тот скетч из 850 поста [сообщение #11880825]
для отбора голов по объему добавить схемку №2, как вариант что-то типа фото 3
В программе управление отбора голов по объему включение (по умолчанию "включно", если не подключать датчик ничего плохого не произойдет)в меню MENU-LOGIC-Head Contr Level
Значит так, минимум нужный для работы: реле главного ТЭНА и реле клапана воды + 1 датчик температуры в куб. но тогда можно выкинуть автоматику нафиг
минимальный правильный комплект SSR, реле тэна разгона (если есть разгонный тэн), реле воды.
управление в работе простое, если ничего страшного не происходит, то матюгальник орет по моменту смены посуды, звук убираем кнопкой ОК, после смены посуды жмем "ВПРАВО", если включен пункт @FULLAUTO@ - то орет 5 сек. и продолжает гнать, переключив нагрев, клапан приемной емкости.
Что еще - всегда после запуска, один из клапанов всегда открыт, на всякий случай и этот клапан - голов.
для первого погона в принципе нужно то что выше написано.
для автомата нужно SSR-реле, и клапана если будите делить по банкам не вручную.
ACS712 нужна только как показомер мощбности, приемник ИК(TSOP 7000 или похожий)сигналов, только если будете извращатся с пультом ДУ ( но удобно иногда).
если это не прицеплять, ничего страшного не произойдет - работать будет.
Все параметры настраиваются в меню. но есть несколько предустановок (669-678 строки и похожие ниже) где можно поменять что как нравиться и в следующий раз в меню выбрав режим - все параметры подставлены, нажал "погнали" и все никакого полета мысли, сплошное ремесло, но это уже другой вопрос
на сегодня там режимы: первый до воды, первый с отсечением хвостов пораньше, второй перегон, второй перегон с медленным отбором хвостиков, медленный нагрев чтоб не пригорело "болото".
все время забываю, для внесения в программу кодов кнопок с вашего пульта ДУ нужно закинуть в А. программу и прочитать коды типа как в красной рамке, скопировать их в программу "сэмоварки" вместо тех что сейчас там на ваши ибудет дружба с пультом ДУ!
alekslug
Научный сотрудник
винокур, Лобня.
5.2K 1.7K
Отв.857 29 Янв. 14, 21:12
Ну я же написал про резистор.
Проверил сейчас,Резистор 30Ком подключил одним концом к - другим к входу(А8),проводок от входа(А8) и от +5 сунул в стакн с
Пустой - 0
Водка углёванная (от cybervlad) - 270
Водка не углёванная (моя) - 370
Спирт (с балкона,там -20С) - 60
Вода с крана холодная - 560
Замкнуть проводки - 1023
Сначала показания не стабильны и прыгают плюс/минус 5-10 единиц,так-же зависит от глубины погружения контакта в среду,но если контакт не трогать довольно быстро цифры стабилизируются и почти не прыгают.Граница 0 и не 0 очень чёткая.svarnoy, 29 Янв. 14, 13:47
svarnoy, повторил твой опыт.Резистор 30 ком. Ты лучший! Я не верил, но ты прав 100%. Замечательная чувствительность. Я в восторге!
Контакты в воздухе 0 - 3.
В спирте 70.
Вода из под крана 1023.
svarnoy
Профессор
Жуковский.
9.1K 4.6K
Отв.858 29 Янв. 14, 21:25, через 14 мин
Я в восторге!alekslug, 29 Янв. 14, 21:12Эко как! Подсоединил,что было,а оно воно как.
Брагин
Магистр
Краснодар
278 76
Отв.859 29 Янв. 14, 22:32
А я потянул наоборот, т.е. минус на одной из клемм (или можно железная банка) и второй электрод на аналоговый вход
и не забывайте про внутреннюю притяжку к - или + заложенной в самой ардуине (atmega)
там на подтяге, если мне ничего не изменяет, 20 кОм
обычные две проволочки зачищенные на 2 см и опущенные в воду дали результаты (другого в наличии нет)
вода\разбодяженный сэм 40 \головы\воздух => 200\300\700\1015
надо програмулину побыстрому допиливать, думаю ограничится 950 единицами АЦП на переключение по объему.
и не забывайте про внутреннюю притяжку к - или + заложенной в самой ардуине (atmega)
там на подтяге, если мне ничего не изменяет, 20 кОм
void setup() {
// говорим сколько строк и столбцов в нашем дисплее
lcd.begin(16, 2);
pinMode(butPin, INPUT); //определяем вход
digitalWrite(butPin, HIGH); //включаем подтяжку на +5
}
void loop() {
lcd.setCursor(0,1); // устанавливаем курсор во вторую строку
lcd.print(analogRead(butPin)); //печатаем значение возвращаемое функцией analogRead
обычные две проволочки зачищенные на 2 см и опущенные в воду дали результаты (другого в наличии нет)
вода\разбодяженный сэм 40 \головы\воздух => 200\300\700\1015
надо програмулину побыстрому допиливать, думаю ограничится 950 единицами АЦП на переключение по объему.