Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Крутить моторчик в разные стороны с помощью МК
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > MCS51, AVR, PIC, STM8, 8bit
freeddos
Здравствуйте.
У меня такой вопрос. Требуется запрограммировать МК таким образом чтобы выполнялось следующее:
10 сек пауза
Моторчик крутиться по часовой стрелке (10 сек)
Моторчик останавливается(10 сек пауза)
Моторчик крутиться против часовой стрелки (10 сек)
Потом пауза и все повторяется.
Каким образом это можно организовать. То есть я понимаю каким то образом нужно менять полярность.
Есть рисунок с ключами, при нажатии на который крутиться мотор то в одну то в другую сторону.
Как сделать замыкание этих ключей программно с помощью МК.
Спасибо заранее.
izerg
Ответ будет не по теме МК, но все же:
Не надо здесь МК программировать, это дорогое удовольствие.
Выбирайте серийную продукцию.
Реле времени
Модельный ряд Loavto, например, очень широк, и Вашу задачу решит целиком 1 реле времени, если мотор мощный - добавите рядом 2 силовых реле/контактора.
Цена при этом получится в разы меньше чем изготовление единичного устройства на МК.

Ответ ближе к теме: замыкание ключей программно делается выводом логической "1" на соответствующий вывод МК.
freeddos
Да сам моторчик 2Вольта, от детской машинки) так что это для маленького ребенка чтобы крутилось и вертелось в разные стороны.
А можно по подробней про МК программирование именно.
Просто хочется именно с МК. и разобраться каким именно способом программировать.
Заранее благодарен за разъяснения.
prottoss
Цитата(freeddos @ Feb 5 2012, 15:54) *
Здравствуйте. У меня такой вопрос.
Для начала нужно написать алгоритм. По нему и двигаться.
Схема у Вас верная. Только вместо выключателей поставить транзисторы. Можно полевые, можно биполярные.
Если провести две линии - одна 5 вольт, другая - "земля". У у Вас получится две пары последовательно включенных транзисторов. У каждой пары транзисторы (пусть будут биполярные) коллекторами соединены вместе. В точкам соединения коллекторов подключаете двигатель. "Верхние транзисторы" структуры Р-N-Р, нижние - N-P-N. Базы верхних транзисторов подтягиваете к питанию через резисторы 10-47 кОм, "нижних" - к "земле". Это нужно для того, чтобы не было бросков тока при включении девайса.

По алгоритму.
1. Настраиваете таймер МК на нужное время.
2. Порты, их будет 4-е (по одному на транзистор) на ввод, пуллапы отключаем
3. Ждем 10 сек - следим за таймером.
4. Порт верхнего ключа №1, и порт нижнего ключа №2 устанавливаем как выход. В верхний ключ пишем 0, в нижний 1.
5. Ждем 10 сек.
6. Все порты опять на ввод, пуллапы отключаем
7.Ждем 10 сек.
8. Порт нижнего ключа №1, и порт верхнего ключа №2 устанавливаем как выход. В верхний ключ пишем 0, в нижний 1.
9. Ждем 10 сек.
10. Все порты опять на ввод, пуллапы отключаем

Как то так...
freeddos
Вот я накидал схемку. Она правильная. Поправьте что не так.
prottoss
Цитата(freeddos @ Feb 5 2012, 17:03) *
Вот я накидал схемку. Она правильная. Поправьте что не так.
Мда... А как Вы транзисторами то управлять собрались?

...Мож проще сынишке в магазине игрульку купить прикольную?
freeddos
Ок. Тогда как нужно можете подсказать...
если нет то спасибо за помощь...
prottoss
Наверное как то так.
freeddos
VСС - это плюс?
И желтые точки 4 порта на МК? которыми нужно управлять?
prottoss
Цитата(freeddos @ Feb 5 2012, 17:45) *
VСС - это плюс?
И желтые точки 4 порта на МК? которыми нужно управлять?
Ага

Соответсвенно, чтобы открылись верхние ключи, нужно подать на них лог. 0, чтобы нижние - лог. 1.
Но, открываться они должны только по диагонали. Т.е, например:

Прямой ход: верхний левый и нижний правый.
Обратный ход: верхний правый и нижний левый.

Одновременное открытие левых или правых ключей приведет, скорее всего к выходу их из строя.
Одновременно открытие верхних или нижних к остановке мотора.
freeddos
да на счет по диагонали я разобрался.
Осталось подобрать транзисторы и сопротивления.
Спасибо большое.
domowoj
Еще необходимо, (если движёк 2х вольтовый, а напряжение питания - 5В)
уменьшить напряжение на двигателе, включив в его послед,
например, низкоомный резистор достаточной мощности.
Его можно легко посчитать.

И еще поставить паралеллельно каждому транзистору по обратновключенному диоду,
чтобы "обрезать" выбросы от двигателя.

Выбор транзисторов по мах току двигателя, с запасом.
Резисторы посчитаете исходя из коэф. передачи по току,
выбранных транзисторов.
prottoss
Цитата(domowoj @ Feb 6 2012, 07:30) *
Еще необходимо...
Да, все так. Я привел схему больше как наглядную принципиальную, нежели как готовую для повторения.
Ее можно дорабатывать и дорабатывать sm.gif Например поставить дополнительные ключи для управления диагоналями. Это исключило бы вероятность включения аварийных комбинаций.

Вообще ТС можно было бы поискать готовые схемные решения в сети а не разрабатывать все с нуля, тем более что познания в этой области у него, мягко говоря, слабоваты.
freeddos
Вопрос туда же, какой контроллер использовать для этих целей?
Желательно дешевый.

А то Atmega дороги в принципи, может чтото есть дешевле для таких элементарных целей.
_Ivana
Знатоки и те кто давно в теме может и вспомнят такой МК, который бы не справился с этой задачей - но и то не факт. Я по крайней мере таких точно не знаю, которые не справятся. Только если возьмете AVR семейства tiny - то у некоторых нет ОЗУ - С не откомпилируется и придется писать на asm. С другой стороны, если вам 100р за Atmega дорого, то даже не знаю что сказать.... http://www.ekits.ru/index.php?productID=2567 Или вы эти игрушки хотите выпускать партией в 1000000 штук и вам важно экономить каждую копейку себестоимости? Тогда да, это имеет смысл.
domowoj
Цитата(_Ivana @ Feb 7 2012, 00:17) *
Только если возьмете AVR семейства tiny - то у некоторых нет ОЗУ - С не откомпилируется и придется писать на asm.

Это не совсем так, все последние AVR tiny ОЗУ имеют.
Да и чем плох asm
hd44780
ATtiny2313. И дешёвый, и ОЗУ есть. На си писать можно.

Asm не плох. С ним возни больше. ИМХО.
Для начального изучения Си проще. ASm охоту может отбить вообще этим заниматься. Сам наблюдал этот эффект (не на себе sm.gif ).
А Си помогает плавно "войти в тему". По ходу сможете и асм подключать. Если захотите или понадобится ...

Берите WinAVR или CodeVision. Последний несколько удобнее. Есть генератор начального кода (генерит заготовку-болванку с настройкой портов, таймеров и пр. мелочи).
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.