Без описания |
Поиск в теме | Версия для печати |
lamakazzz |
Отправлено: 10 Января, 2010 - 00:46:00
|

Главнокомандующий

Сообщений всего: 328
Дата рег-ции: Янв. 2010
|
Возможно, Вам есть смысл собрать робота без МК (микроконтроллера), а только на драйвере двигателя L293D, почитать и разобраться, как оно работает.
Когда в Вашей программе вы указываете 1 на выходе (ножке) МК, то, соответственно, передается сигнал высокого уровня на драйвер двигателя, в цепи идет ток и мотор крутится. Когда на выходе 0 - сигнал низкого уровня - мотор не крутится.
Для простоты можно представить, что это водопровод: когда подаётся 1 - это равносильно, что Вы открутили кран и идёт вода; когда подаётся 0 - Вы закрутили кран и вода не идёт. Т.е. всего два положения: 0 и 1 (закрыто и открыто). Соответственно, если Вы ставите лог.элемент "НЕ", то моторы будут крутиться, когда установлен "0".
Поправьте, если я что-то напутал.(Отредактировано автором: 10 Января, 2010 - 00:49:10) |
|
|
zatmenie |
Отправлено: 10 Января, 2010 - 10:50:00
|

Генерал

Сообщений всего: 97
Дата рег-ции: Май 2009
|
nest пишет:покажите, какой код использовали.
так я в генераторе кода менял настройки ножек, а так я не знаю какой код мне нужно сделать.
lamakazzz пишет:Возможно, Вам есть смысл собрать робота без МК (микроконтроллера), а только на драйвере двигателя L293D, почитать и разобраться, как оно работает.
в принципе я разобрался как все это работает, смоделировал в протеусе.
lamakazzz пишет:Т.е. всего два положения: 0 и 1 (закрыто и открыто). Соответственно, если Вы ставите лог.элемент "НЕ", то моторы будут крутиться, когда установлен "0".
Да на выходе всего 2 положения, но я читал в какой то книге что у avr 3 положения: вход, выход и отключено. Если ставить лог.элемент то из 0 он делает 1, а из 1 делает 0. Т.е. мотор всегда будет крутится. Вот а мне надо что бы она была отключена, но так что бы программа смогла менять её положение, т.е. сейчас она отключена, датчик сработал она стала 0 и мотор крутится в одну сторону, затем другой датчик сработал она стала 1 и омотор крутится в другую сторону, если ничего не сработало ножка становится отключена и мотор не крутится.
|
|
|
nest  |
Отправлено: 10 Января, 2010 - 12:37:06
|

Администратор

Сообщений всего: 4866
Дата рег-ции: Сент. 2009
|
zatmenie, что бы мотор не крутился, нужно:
1) ИЛИ: подавать на входы IN1 и IN2 (L293) одинаковые лог. сигналы, т.е. либо оба "1", либо оба "0".
2) ИЛИ: подавать "0" на вход ENABLE, тогда мотор окажется как бы "отключённым" от L293. В этом случае он будет некоторое время крутиться по инерции (возможно, очень коротко, в зависимости от нагрузки на его валу). Такое отключение произойдёт независимо от сигналов на IN1 или IN2.
Если используется вариант 1 - то мотор будет гарантированно заторможен. Т.к. его выводы будут как бы "замкнуты" через микросхему L293.
При варианте 2 - мотор будет останавливаться сам по инерции. Т.к. его выводы будут электрически никуда не подключены, "висеть в воздухе".
Тут ещё можно провести простой эксперимент: возмите моторчик в руки и крутните пальцами его вал. Заметте как он будет вращаться по инерции. А потом замкните проводком выводы мотора, и крутните вал ещё раз...
Но в любом случае вам требуется задействовать минимум две ноги микроконтроллера.
Логический элемент у вас в схеме, zatmenie, вообще то не нужен. Подавайте на IN1 и IN2 прямо с двух ножек микроконтроллера. И управляйте ими програмно как вам хочется.
По-мне лучше всё соединить так: IN1 - PB0, IN2 - PB1 , ENABLE - PB2. В таком варианте управление мотора будет наиболее гибким. Даже ШИМ можно будет потом использовать и регулировать скорость вращения мотора програмно.
zatmenie пишет:я в генераторе кода менял настройки ножек, а так я не знаю какой код мне нужно сделать. вот и покажите код, который есть. |
|
|
zatmenie |
Отправлено: 10 Января, 2010 - 16:03:02
|

Генерал

Сообщений всего: 97
Дата рег-ции: Май 2009
|
nest пишет:можно. нужно её включить как Input.
а для чего это вам ? повесить в воздухе ножку вам ничего не даст, т.к. драйвер двигателя L293 управляется "1" или "0", и никак больше. Прочитайте ещё раз, какие варианты "отключения"/останова мотора я описал.
В том то и дело если я повешу ножку в воздухе - значит она будет и не 0 и не 1, а это значит мотор работать не будет. потом программа меняет её на 0 или 1 и мотор крутится туда или сюда! Вот в этом весь прикол, что бы одной ножкой управлял мотором через логические элементы.
nest пишет:Почему вам хочется именно на "малоногом" МК собрать робота ?
Потому что мне так интересней.
nest пишет:Зато значительно повышает требования к хитрым схематическим решениям.
мне это как таз и нужно!
nest пишет:Если вас привлекает лишь малый размер корпуса - то можно взять многоногий и в SMD варианте. Но паять будет немного сложнее.
Дело не в размере.
А как программно ножку менять из OUTPUT в INPUT? |
|
|
|
Поиск в теме | Версия для печати |
Страниц (17): [1] 2 3 4 5 6 7 8 9 ... » В конец |
« Программирование микроконтроллеров » |
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
|
  |
|
|
|