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

Ответить
slava-fierwolf
Рядовой
Сообщения: 39
Зарегистрирован: 16.06.2017{, 15:30}
Репутация: 0
Откуда: Донецк

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

#1

Сообщение slava-fierwolf » 18.06.2017{, 15:41}

Имеем:
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 просто добавляю отдельную кнопку которая замыкает эти все каналы реле то до запуска автоматической логики станка при нажатии на эту кнопку все светодиоды блока реле светятся ярко и без морганий. Когда нажму старт, т. е. автоматическое выполнение логики то при нажатии этой отдельной кнопки все светодиоды на блоке реле включаются ярко но уже с некоторым морганием высокой частоты. Друзья, в чем проблема куда копать?
Последний раз редактировалось slava-fierwolf 18.06.2017{, 16:01}, всего редактировалось 1 раз.
save people Donbass

Аватара пользователя
Nikan
Майор
Сообщения: 1129
Зарегистрирован: 29.12.2016{, 00:49}
Репутация: 87
Откуда: москва

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

#2

Сообщение Nikan » 18.06.2017{, 15:56}

К такому вопросу неплохо бы проект приложить,

у Вас 22 физических дисплея или блоков?

slava-fierwolf
Рядовой
Сообщения: 39
Зарегистрирован: 16.06.2017{, 15:30}
Репутация: 0
Откуда: Донецк

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

#3

Сообщение slava-fierwolf » 18.06.2017{, 16:00}

Nikan писал(а):у Вас 22 физических дисплея или блоков?
22 блока дисплея. Не физических. Проект довольно не простой. Я пытаюсь понять связь в такой не корректной работе выходов с увеличением физического размера скетча
save people Donbass

Аватара пользователя
Vitez
Сержант
Сообщения: 202
Зарегистрирован: 08.11.2015{, 14:32}
Репутация: 4

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

#4

Сообщение Vitez » 18.06.2017{, 16:04}

Дело не в размере скетча. 22 блока дисплея не корректно. Каждый цикл обрабатывается каждый. Сведите все к одному. Переключайте вход  по условию.

Аватара пользователя
Nikan
Майор
Сообщения: 1129
Зарегистрирован: 29.12.2016{, 00:49}
Репутация: 87
Откуда: москва

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

#5

Сообщение Nikan » 18.06.2017{, 16:07}

slava-fierwolf писал(а):22 блока дисплея.
блоков должно быть  ровно столько сколько строк в дисплее.
данные для отображения на дисплей через переключатель.
slava-fierwolf писал(а):такой не корректной работе выходов с увеличением физического размера скетча
ваша проблема не в размере проги, а в не корректном ее исполнении.
задачи во время выполнения  налезают одна на другую.

slava-fierwolf
Рядовой
Сообщения: 39
Зарегистрирован: 16.06.2017{, 15:30}
Репутация: 0
Откуда: Донецк

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

#6

Сообщение slava-fierwolf » 18.06.2017{, 16:15}

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

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

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

Аватара пользователя
Nikan
Майор
Сообщения: 1129
Зарегистрирован: 29.12.2016{, 00:49}
Репутация: 87
Откуда: москва

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

#7

Сообщение Nikan » 18.06.2017{, 16:32}

slava-fierwolf писал(а):сколько же Мега 2560 может обрабатывать блоков дисплеев?
столько сколько влезет в память  
только ни чем другим она больше заниматься не сможет. потому что -
каждый блок дергает передачу данных не дисплей, дисплей медленный, и пока передача не закончена Мк ничего другого не делает
slava-fierwolf писал(а):Все блоки дисплея включаются во время
Вы в этом уверены?
slava-fierwolf писал(а):Не думал что Мега в этом плане такая дохлая. Специально выбирал Мегу чтоб с запасом возможностей.
Да это не пентиум, но для своих задач вполне. А Ваша задача - составить программу что бы она работала.

еше раз повторюсь - блоков должно быть  ровно столько сколько строк в дисплее.

slava-fierwolf
Рядовой
Сообщения: 39
Зарегистрирован: 16.06.2017{, 15:30}
Репутация: 0
Откуда: Донецк

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

#8

Сообщение slava-fierwolf » 18.06.2017{, 17:21}

Nikan писал(а):еше раз повторюсь - блоков должно быть  ровно столько сколько строк в дисплее
Сделал девять дисплеев. В скетче два цикла которые друг за другом повторяются. Во втором цикле нормализовалась работа реле, в первом все по старому.
save people Donbass

Аватара пользователя
Nikan
Майор
Сообщения: 1129
Зарегистрирован: 29.12.2016{, 00:49}
Репутация: 87
Откуда: москва

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

#9

Сообщение Nikan » 18.06.2017{, 17:49}

Цитата slava-fierwolf () Сделал девять дисплеев. трудно жить без пистолета, если у соседа пулемет...  

надо вот так как на картинке.
Вложения
7961574.jpg

slava-fierwolf
Рядовой
Сообщения: 39
Зарегистрирован: 16.06.2017{, 15:30}
Репутация: 0
Откуда: Донецк

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

#10

Сообщение slava-fierwolf » 18.06.2017{, 18:01}

Nikan писал(а):трудно жить без пистолета, если у соседа пулемет...
 о спасибо. попробую так.
save people Donbass

injener
Сержант
Сообщения: 105
Зарегистрирован: 23.10.2016{, 09:42}
Репутация: 2

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

#11

Сообщение injener » 19.06.2017{, 00:11}

Про пистолет порвало!  
Дисплеев реальных у вас один, а виртуальных можно наляпать хоть сотню!

slava-fierwolf
Рядовой
Сообщения: 39
Зарегистрирован: 16.06.2017{, 15:30}
Репутация: 0
Откуда: Донецк

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

#12

Сообщение slava-fierwolf » 19.06.2017{, 00:26}

Мужики хватит ржать. Проблема не решена.
save people Donbass

Аватара пользователя
Nikan
Майор
Сообщения: 1129
Зарегистрирован: 29.12.2016{, 00:49}
Репутация: 87
Откуда: москва

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

#13

Сообщение Nikan » 19.06.2017{, 01:08}

slava-fierwolf писал(а):Мужики хватит ржать. Проблема не решена.
с таким подходом и не решиться.

вот путь куда двигаться с дисплеем
и то что на моей картинке.
 и еще - подключите дисплей по 4-х битной шине.
i2c очень  медленная((
и на кой черт там столько триггеров?
Вложения
_3_v1.flp
(992.08 КБ) 61 скачивание
Последний раз редактировалось Nikan 19.06.2017{, 01:12}, всего редактировалось 1 раз.

slava-fierwolf
Рядовой
Сообщения: 39
Зарегистрирован: 16.06.2017{, 15:30}
Репутация: 0
Откуда: Донецк

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

#14

Сообщение slava-fierwolf » 19.06.2017{, 02:29}

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

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

Аватара пользователя
support
Супермодератор
Сообщения: 1838
Зарегистрирован: 03.01.2018{, 11:45}
Репутация: 687
Откуда: Астрахань
Имя: Сергей
Контактная информация:

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

#15

Сообщение support » 19.06.2017{, 03:17}

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

Аватара пользователя
support
Супермодератор
Сообщения: 1838
Зарегистрирован: 03.01.2018{, 11:45}
Репутация: 687
Откуда: Астрахань
Имя: Сергей
Контактная информация:

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

#16

Сообщение support » 19.06.2017{, 03:19}

Nikan писал(а):каждый блок дергает передачу данных не дисплей, дисплей медленный, и пока передача не закончена Мк ничего другого не делает
Блок дергает передачу данных только в случае если он в данный момент активен (еденичка на входе EN), если он не активен, то он просто пропускается.
Автор программы FLProg.

Аватара пользователя
support
Супермодератор
Сообщения: 1838
Зарегистрирован: 03.01.2018{, 11:45}
Репутация: 687
Откуда: Астрахань
Имя: Сергей
Контактная информация:

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

#17

Сообщение support » 19.06.2017{, 03:37}

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

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

injener
Сержант
Сообщения: 105
Зарегистрирован: 23.10.2016{, 09:42}
Репутация: 2

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

#18

Сообщение injener » 19.06.2017{, 06:44}

У вас не дисплеи, у вас блоки матеряться.

slava-fierwolf
Рядовой
Сообщения: 39
Зарегистрирован: 16.06.2017{, 15:30}
Репутация: 0
Откуда: Донецк

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

#19

Сообщение slava-fierwolf » 19.06.2017{, 12:44}

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 точно будет инренция
Последний раз редактировалось slava-fierwolf 19.06.2017{, 14:05}, всего редактировалось 1 раз.
save people Donbass

Аватара пользователя
Nikan
Майор
Сообщения: 1129
Зарегистрирован: 29.12.2016{, 00:49}
Репутация: 87
Откуда: москва

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

#20

Сообщение Nikan » 19.06.2017{, 17:53}

Цитата support () Блок дергает передачу данных только в случае если он в данный момент активен да все верно, только
1. не все об этом знают - и получают такие программы как в этом топике.  кажется -  по отдельности все работает а вместе ни как.
2. на кой черт в программе куча анологичного кода (блоки плюс уникальные переменные кним) когда можно  - собрать данные на вывод в одну переменную и вывести ее в нужный момент?
и 3-е по хорошему всю эту часть надо бы в функцию а не в цикле....

Вложения
5984300.jpg

Ответить

Вернуться в «ATmega32u4,2560»