Управление 20 тэнами (12 V) каждым по отдельности с высодом температуры на 20*4
- Войдите на сайт для отправки комментариев
Ср, 28/09/2016 - 10:35
Добрый день!
Необходимо управлять 20 тэнами с возвожностью регулировки температуры на каждом из этих тэнов. Температуру каждого тэна отображать на экране.
Каждый тэн работает в температурном режиме 30-90 градусов. Сам тэн работает от 12 вольт (возможно закажу новые на 220 вольт).
В наличии есть: arduino mega 2560 - 1 шт., arduino nano -1 шт., экран LCD 20*4 - 1 шт, DS18B20 - 20 шт., релейный модуль на 16 каналов - 1 шт., релейный модуль на 4 канала - 1 шт., двухосевой XY джойстик - 2 шт., соеденительные провода.
Необходима схема подключениея и скейч. Само меню управления тэноми должно быть без eeprom.
Пишите на htpicc@gmail.com, обсудим.
Добрый день!
Необходимо управлять 20 тэнами с возвожностью регулировки температуры на каждом из этих тэнов....
Необходима схема подключениея и скейч. Само меню управления тэноми должно быть без eeprom.
Ну так без еепром значит без еепром. Хорошо бы еще знать точные артикулы, названия и (или) фото релейных блоков, и что за джойстик - аналоговый, контактный? Пишите ydom@mail.ru , сделаем, большой опыт всякой автоматизации технологических процессов. Напишу надежный код, без ардуиновских костылей и тормозов, проверю все на макете, так что вы получите заведомо рабочий, проверенный и абсолютно безглючный код, без всяких костылей и тормозов. Схему тоже сделаем, не проблема, поскольку я в любом случае проверяю на реальном железе - на макете.
проверенный и абсолютно безглючный код
кем проверенный?
7808543@gmail.com
Сделаю на 500 рублей дешевле Онкеля ! Будет работать лучше чем у него. Пишите brokly(at)mail.ru . Костылей и тормозов не увидите, гарантирую :)
Сделаю на 500 рублей дешевле Онкеля ! Будет работать лучше чем у него. Пишите brokly(at)mail.ru . Костылей и тормозов не увидите, гарантирую :)
Это ведь вы на полном серьезе писали, что 2000 мкс =2 с? Да, точно вы, точно. Специалист, да....
У вас, да без костылей - не , не верю. Вы же на голубом глазу писали что подо все используете ардуиновские библиотеки, да еще 2 с вспоминается....
А то, что мои цены стали для вас (да и для других бедолаг, не освоивших нормальной ide) точкой отсчета, референсом - спасибо, это несомненно косвенное признание Вами моего авторитета. Благодарю Вас.
Да, с памятью у вас швах..... :) Постоянно в прерывании сидите ? Где я писал то ?
Да, для управления крайне инертными ТЭНами нужны немыслимые скорости. Эх, кто бы вас там с костылей снял. Тормозите нещадно.
Да, с памятью у вас швах..... :) Постоянно в прерывании сидите ? Где я писал то ?
да там же, где вы писали что 2000 мкс = 2 с. Так что с памятью все в порядке.
В прерывании (если вы понимаете, что это такое) никто никогда не сидит. Отработка функции прерывания делается по принципу "ударил - убежал", максимально быстро.
Да, для управления крайне инертными ТЭНами нужны немыслимые скорости. Эх, кто бы вас там с костылей снял. Тормозите нещадно.
даже если тэны весьма инертны, вряд ли есть смысл писать под эту задачу говнокод. Я пишу хороший код и под задачи с инерционными тэнами, и под задачи гиростабилизации, и под задачи 800 kHz NRZ. Зачем писать плохо, когда можно написать хорошо?
А че так скромно? Говорили бы сразу, что пишете "хороший код" и "очень хороший". Если уж занялись самовосхвалением, то нет смысла останавливаться на пол-дороге.
Да и по поводу "хорошести" тоже есть сомнения. У "писателя", которому мешают им же самим выдуманные костыли, "хороший код", вряд ли получится.
Мастер и углем на стене нарисует шедевр, а вот криворукому выскочке не помогут ни античный мольберт, ни холсты эпохи возрождения.
8 т.р.
PCBADM на мэйлру
Мастер и углем на стене нарисует шедевр, а вот криворукому выскочке не помогут ни античный мольберт, ни холсты эпохи возрождения.
вы чем гадить тут привели бы примерчики своих шедевров, так чтобы на равных говорить. А пока вы - аноним из инета, без истории и без CV, так что я и внимания на ваши подколы обращать не буду более. Не хотите конструктива - и без вас обойдусь. Про холсты - зайдите в ветку с предложениями исполнителей и посмотрите плоды моего труда. Делать 3 фонтана на аутлет Белой Дачи абы кому не доверят. Ну и фонтан на главной площади Наро - Фоминска -тоже не фунт изюму. Это так, аноним , для примера просто.
Вы так говорите, словно победили в многоэтапном всероссийском конкурсе на право участвовать в фонтаностроении. Да и задача автоматизации фонтана не выглядит полетами к звездам. На столь горячо нелюбимом вами ардуино иде, она замечательно решается вместе с "костылями", "тормозами" и чем угодно, что вы можете напридумывать.
На равных мне с вами незачем говорить. Мне и на неравных вполне комфортно. Я не зарабатываю денег на фонтанах, как и на любой прочей электронике. Считаю себя любителем умеренной квалификации. Однако даже этого мне оказывается досточно, чтобы понять, что все ваши басни насчет "костылей" и "тормозов", суть унылые выкрутасы в целях получения преимуществ в нечестной конкуренции. Измышляя про "костыли" и "тормоза" вы занимаетесь непрекрытым обманом.
Считаю себя любителем умеренной квалификации.
я тоже вас считаю любителем, и если вы не видите разницы1 тактом и 100 тактами - квалификации ниже умеренной. Костыли и тормоза Ide arduino широко известны, не являются секретом, а я не собираюсь скрывать что я могу не только в Ide arduino написать код, но и на профессиональном Ide, в том числе использую железо из экониши ардуино. Но могу и на stm32, могу и на sam. Про костыли и тормоза говорилось и на этом же форуме, при этом отношение было технически грамотным , а не любительским, как у вас. Посмотрите, например, тут
http://arduino.ru/forum/obshchii/vremya-vypolneniya-otdelnykh-komand-arduino
ну или про millis - любители ведь прерывания по таймерам не используют, только косвенно, через mills(), не так ли, оттуда же, почитайте, узнаете многое из того, что я писал
millis() считает время "скачками" по 42 миллисекунды и оно плавает на плюс-минус 1 миллисекунду с этим периодом. Из-за этого, не бывает 42, 84 .. и т.д. "миллисекунд". После 41 всегда идет 43. :)
http://arduino.ru/forum/obshchii/vremya-vypolneniya-otdelnykh-komand-arduino
А разве я признавался вам в этом? В каком тревожном забытьи вам это привиделось?
Да и потом, сколько раз вам приходилось считать такты при автоматизации ваших фонтанов? Рупь за сто, что ни разу. Ну и какова им цена тогда?
Не более известны, чем сказки за вашим авторством.
Можно писать и совсем без IDE. На качество конечного продукта это влияет в последнюю очередь.
http://arduino.ru/forum/obshchii/vremya-vypolneniya-otdelnykh-komand-arduino
Что-то я не вижу там никаких костылей. Вижу результаты некоего бенча. "Костыли" это вы тут белыми нитками пришиваете. Подлог в чистом виде.
Детский лепет. Один уровень обобщения чего стоит. Вы знакомы абсолютно со всеми любителями лично и они отчитываются перед вами, что используют, а что нет? Или вы в обычной своей манере одариваете всех, кого заблагорассудится, качествами, которые удобны вам для проталкивания своей чепухи?
И какая в том печаль? Много в вашей практике было задач, где это свойство millis() ставило крест на попытках реализации необходимого функционала? Фонтаны что-ли переставали фонтанировать от того, что 42-ой миллисекунды не оказывалось на месте? Фигню всякую вытаскиваете и раздуваете из мухи слона.
Да и потом, сколько раз вам приходилось считать такты при автоматизации ваших фонтанов? Рупь за сто, что ни разу. Ну и какова им цена тогда?
Видно, как бесконечно далеки вы от реальности. В схеме управления фонтанами 7х7 (49 струй, 49 RGB прожекторов) управление RGB по протоколу ColorCinetics, 250 кбод, только написанные на асме фрагменты успевают, даже оптимизированный по скорости код в С не успевает. Именно такты и считаем. Фонтаны на входе - там NRZ800 протокол, 800 кГц, сбой внутри посылки данных на 1 мкс - вся посылка вылетит. Так что если вам задачи, в которых важны не только милли, но и микросекунды не важны - не означает, что таких задач не существует.
Ну на остальной ваш треш я отвечать не буду - найдете ответы хоть в этом форуме, я ссылки давал. Есть и в других местах. Если есть что по сути сказать - велкам, а на треш я больше реагировать не буду. Хотите меня критиковать - заведите ветку "критика ", а что засераете ветки по реальным задачам, в которых вы ни бум бум?
И если я только и буду делать, что объяснять вам, что не только 40 мс,но и сотня наносекунд часто важна - кто тогда будет делать фонтаны, махпы и асутп? Вы же только языком, в реале вы ни -ни....
Onkel! Ветка ведь про конкретный заказ?
Тут, на форуме, вероятно 100% населения (из постоянного состава), ну может 99%, знает как это написать за час-два.
Не раскрвывая Ваших профессиональных секретов у меня вопросы:
1. Вы декларируете, что библиотеки - зло, так? Как Вы станете с Далласами работать, полностью свой код имеете? И чем он круче библиотечного, который всем тут известен и перечитан вдоль и поперек?
2. Тот же вопрос про экран 2004.
3. ну и на закуску, а как Вы привяжете далласы? Заказчик, судя по ТЗ, совсем никакой и вручную номера датчиков через блокнотик с экрана 1-wire сканера не перепишет.
-----------------------
это я к тому, что Вы, как я понял, все библиотеки на свой лад переписываете?
В этом случае Вы напоминаете мне - меня же в молодости.
-------------------------------------
Я помнится, в 95 году встал перед задачей быстро сделать себе инструмент - заполнять и печатать "платежное поручение". В безумные 90-ые странные вещи с людьми происходили... не стану объяснять - зачем мне эта херня понадобилась.
Интернета никакого у меня не было. Он в те времена по модему был и совсем другой. Книжек с описанием форматов тоже.
Писал на микрософтовском "квик Си", QC 2.5 возможно, не помню точно.
Было написано:
1. редактор шрифтов, а на нем сгенерены 2 шрифта (толстый и тонкий).
2. графредактор, а в нем нарисован бланк П/П, для печати на матричном принтере.
3. универсальный генератор менюшек в текстовом экране ДОС. А на нем прога для заполнения П/П.
4. Программа с длинными кусками ассемблерных вставок для управления матричным принтером, так как П/П нужно было печатать под копирку.
5. станете смеяться, но даже функцию для суммы прописью я писал сам, ну вот не было тогда интенета! Замучался тогда с окончаниями.
-------------------------------------------------------------------------------
согласитесь, что это смешно. Я не знал тогда про кучу готовых инструментов в том же Борланде и все "ножики" сам делал и сам точил. Но мне было 25-26 лет, думаю простительно.
Сейчас я стал немного умнее и намного ленивее, а некоторые - нет.
Как-то так.
Изначально речь шла про такты, но тут, раз, и такты "легким движением руки" превратились в микросекунды. Ну чем не фокусник?
Разумется. Вы и раньше никогда не отвечали на неудобные вопросы. Вы красноречиво можете только пургу нести, расчитывая, что никто не разберет. А если вдруг кто-то попытается разобрать, то "на треш вы отвечать не будете".
Вы хоть что-то обо мне знаете или для того, чтобы "только языком" это и не требуется?
Изначально речь шла про такты, но тут, раз, и такты "легким движением руки" превратились в микросекунды. Ну чем не фокусник?
я вам про такты и ответил, а вы вырвали кусок, как будто про такты нет ни слова и что-то "превратилось", прочитайте еще раз
В схеме управления фонтанами 7х7 (49 струй, 49 RGB прожекторов) управление RGB по протоколу ColorCinetics, 250 кбод, только написанные на асме фрагменты успевают, даже оптимизированный по скорости код в С не успевает. Именно такты и считаем. Фонтаны на входе - там NRZ800 протокол, 800 кГц, сбой внутри посылки данных на 1 мкс - вся посылка вылетит.
- именно такты, потому что на 800 кHz NRZ типичное время 0,4 мкс ( ~6 тактов), а допустимый джиттер- +- 1 (может максимум 2) такта.
Вы и раньше никогда не отвечали на неудобные вопросы.
я вообще-то не обещал отвечать на ваши глупые вопросы и просвещать вас по всяким прописным истинам. Тем более что я не припомню вопросы, что оказались для меня неудобными, но вот глупых вопросов, на которые ответит любой программист, у вас полно, по сути только они и есть, вроде вопросов про важность миллисекунд и микросекунд.
Извольте привести кусочек кода, где вы считате такты. А заодно поясните, что это за "типичное время" такое, которое на "800kHz NRZ" составляет 0.4мкс или в три раза меньше периода.
Извольте привести кусочек кода, где вы считате такты.
а вареньем не помазать кое -что, не?
Приведение доказательств теперь является чем-то вроде одаривания? Надо будет запомнить.
Формирование длительностей путем жесткой набивки нопами -- это, стало быть, подсчет тактов? Да это же 1-wire на дилеях, только в профиль. Или, как водится, в вашем случае это теперь особые, "честные" костыли ?
Никаких вы тактов не считали, не стоит врать. Если прямо перед вызовом функции случится ваше любимое прерывание, то последовательность "уедет" так далеко, что про какой-то джиттер говорить просто неприлично.
Да и частота какая-то подозрительная. Вот нифига ни на какие 800кгц не похоже. На 250кбод тем более. Вы с какой стати сюда 800кгц-то приплетали? Типа, чтобы туман был погуще, понепрогляднее? Или может это не ваш код?
3. ну и на закуску, а как Вы привяжете далласы? Заказчик, судя по ТЗ, совсем никакой и вручную номера датчиков через блокнотик с экрана 1-wire сканера не перепишет.
Ну то что заказчик "совсем никакой" - это несовсем так.
У меня уже были некоторые "рабочие" проекты.
Конкретно по этому проекту у меня есть затруднения в самом "меню". По этой причине и обратился за помощью.
Хотите такую железяку на ESPшке (WIFI), без дисплея, просто веб интерфейс, вполоть до построения граффиков и логирования ? Одно но... бюджет от 50000 руб.
Кстати есть готовые устройства (без файфая и веба) подходящие вам, у мастеркита, например. И програмки для писюка - вообще никаких затрат.
Приведение доказательств теперь является чем-то вроде одаривания? Надо будет запомнить.
Формирование длительностей путем жесткой набивки нопами -- это, стало быть, подсчет тактов? Да это же 1-wire на дилеях, только в профиль. Или, как водится, в вашем случае это теперь особые, "честные" костыли ?
Никаких вы тактов не считали, не стоит врать. Если прямо перед вызовом функции случится ваше любимое прерывание, то последовательность "уедет" так далеко, что про какой-то джиттер говорить просто неприлично.
Да и частота какая-то подозрительная. Вот нифига ни на какие 800кгц не похоже. На 250кбод тем более. Вы с какой стати сюда 800кгц-то приплетали? Типа, чтобы туман был погуще, понепрогляднее? Или может это не ваш код?
вы не заказчик, а так, мимо проходили, и я не обязан вам что- либо доказывать. Запомните.
Джиттер- не абсолютная величина. Сама команда, может, и уедет, а вот последовательность внутри команды не уедет- прерывания отключены перед вызовом функции.
Что там вам подозрительно? Я раз 5 написал, что это за протокол, перечитайте. А про туман - он у вас в голове, и если вам делать нечего - я не виноват.
Если хотите проверить работоспособность кода - приезжайте в Outlet Village Белая дача и посмотрите на фонтаны. Там из 4 фонтанов 3 моих.
Ну то что заказчик "совсем никакой" - это несовсем так.
Конкретно по этому проекту у меня есть затруднения в самом "меню". По этой причине и обратился за помощью.
Ну, коли так, то Вам нет смысла что-то заказывать.
Я Вам подскажу структуру главного цикла ( loop()), и Вы сами прекрасно все напишите.
Итак:
1. заводим флаги: "температура готова", "режим установок/работы".
2. если "текущее время" - "время последнего запроса температуры" > 750мс, то установить флаг "температура готова" и запомнить время и считать все температуры . Работая с флагом можно считывать готовые по одной, в каждом следующем проходе loop() по кругу прочтя последнюю послать новый запрос на конвертацию. Так loop() станет короче и на кнопки реакция без "лагов" будет. Это от Вашего желания и степени перфекционизма зависит. ;)
3. считать состояние джойстика (напишите драйвер типа "титановой кнопки" от Клапауция). Посмотрите на его код, там все просто и понятно.
4. отобразить экран , тут от фантазии зависит, можно отдельные виды для работы и настроек, или все в одном - экран показывает текущий ТЭН и его Т, при нажатии кнопки - можно поменять Т движением по одной оси, а движение по другой оси - меняет номер ТЭНа, или все 20 штук Т на одном экране, тут море вариантов.
5. обработать нажатие: (зависит от выбранного дизайна), допустим все Т на одном экране. Мигает активный номер. При нажатии кнопки меняем режим настройка/работа. При лево-право - меняем активный номер, вверх-вниз - меняем установку Т, если включен режим настроек.
6. ну и собственно управление ТЭНами. Тут все очевидно. Согласно выбранному гистерезису включить или выключить реле, в зависимости от Т.
-----------------------------------
На экране, при изображении Т каждого ТЭНа можно еще состояние его реле показывать. Если все на одном экране, по 5 на строку, то как раз три символа: два на Т и один нарисовать пользовательский для указания состояния реле. Плотно, но все видно. если по строке на ТЭН, то можно и текщую Т и установочную Т и состояние реле.
---------------------------------
Если непонятно про экран, то смысл в том, что Вы заводите глобально массив структур на все ТЭН, где хранится вся нужная инфа. И, тоже глобально, номер активного на экране или номер с которого идут строки на экране, зависит от дизайна.
А при вызове функции рисования - просто изображаете это все.
То есть отдельно рисование по массиву структур, а отдельно изменение параметров по обработчику кнопок. Вообще это раздельно воспринимайте, так проще меню конструировать.
Ну то что заказчик "совсем никакой" - это несовсем так.
Конкретно по этому проекту у меня есть затруднения в самом "меню". По этой причине и обратился за помощью.
Ну, коли так, то Вам нет смысла что-то заказывать.
Я Вам подскажу структуру главного цикла ( loop()), и Вы сами прекрасно все напишите.
Огромное спасибо за советы. Для начала попробую самостоятельно. Wdrakula, можешь сбросить свою почту.
Чего запомнить-то? Что вы не в состоянии отвечать за свои собственные слова? Запомню, конечно, раз вы так просите.
NRZ -- это не протокол. Вы даже этого не знаете?
И еще. Не могли бы вы пояснить смысл комментария в вашем исходнике:
Сложнопереводимый текст, но речь похоже идет о совершении некоего обряда (rite -- обряд, ритуал) над указателем. Если код писали вы, то вам же будет не сложно раскрыть суть этого вашего обряда ?
Триста раз писал: моя почта, это мой ник на жмейле.