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

Ответить
Аватара пользователя
Max
Лейтенант
Сообщения: 691
Зарегистрирован: 06.09.2015{, 13:12}
Репутация: 5
Откуда: Тюмень-Баку
Имя: Максим

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

#1

Сообщение Max » 09.10.2018{, 18:49}

Вот, вроде не вчера пользуюсь FLProg, но с таким столкнулся первый раз.

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

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

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

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

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


Проект-черновик прилагаю.
Вложения
черновик ROBO TANK2.flp
(669.16 КБ) 67 скачиваний

aidar_i
Полковник
Сообщения: 3124
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 676
Откуда: Уфа
Имя: Айдар
Контактная информация:

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

#2

Сообщение aidar_i » 09.10.2018{, 20:31}

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

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

Аватара пользователя
Max
Лейтенант
Сообщения: 691
Зарегистрирован: 06.09.2015{, 13:12}
Репутация: 5
Откуда: Тюмень-Баку
Имя: Максим

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

#3

Сообщение Max » 09.10.2018{, 20:54}

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

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

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

Аватара пользователя
dizzyy
Капитан
Сообщения: 752
Зарегистрирован: 24.11.2017{, 16:25}
Репутация: 37
Откуда: Червоноград
Имя: Марьян

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

#4

Сообщение dizzyy » 09.10.2018{, 21:53}

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

Аватара пользователя
Max
Лейтенант
Сообщения: 691
Зарегистрирован: 06.09.2015{, 13:12}
Репутация: 5
Откуда: Тюмень-Баку
Имя: Максим

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

#5

Сообщение Max » 10.10.2018{, 18:07}

dizzyy писал(а):
09.10.2018{, 21:53}
Это где то проскакивало.... Вроде гдето про ленту, что на 328 на получится, надо другую или ставить плату расширения шим
Я на МЕГЕ такой же результат получил. Зависает и все.

aidar_i
Полковник
Сообщения: 3124
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 676
Откуда: Уфа
Имя: Айдар
Контактная информация:

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

#6

Сообщение aidar_i » 10.10.2018{, 23:59}

Попробуйте программный ШИМ .
http://arduino.ru/forum/programmirovani ... bom-vyvode

Аватара пользователя
Boroda
Капитан
Сообщения: 836
Зарегистрирован: 01.05.2016{, 01:04}
Репутация: 38
Откуда: Коломна
Имя: Станислав
Контактная информация:

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

#7

Сообщение Boroda » 11.10.2018{, 00:49}

Max, тут возможно идет конфликт таймеров.

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

Ответить

Вернуться в «Помогите, а то я "нимагу"»