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

Зависает элементарная программа.

Добавлено: 09 окт 2018, 18:49
Max
Вот, вроде не вчера пользуюсь FLProg, но с таким столкнулся первый раз.

Для сына решил собрать логику для управления гусеничной платформой через пульт ДУ IR (пульт и фотоприемник обычный с Алиэкспресса).

FLProg использую 3.0.2. Блоки все стандартные. И вроде бы сначала работает, но потом начисто зависает и все, пока не перезагрузишь, не работает. И потом опять по кругу. Зависает начисто.
В логике выбор трех скоростей. Движение вперед, назад, вправо, влево, стоп и переключение скоростей. Сигнал на двигатели формата Integer.

На пине 11 (ШИМ) как будто сигнал есть, но в железе его нет! На других сигнал появляется, но при попытке переключить с кнопок пульта скорость, все начисто зависает. Менял контроллеры (MEGA 2560, NANO) - не помогает, результат одинаковый.
Питание - аккумулятор, стабильно 5В.

Для сигнализации наличия на выходах( для двигателей) использовал макетную платку со светодиодами.
Для контроля наличия сигналов внутри логики использовал стандартные блоки дисплея HD44780. В проекте это видно.

Посмотрите, может что-то неправильно в блоках? Хотя пересмотрел не раз. Все должно работать. Все стандартно. Может, что в коде, который компилирует IDE?


Проект-черновик прилагаю.

Зависает элементарная программа.

Добавлено: 09 окт 2018, 20:33
aidar_i
Чтобы выяснить , где ошибка в логике или в ИК приемнике, попробуйте сперва убрать ИК приемник и управлять с обычных кнопок. Дисплей лучше заменить на UART с настройкой - отправлять периодически.

Отправлено спустя 2 минуты 24 секунды:
И при считывании кодов ИК есть сбои? Я приемник из али выкинул, он ошибочные коды выдавал, попробуй с модуля выпаять или другой приемник без модуля использовать , подключив напрямую.

Зависает элементарная программа.

Добавлено: 09 окт 2018, 21:27
Max
Немного локализовал проблему. Программа зависает, как только в проект добавить четвертый выход и объявить его, как ШИМ. Стоит убрать его, то все четко работает. Но мне нужно для управления двигателями именно четыре выхода ШИМ. .... Вероятно, какая то проблема в самом FLProg...

Отправлено спустя 33 минуты 49 секунд:
Перейду на другую логику управления. Два ШИМ выхода и четыре цифровых выхода. Как раз для драйвера L298N есть вариант управления с двумя ШИМ и 4 цифровых входа...

Проблема, как описал выше остается. Стоит добавить четвертый ШИМ выход и все виснет.

Зависает элементарная программа.

Добавлено: 09 окт 2018, 21:53
dizzyy
Max писал(а): 09 окт 2018, 21:27 Программа зависает, как только в проект добавить четвертый выход и объявить его, как ШИМ. Стоит убрать
Это где то проскакивало.... Вроде гдето про ленту, что на 328 на получится, надо другую или ставить плату расширения шим

Зависает элементарная программа.

Добавлено: 10 окт 2018, 18:07
Max
dizzyy писал(а): 09 окт 2018, 21:53Это где то проскакивало.... Вроде гдето про ленту, что на 328 на получится, надо другую или ставить плату расширения шим
Я на МЕГЕ такой же результат получил. Зависает и все.

Зависает элементарная программа.

Добавлено: 10 окт 2018, 23:59
aidar_i
Попробуйте программный ШИМ .
http://arduino.ru/forum/programmirovani ... bom-vyvode

Зависает элементарная программа.

Добавлено: 11 окт 2018, 00:49
Boroda
[ref]Max[/ref], тут возможно идет конфликт таймеров.

Tаймер 0 (Системное время, ШИМ 5 and 6)
Tаймер 1 (ШИМ 9 и 10)
Tаймер 2 (ШИМ 3 и 11)

Библиотека IR использует на Mini, Nano, Mega для приема/передачи Таймер 2. Для передачи Pin3.
Полный список можно посмотреть в файле IRremoteInt.h поиск по строке "Define which timer to use".

Вот и получается, при подключении PWM 11 или 3, приемник IR дает зависание.

Может приемник перевесить допустим на 8 ногу, а ШИМ использовать 5,6,9,10