Страница 1 из 1

Проблемы с Mega 2560 после заливки крупного скетча. Help!?!?

Добавлено: 18.06.2017{, 15:41}
slava-fierwolf
Имеем:
1.Китайская Mega 2560.
2. 8 канальный блок твердотельных реле (симисторы)
3. Дисплей на чипе 44780
4. 8 кнопок на пульте
5. 7 концевых датчиков.
6. Питаю мегу от USB зарядки от айфона 5V 1А.

Проблема: Заливаю скетч размером 13830 байт. В нем я использую 13 блоков дисплеев на чипе 44780. Когда запускаю с кнопки выполнение программы (это станок автоматический) - то на 8 канальном блоке реле, светодиод который показывает какой канал работает - моргает с высокой частотой. Это видно глазом.

Дальше я дорабатываю скетч ставлю внутри еще 9 блоков дисплеев, размер скетча при этом становится 15226 байт. Заливаю скетч в мегу. Запускаю выполнение скетча и на 8 канальном блоке реле, светодиод который показывает какое в данный момент реле активно - вобще еле еле тлеет еле заметно. Замыкается ли реле при этом не знаю не замерял. Еще в скетче использую не сложное меню из 6 пунктов, значение 3х из которых я записываю в EEPROM.

Дело в том что когда простейший скетч заливаю размером 1644 байта  в эту же мегу что бы одной кнопкой включать все 8 каналов реле, в любой последовательности и в любом варианте то все работает и все светодиоды ярко светятся.

И на последок когда в большой скетч размером 15226 просто добавляю отдельную кнопку которая замыкает эти все каналы реле то до запуска автоматической логики станка при нажатии на эту кнопку все светодиоды блока реле светятся ярко и без морганий. Когда нажму старт, т. е. автоматическое выполнение логики то при нажатии этой отдельной кнопки все светодиоды на блоке реле включаются ярко но уже с некоторым морганием высокой частоты. Друзья, в чем проблема куда копать?

Проблемы с Mega 2560 после заливки крупного скетча. Help!?!?

Добавлено: 18.06.2017{, 15:56}
Nikan
.

Проблемы с Mega 2560 после заливки крупного скетча. Help!?!?

Добавлено: 18.06.2017{, 16:00}
slava-fierwolf
Nikan писал(а):у Вас 22 физических дисплея или блоков?
22 блока дисплея. Не физических. Проект довольно не простой. Я пытаюсь понять связь в такой не корректной работе выходов с увеличением физического размера скетча

Проблемы с Mega 2560 после заливки крупного скетча. Help!?!?

Добавлено: 18.06.2017{, 16:04}
Vitez
Дело не в размере скетча. 22 блока дисплея не корректно. Каждый цикл обрабатывается каждый. Сведите все к одному. Переключайте вход  по условию.

Проблемы с Mega 2560 после заливки крупного скетча. Help!?!?

Добавлено: 18.06.2017{, 16:07}
Nikan
.

Проблемы с Mega 2560 после заливки крупного скетча. Help!?!?

Добавлено: 18.06.2017{, 16:15}
slava-fierwolf
Vitez писал(а):Дело не в размере скетча. 22 блока дисплея не корректно. Каждый цикл обрабатывается каждый. Сведите все к одному. Переключайте вход  по условию.
А сколько же Мега 2560 может обрабатывать блоков дисплеев? Они все работают в разной последовательности. Выводят информацию в разных областях экрана. Что то константа, что то выводит показания счетчика, некоторые показывают какой агрегат в данный момент активен.

Добавлено (18.06.2017, 16:10)
---------------------------------------------
Nikan писал(а):ваша проблема не в размере проги, а в не корректном ее исполнении.задачи во время выполнения  налезают одна на другую.
если вы подумали что какие то значения выводимые на дисплей активны одновременно, то нет. Все блоки дисплея включаются во время выполнении какой то операции и выключаются когда операция выполнена.

Добавлено (18.06.2017, 16:15)
---------------------------------------------
Буду пытаться сократить количество отображаемой информации. Не думал что Мега в этом плане такая дохлая. Специально выбирал Мегу чтоб с запасом возможностей.

Проблемы с Mega 2560 после заливки крупного скетча. Help!?!?

Добавлено: 18.06.2017{, 16:32}
Nikan
.

Проблемы с Mega 2560 после заливки крупного скетча. Help!?!?

Добавлено: 18.06.2017{, 17:21}
slava-fierwolf
Nikan писал(а):еше раз повторюсь - блоков должно быть  ровно столько сколько строк в дисплее
Сделал девять дисплеев. В скетче два цикла которые друг за другом повторяются. Во втором цикле нормализовалась работа реле, в первом все по старому.

Проблемы с Mega 2560 после заливки крупного скетча. Help!?!?

Добавлено: 18.06.2017{, 17:49}
Nikan
.

Проблемы с Mega 2560 после заливки крупного скетча. Help!?!?

Добавлено: 18.06.2017{, 18:01}
slava-fierwolf
Nikan писал(а):трудно жить без пистолета, если у соседа пулемет...
 о спасибо. попробую так.

Проблемы с Mega 2560 после заливки крупного скетча. Help!?!?

Добавлено: 19.06.2017{, 00:11}
injener
Про пистолет порвало!  
Дисплеев реальных у вас один, а виртуальных можно наляпать хоть сотню!

Проблемы с Mega 2560 после заливки крупного скетча. Help!?!?

Добавлено: 19.06.2017{, 00:26}
slava-fierwolf
Мужики хватит ржать. Проблема не решена.

Проблемы с Mega 2560 после заливки крупного скетча. Help!?!?

Добавлено: 19.06.2017{, 01:08}
Nikan
.

Проблемы с Mega 2560 после заливки крупного скетча. Help!?!?

Добавлено: 19.06.2017{, 02:29}
slava-fierwolf
Nikan писал(а):вот путь куда двигаться с дисплееми то что на моей картинке.
 и еще - подключите дисплей по 4-х битной шине.
i2c очень  медленная((
и на кой черт там столько триггеров?
Прикрепления: _3_v1.flp(992Kb)
Загрузил вашу версию. Спасибо. Но результат тот же черт возьми. Много триггеров? RTrigом выделяю только импульс. RSTrigerом включаю следующий узел в станке когда останавливается пред идущий и этим же триггером сигналом из концевика выключаю. Там есть пользовательский блок, господин pan мне его любезно сделал, за что ему спасибо. Он отслеживает появление единицы и изменение её на ноль. Т.е он видит что двигатель заработал и остановился и года это произошло - он дает сигнал след двигателю. Я двое суток уже просидел за компом. И так пробовал и так.. Почему сюда и пишу к знатокам.)

Добавлено (19.06.2017, 02:29)
---------------------------------------------
Nikan писал(а):подключите дисплей по 4-х битной шине.
ткните носом в статью где можно увидеть как это делать???

Проблемы с Mega 2560 после заливки крупного скетча. Help!?!?

Добавлено: 19.06.2017{, 03:17}
support
Опишите пожалуйста точно алгоритм. А то честно говоря у Вас в проекте какой то бред. Почему Вы в пределах одного цикла два раза пишете в один и тот же выход (мотор2нож, мотор3стола и т. д.). При такой схеме поведение вообще не предсказуемое. Я так подозреваю дисплеи тут ни при чём. Просто с логикой не всё в порядке.
slava-fierwolf писал(а):светодиод который показывает какой канал работает - моргает с высокой частотой. Это видно глазом.
Так быть не должно. Он должен или гореть или не гореть (выхода цифровые а не ШИМ). Если мигает, значит проблемы в программе.
slava-fierwolf писал(а):Дальше я дорабатываю скетч ставлю внутри еще 9 блоков дисплеев, размер скетча при этом становится 15226 байт. Заливаю скетч в мегу. Запускаю выполнение скетча и на 8 канальном блоке реле, светодиод который показывает какое в данный момент реле активно - вобще еле еле тлеет еле заметно.
Длительность цикла немного увеличилась, и соответственно выход стал больше времени выключен чем включён.

Проблемы с Mega 2560 после заливки крупного скетча. Help!?!?

Добавлено: 19.06.2017{, 03:19}
support
Nikan писал(а):каждый блок дергает передачу данных не дисплей, дисплей медленный, и пока передача не закончена Мк ничего другого не делает
Блок дергает передачу данных только в случае если он в данный момент активен (еденичка на входе EN), если он не активен, то он просто пропускается.

Проблемы с Mega 2560 после заливки крупного скетча. Help!?!?

Добавлено: 19.06.2017{, 03:37}
support
Как я понял Ваш алгоритм:
1.По кнопке ПУСК  станок запускается Мотор 1 и наматывает витки. Каждый виток - одно замыкание конечника 1.
2. При намотке заданного в меню количества витков мотор 1 останавливается и запускается Мотор2 (нож) (я только не понял зачем везде понаставленны задержки на полторы секунды).
3.  По срабатыванию конечника 2 останавливается Мотор 2 и запускается Мотор 3 (стол).
4. По срабатыванию конечника 3  останавливается Мотор 3 и запускается Мотор 5 (захват).
5. По срабатыванию конечника 6  останавливается Мотор 5

А вот дальше пошла полная каша и я ничего не понял))))
Когда должен включаться Мотор 4 (сгиб). Останавливаться он должен как я понимаю по конечнику 5

Проблемы с Mega 2560 после заливки крупного скетча. Help!?!?

Добавлено: 19.06.2017{, 06:44}
injener
У вас не дисплеи, у вас блоки матеряться.

Проблемы с Mega 2560 после заливки крупного скетча. Help!?!?

Добавлено: 19.06.2017{, 12:44}
slava-fierwolf
support писал(а):Опишите пожалуйста точно алгоритм. А то честно говоря у Вас в проекте какой то бред. Почему Вы в пределах одного цикла два раза пишете в один и тот же выход (мотор2нож, мотор3стола и т. д.). При такой схеме поведение вообще не предсказуемое. Я так подозреваю дисплеи тут ни при чём. Просто с логикой не всё в порядке.
 Начало «Под цикл А»
1) Нажимаем СТАРТ
2)Запускается двигатель М1
3) Двигатель М1 выполняет заданное количество оборотов редуктора (на пример 30)
4)Датчик Д1 считает количество оборотов редуктора и При достижении
нужного количества витков (на пример 30) - останавливает двигатель М1.
5) Запускается двигатель М2 (двигатель ножниц)
6)Двигатель М2 выполняет поворот редуктора на360°
7)ДатчикД2 считав что двигатель Д2 выполнил поворот редуктора на 360° - отключает
двигатель М2
8)Запускается двигатель М3 (перемещение стола)
9)  ДатчикД3 считав что двигатель М3 выполнил поворот редуктора на 180° - отключает
двигатель М3
10)    Запускается двигатель М5 (перевод захватов
сетки)
11)    Двигатель М5 выполняет поворот
редуктора на 180°
12)      Датчик Д6 считывает что двигатель М5 повернул редуктор            на 180° - отключает двигатель М5 Конец «Под цикл А»
Начало «Под цикл В»
13) Запускается двигатель М1
14) Двигатель М1 выполняет заданное количество оборотов редуктора    (на пример 31)
15) Датчик Д1 считает количество оборотов редуктора и при  При
достижении  нужного количества витков (на
пример 31) - останавливает мотор 1
16)     Запускается двигатель М2 (двигатель ножниц)
17)     Двигатель М2 выполняет поворот редуктора на 360°
18)     Датчик Д2 считав что двигатель Д2 выполнил поворот редуктора на 360° - отключает двигатель М2
19)   Запускается двигатель М5 (перевод захватов сетки)
20)  Двигатель М5 выполняет поворот редуктора на 180°
21)   Датчик Д7 считывает что двигатель М5 повернул редуктор            на 180° -
отключает двигатель М5
22) Включается двигатель М3 и М4 одновременно (хотя можно сделать М4 чуть с задержкой чтоб
снизить нагрузку на электросеть при запуске двух двигателей одновременно)
23) Датчик Д4 считав что двигатель М3 выполнил поворот редуктора на 180° - отключает двигатель М3
24) Двигатель М4 выполняет поворот редуктора на 360°
25) Датчик Д5 считав что двигатель М4 выполнил поворот редуктора на 360° - отключает двигатель М4  Конец «Под цикл В»


Добавлено (19.06.2017, 12:44)
---------------------------------------------
support писал(а):А вот дальше пошла полная каша и я ничего не понял))))Когда должен включаться Мотор 4 (сгиб). Останавливаться он должен как я понимаю по конечнику 5
Да там стоит для конечника условие что бы он давал сигнал только тогда когда мотор уже рабоатет и стоит RTRIG потому как в пред идущей работе двигатель может остановиться на концевике и этот сигнал не должен учитываться при следующем запуке двигателя. Сгиб работает только один раз чтоб согнуть края двух сплетенных ячеек. Может показаться кашей, но в этом скетче как бы два под цикла в которых последовательность одних и тех же физических узлов станка не много отличается с целью избежать конфликта узлов станка. Задержки стоят на всякий случай, для гашения возможной инерции узлов. На двигателе 1 точно будет инренция

Проблемы с Mega 2560 после заливки крупного скетча. Help!?!?

Добавлено: 19.06.2017{, 17:53}
Nikan
.