аппаратное прерывание!
- Войдите на сайт для отправки комментариев
Пнд, 21/03/2016 - 02:53
Здравствуйте!! Я начинающий программист!! Перерыл все и не нашел как с помощью переполнения упралять шим! Суть в том, что мне надо с помощью пульта управлять двигателем или шаговым, или ПТ что бы он плавно трогался при 1 нажатой кнопки, а при 2 плавно останавливался, а при нажатии на 3 что бы крутился в другую сторону! Для этого я использую микросхему L293D! Заранее спасибо!
ебануться!
Тот случай, когда очень хочется присоединиться к мнению предыдущего уважаемого комментатора.
программист уровень: начинающий.
Клапауций +1
ТС: может, попробуете объяснить?
И чтобы можно было корованы грабить.
Юноша! Не обижайтесь на мастеров. Просто Вы написали совершенно нечитаемый вопрос, потому и вызвали спаведливый смех.
----------------------------------------------
Итак по делу:
Код писать за Вас не стану. Покажу как.
1. Прервывания вам совсем не нужны. Если речь идет о действиях пользователя, то реакция здорового человек не быстрее 0.1-0.2 сек, то есть 100-200 мс. За это время можно опросить кнопки и изменить параметры ШИМ, если, конечно, Вы в цикле уравнение Гейзенберга для атома уране не решаете.
2. для переключения направления мотора - используйте второй канал L293D, подключив его к мотору в обратной полярности. тогда ногами 1 и 9 (enable1 и enable2) вы сможете выбирать напрвление. Input1 соединяем с input3, а input2 с input4 и на землю.
К ардуинке input1(3) - ШИМ, а enable1 и enable2 - к цифровым на выбор, назовем их Fpin и Bpin.
3. Плавный пуск/останов достигается так: при первом обнаружении того, что кнопка нажата (а "до этого" была отпущена) запоминаем время в миллисекундах,
при каждом следующем вхождении в цикл проверяем кнопку - если все еще нажата, то проверяем время от последного действия с ШИМ выходом, если прошло более, чем задано в параметре <плавность> то увеличиваем ШИМ на 1 (или уменьшаем, при остановке) и проверяем на границы (0 <= ШИМ < 255).
4. Если обнаружили, что кнопка отпущена - оставляем все как есть, если обнаружили нажатой кнопку 3, то гасим Fpin и поднимаем Bpin. Тут уж - какая логика Вам нужна, "назад" при постоянно нажатой "3", или однократное нажатие "3" переключает направление.
Вот, Как-то так.