Нехватает ресурсов Arduino или ошибки в блоках ??
- Grafsaxar
- Лейтенант
- Сообщения: 377
- Зарегистрирован: 06 сен 2015, 16:04
- Откуда: Маркс-Энгелс
- Имя: Alexander
Нехватает ресурсов Arduino или ошибки в блоках ??
Здравствуйте форумчане...
Сталкивался и раньше с проблемами нехватки ресурсов.
Например дальномер НС-04 и модбас не хотели работать на одной Нано.
Сейчас делаю точечьную сварку с возможностью задания длительности каждых 2 импульсов.
Собрано было таким образом: энкодером задаёшь время длительности каждого импульса.
При изменении длительности сохраняется в епроме.
Вся информация отображается на 4х20 дисплее подключённым по и2с .
Собрано: Ардуино---твердотелое реле---трансформатор.
Бодался 2 недели и не мог понять почему длительность импульса не регулировалась до 0.1секунды.
Выставляю 500 микросекунд= 0,15секунда
Выставляю 900 микросекунд= 0,13секунда
И так далее в пределах 0,09-0,15 секунд.
Проблема в дисплее. Подключал напрямую -- тоже самое.
без дисплея всё нормально.
Попробовал на Меги2560 с и2с дисплеем, то же самое..
Решил проблему : подкличил 2е нано по уарту . Оно и генерирует длительности сигналов.
Неужели закончились ресурсы меги328 ??? С таким лёгким заданием. Или я что то не так делаю??
Видать подходит время СТМ32
Сергей !! Планируется ли вообше добавления этого контроллёра в проект??
Сталкивался и раньше с проблемами нехватки ресурсов.
Например дальномер НС-04 и модбас не хотели работать на одной Нано.
Сейчас делаю точечьную сварку с возможностью задания длительности каждых 2 импульсов.
Собрано было таким образом: энкодером задаёшь время длительности каждого импульса.
При изменении длительности сохраняется в епроме.
Вся информация отображается на 4х20 дисплее подключённым по и2с .
Собрано: Ардуино---твердотелое реле---трансформатор.
Бодался 2 недели и не мог понять почему длительность импульса не регулировалась до 0.1секунды.
Выставляю 500 микросекунд= 0,15секунда
Выставляю 900 микросекунд= 0,13секунда
И так далее в пределах 0,09-0,15 секунд.
Проблема в дисплее. Подключал напрямую -- тоже самое.
без дисплея всё нормально.
Попробовал на Меги2560 с и2с дисплеем, то же самое..
Решил проблему : подкличил 2е нано по уарту . Оно и генерирует длительности сигналов.
Неужели закончились ресурсы меги328 ??? С таким лёгким заданием. Или я что то не так делаю??
Видать подходит время СТМ32
Сергей !! Планируется ли вообше добавления этого контроллёра в проект??
Качество — это делать что-либо правильно, даже когда никто не смотрит
- Sancho
- Полковник
- Сообщения: 4066
- Зарегистрирован: 25 дек 2015, 17:32
- Откуда: Ярославль.
- Имя: Александр
- Поблагодарили: 1 раз
- Контактная информация:
Нехватает ресурсов Arduino или ошибки в блоках ??
Как вариант:
а. Перенеси всё, что касается отображения на дисплее и настроек
на отдельную плату.
б. Создай переменную на другой плате, назови, например "Lock".
с. Генерация двух импульсов происходит после нажатия кнопки "Пуск", которая также должна будет переводить до окончания второго "Lock"в TRUE .
д. Отправляй сигнал на управление платой пункта а (создай условие Lock=FALSE).
Как-то так, надеюсь идею уловил...
а. Перенеси всё, что касается отображения на дисплее и настроек
на отдельную плату.
б. Создай переменную на другой плате, назови, например "Lock".
с. Генерация двух импульсов происходит после нажатия кнопки "Пуск", которая также должна будет переводить до окончания второго "Lock"в TRUE .
д. Отправляй сигнал на управление платой пункта а (создай условие Lock=FALSE).
Как-то так, надеюсь идею уловил...
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось Sancho 19 июл 2017, 11:21, всего редактировалось 1 раз.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
- Grafsaxar
- Лейтенант
- Сообщения: 377
- Зарегистрирован: 06 сен 2015, 16:04
- Откуда: Маркс-Энгелс
- Имя: Alexander
Нехватает ресурсов Arduino или ошибки в блоках ??
Sancho спасибо за совет. идея хороша:))) Будет время проверю......Sancho писал(а):Как вариант:а. Перенеси всё, что касается отображения на дисплее и настроек
на отдельную плату.
Качество — это делать что-либо правильно, даже когда никто не смотрит
Нехватает ресурсов Arduino или ошибки в блоках ??
Grafsaxar,
Тут сказывается особенность работы блока вывода на дисплей.
Каждый вывод информации это довольно много данных передать надо по медленному интерфейсу.
А когда подключаем дисплей по I2C, проверял даже с двух строчным время программного цикла становится больше 100 мс, т.е. между двумя импульсами больше 0.1с.
Если у вас не будет выводится не каких текущих параметров то решение предложено Sancho,
Может помочь.
Хотя не совсем понял требование к импульсам. Величина и интервал между ними.
Так же требование к точности соблюдения этих параметров.
Просто если некоторые ограничения генераторов встроенных в Flprog, когда значение интервалов начинает приближаться к длительности программного цикла, точность сильно страдает.
Для обхода этой проблемы делал самодельные блоки работающие на прерываниях по аппаратному таймеру. Там получалось добиться импульсов частот больше 10 кГц т.е. 0.1мс период, при этом не зависящих от основной программы.
Вот тема в которой было обсуждение
Тут сказывается особенность работы блока вывода на дисплей.
Каждый вывод информации это довольно много данных передать надо по медленному интерфейсу.
А когда подключаем дисплей по I2C, проверял даже с двух строчным время программного цикла становится больше 100 мс, т.е. между двумя импульсами больше 0.1с.
Если у вас не будет выводится не каких текущих параметров то решение предложено Sancho,
Может помочь.
Хотя не совсем понял требование к импульсам. Величина и интервал между ними.
Так же требование к точности соблюдения этих параметров.
Просто если некоторые ограничения генераторов встроенных в Flprog, когда значение интервалов начинает приближаться к длительности программного цикла, точность сильно страдает.
Для обхода этой проблемы делал самодельные блоки работающие на прерываниях по аппаратному таймеру. Там получалось добиться импульсов частот больше 10 кГц т.е. 0.1мс период, при этом не зависящих от основной программы.
Вот тема в которой было обсуждение
- Grafsaxar
- Лейтенант
- Сообщения: 377
- Зарегистрирован: 06 сен 2015, 16:04
- Откуда: Маркс-Энгелс
- Имя: Alexander
Нехватает ресурсов Arduino или ошибки в блоках ??
Спасибо Слимпер.Слимпер писал(а):Вот тема в которой было обсуждение
В создании блоков я особо не силён.
Я как то 2 недели делал блок на РС522 а через 2 недели появился стандартный в программе.
Правда я с ним пока не разобрался и использую свой.
Я просто как то не подумал или не додумался выполнять плату по событию:))))
Качество — это делать что-либо правильно, даже когда никто не смотрит
Нехватает ресурсов Arduino или ошибки в блоках ??
Если задачу так и не получится решить штатными средствами, обращайтесь попробую помочь с написание блока пользователя. Если будет время.
- Grafsaxar
- Лейтенант
- Сообщения: 377
- Зарегистрирован: 06 сен 2015, 16:04
- Откуда: Маркс-Энгелс
- Имя: Alexander
Нехватает ресурсов Arduino или ошибки в блоках ??
Заранее благодарен..Слимпер писал(а):Если задачу так и не получится решить штатными средствами, обращайтесь
Длина импулсов должна быть более менее точна.
Находится в пределах 5-150 миллисекунд.
Пауза между импульсами не меняется , выставлена = 300 миллисекунд
При сваривании жести 0.15-0.20 мм лишнии 10 миллисекунд прожигают насквозь.
Последний раз редактировалось Grafsaxar 20 июл 2017, 12:31, всего редактировалось 1 раз.
Качество — это делать что-либо правильно, даже когда никто не смотрит
Нехватает ресурсов Arduino или ошибки в блоках ??
Ну это понял. А теперь вопрос, нужен блок который генерирует, описанные выше, импульсы на выходе контроллера все время пока на входе есть логическая 1?Grafsaxar писал(а):Длина импулсов должна быть более менее точна.Находится в пределах 5-150 миллисекунд.
Пауза между импульсами не меняется , выставлена = 300 миллисекунд
Последний раз редактировалось Слимпер 20 июл 2017, 14:03, всего редактировалось 1 раз.
- Sancho
- Полковник
- Сообщения: 4066
- Зарегистрирован: 25 дек 2015, 17:32
- Откуда: Ярославль.
- Имя: Александр
- Поблагодарили: 1 раз
- Контактная информация:
Нехватает ресурсов Arduino или ошибки в блоках ??
Вот попробовал сделать блок, не зависящий от I2C и дисплея.При подаче на старт импульса(фронт, положительного) любой длинны выдаст два импульса с паузой - за ОДИН цикл программы.
Не тестировал.
15.45.Удалил,не правильно. ниже ОК.
Не тестировал.
15.45.Удалил,не правильно. ниже ОК.
Последний раз редактировалось Sancho 20 июл 2017, 15:46, всего редактировалось 1 раз.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
Нехватает ресурсов Arduino или ошибки в блоках ??
Хотел сделать блок с использованием прерываний и аппаратного таймера.
Так блок должен после нажатия сгенерировать именно 2 импульса и потом прекратить?
Но похоже на правильно понял суть задачи, сказывается не знание принципов работы сварочника.Sancho писал(а):При подаче на старт импульса(фронт, положительного) любой длинны выдаст два импульса с паузой - за ОДИН цикл программы.
Так блок должен после нажатия сгенерировать именно 2 импульса и потом прекратить?
- Sancho
- Полковник
- Сообщения: 4066
- Зарегистрирован: 25 дек 2015, 17:32
- Откуда: Ярославль.
- Имя: Александр
- Поблагодарили: 1 раз
- Контактная информация:
Нехватает ресурсов Arduino или ошибки в блоках ??
Я так понял...Слимпер писал(а):Но похоже на правильно понял суть задачи, сказывается не знание принципов работы сварочника.Так блок должен после нажатия сгенерировать именно 2 импульса и потом прекратить?
Добавлено (20.07.2017, 15:24)
---------------------------------------------
Попробовал.Sancho писал(а):за ОДИН цикл программы.Не тестировал.
Хренушки, надо ручками в коде править....
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
Нехватает ресурсов Arduino или ошибки в блоках ??
Sancho, Если использовать вашу идею выдачи двух импульсов в рамках одного программного цикла
То делать это надо примерно так
Хотя такой метод останавливает всю программу на это время т.е. 150+300+150 = 600 мс простоя
То делать это надо примерно так
Хотя такой метод останавливает всю программу на это время т.е. 150+300+150 = 600 мс простоя
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось Слимпер 20 июл 2017, 15:44, всего редактировалось 1 раз.
- Sancho
- Полковник
- Сообщения: 4066
- Зарегистрирован: 25 дек 2015, 17:32
- Откуда: Ярославль.
- Имя: Александр
- Поблагодарили: 1 раз
- Контактная информация:
Нехватает ресурсов Arduino или ошибки в блоках ??
Сделал, настройка выходного(управляющего) пина в настройке блока.
Проверено.
Добавлено (20.07.2017, 15:49)
---------------------------------------------
Проверено.
Добавлено (20.07.2017, 15:49)
---------------------------------------------
забыл о delayСлимпер писал(а):То делать это надо примерно так
Думаю, что в это время никто не будет смотреть на дисплей и т.д....Слимпер писал(а):Хотя такой метод останавливает всю программу на это время
У вас нет необходимых прав для просмотра вложений в этом сообщении.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
Нехватает ресурсов Arduino или ошибки в блоках ??
Ну так то да. Тогда это самый простой и надежный способ.Sancho писал(а):Думаю, что в это время никто не будет смотреть на дисплей и т.д....
Я просто сперва понял, что надо генерировать не прерывные импульсы, тогда такой способ не пошел бы.
- Grafsaxar
- Лейтенант
- Сообщения: 377
- Зарегистрирован: 06 сен 2015, 16:04
- Откуда: Маркс-Энгелс
- Имя: Alexander
Нехватает ресурсов Arduino или ошибки в блоках ??
Sancho!! Спасибо огромное. Сильно помог. А так же ребятам за разжёвку проблемы. Всё заработало...
Отображает информацию только при включении и при изменении длительности импульса. В планах добавить температуру транса.
Если есть интерес могу выложить програмку.
Добавлено (22.07.2017, 11:34)
---------------------------------------------
Хоть и не в тему но вопросик к специалистам. Как сделать отображения настраивомого меню в негативе? Раньше использовал стрелку. Но сейчас для этого нет места на LCD. Есть ли какие варианты??
Отображает информацию только при включении и при изменении длительности импульса. В планах добавить температуру транса.
Если есть интерес могу выложить програмку.
Добавлено (22.07.2017, 11:34)
---------------------------------------------
Хоть и не в тему но вопросик к специалистам. Как сделать отображения настраивомого меню в негативе? Раньше использовал стрелку. Но сейчас для этого нет места на LCD. Есть ли какие варианты??
Качество — это делать что-либо правильно, даже когда никто не смотрит
Нехватает ресурсов Arduino или ошибки в блоках ??
А как у вас сейчас выводится?Grafsaxar писал(а):Хоть и не в тему но вопросик к специалистам. Как сделать отображения настраивомого меню в негативе? Раньше использовал стрелку. Но сейчас для этого нет места на LCD. Есть ли какие варианты??
Win10-64 FLProg v8.2.3 Portable IDE 1.8.19, 2,x,x
- Grafsaxar
- Лейтенант
- Сообщения: 377
- Зарегистрирован: 06 сен 2015, 16:04
- Откуда: Маркс-Энгелс
- Имя: Alexander
Нехватает ресурсов Arduino или ошибки в блоках ??
Сейчас просто числа. Охото чтоб настраиваемое меню негативом отображалось.
Качество — это делать что-либо правильно, даже когда никто не смотрит
Нехватает ресурсов Arduino или ошибки в блоках ??
Как то гадать на кофейной гуще...
Ну ладно, погадаем...
У себя я делаю вывод на экран раздельный, меню и вывод информации. Т.е. во время работы в меню выводится только название меню, название переменной и её изменяемый параметр. Видны все передвижения по меню. Благо выходы меню позволяют это все видеть. Вышли из меню и показывается то что мне нужно контролировать.
Если нужно видеть все вместе с меню то ставлю лсд 5110, там мне 5 строк за глаза.
Ну ладно, погадаем...
У себя я делаю вывод на экран раздельный, меню и вывод информации. Т.е. во время работы в меню выводится только название меню, название переменной и её изменяемый параметр. Видны все передвижения по меню. Благо выходы меню позволяют это все видеть. Вышли из меню и показывается то что мне нужно контролировать.
Если нужно видеть все вместе с меню то ставлю лсд 5110, там мне 5 строк за глаза.
Win10-64 FLProg v8.2.3 Portable IDE 1.8.19, 2,x,x
- Grafsaxar
- Лейтенант
- Сообщения: 377
- Зарегистрирован: 06 сен 2015, 16:04
- Откуда: Маркс-Энгелс
- Имя: Alexander
Нехватает ресурсов Arduino или ошибки в блоках ??
Если место хватало то я напротив переменной стрелку ставил. А в этом случае 2 строчный дисплей.
Есть ли возможность вывод переменной в инвертированном (негативном) виде??
5110 пока не использовал. Хватало 4х20
Есть ли возможность вывод переменной в инвертированном (негативном) виде??
5110 пока не использовал. Хватало 4х20
Качество — это делать что-либо правильно, даже когда никто не смотрит
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей