| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Микроконтроллеры (MCU) и микропроцессоры (MPU) > ШИМ+мотор pic |
| Автор: revanatar 13.4.2013, 18:02 |
Ищу примеры работы с ШИМ на pic-микроконтроллерах, непосредственно на ассемблере. В идеале управление мотором через ШИМ. Пытаюсь реализовать схему: (подправил схему) |
| Автор: xvr 15.4.2013, 12:46 |
| 'Схемка' работать не будет. Рекомендую для начала разобраться с работой биполярного транзистора, а потом уже переходить к PIC и ШИМам |
| Автор: revanatar 15.4.2013, 13:37 | ||
Да я как бы проверил, поочередно питание подключал к проводкам которые на ШИМы пустил, при подаче на верхний провод двигатель крутился против часовой, на нижний - по часовой. Добавлено через 5 минут и 28 секунд И при изменении напряжения скорость вращения меняется. |
| Автор: xvr 15.4.2013, 18:19 |
У вас в транзисторах Q3 и Q4 нет резисторов в базах. Ток базы будет ограничен только тем, сколько сможет вкачать в них PIC. И ему это не понравится (и транзисторам тоже). Верхние транзисторы (Q1 и Q2) включены как эмитерные повторители - больше чем напряжение с PIC'а они не дадут (даже меньше - на падение напряжения на базовом переходе). Кроме того, для подключения с ШИМом и реверсом управление надо завести отдельно на все 4 транзистора |
| Автор: revanatar 15.4.2013, 18:37 | ||
В этом я смогу разобраться сам, ПОТОМ, схему мне дали как задание именно такую, привел только для того чтобы было понятно о чем речь. В первую очередь нужно разобраться ИМЕННО с ШИМом, потом со схемой и только потом все это буду собирать вместе, потому сейчас меня волнует в первую очередь ответ на поставленный вопрос, а далее все остальное, замечания и пожелания. Да и суть задания - это научиться управлять ШИМ. Теории по нему вагон и тележка, а примеров найти не могу. |
| Автор: revanatar 16.4.2013, 17:22 | ||||
Ну у меня препод мазохист то все знают, на С примеры видел, а вот на ассемблере только куски не комментированного кода с непонятным назначением. Желательно pic16f877, нужны примеры кода для каких либо задач, в идеале для того же двигателя, но на то не надеюсь. |
| Автор: xvr 17.4.2013, 08:02 | ||||||
Понятно.
Тогда могу порекомендовать посмотреть в Application Notes на самом Microchip'е (у них там были AN с примерами кода на ассемблере) Ну или в крайнем случае взять пример на С, прогнать его через С компилятор (в ассемблер), и отрезать от результата необходимую часть (она будет очень небольшая - вся работа с PWM заключается в нескольких записях в несколько переферийных регистров) Есть для 876го дверной звонок. Он читает пожатый с помощью ADPCM звук из Atmel'овского Data Flash, разжимает и играет через PWM. Но он на С, и сама работа с PWM там занимает меньше процента от всего кода. Собственно вот она -
Еще инициализация -
Кстати, в DS на PIC16F87x все подробно расписано (даже есть пара строк на ASMе) |
| Автор: revanatar 17.4.2013, 16:50 |
| https://github.com/tomclemente/PIC16F877A/blob/master/PWM.ASM вот что-то нашлось, но пояснений ни малейших. |
| Автор: revanatar 25.4.2013, 22:39 | ||
Отдельно - это как? |
| Автор: xvr 26.4.2013, 10:58 |
Это 4 отдельных провода - по штуке на каждый транзистор. Хотя можно и так, как у ТС, но КПД будет не очень |
| Автор: revanatar 26.4.2013, 18:45 | ||
xvr, хах, не могу остановить шим
Что еще сделать чтобы остановить? И в какой последовательности? Не просто чтобы не крутил, а именно отключить. А все, разобрался. Если есть смысл - могу выложить код со скрином, все рабочее в нормальной степени. (управляется шим через ацп). |
| Автор: revanatar 1.6.2013, 20:55 |
| Вот проект протеуса. |