roboforum.ru

Технический форум по робототехнике.

Duhas

Блоги посетителей.
Правила форума
В данном разделе каждый может иметь не более одной темы. Тема должна начинаться с логина (ника) робофорума.

Re: Duhas

Сообщение linvinus » 04 фев 2014, 16:24

Duhas писал(а):товарищи, подскажите, как мне малой кровью с микроконтроллера с уровнями 3.3вольта управлять дисплеем типа WH1602B?

я толи отупел окончательно толи что ) но не пойму получится ли это сделать с помощью 74hc245 и подобных


так у него вроде как на логические линии на 3.3. рассчитаны?
VIH > 2.2в
VOH 2.4в

увидел тут http://embedded.ifmo.ru/sdk/sdk61/compo ... YGK-CP.pdf
R3 forum87/topic15337.html
R2 roboforum.ru/forum102/topic13980.html
R4 roboforum.ru/post336339.html#p336339
Делать надо хорошо - плохо получится само!
Аватара пользователя
linvinus
 
Сообщения: 1672
Зарегистрирован: 29 апр 2011, 12:37
Откуда: Москва
прог. языки: С

Re: Duhas

Сообщение elmot » 04 фев 2014, 20:09

Вообще-то напрямую
Input High Volt. VIH - 2.2 - VDD V
Input Low Volt. VIL - - - 0.6 V
Output High Volt. VOH - 2.4 - - V
Output Low Volt. VOL - - - 0.4 V

Вполне совместимо с 3.3В логикой.
Аватара пользователя
elmot
 
Сообщения: 5691
Зарегистрирован: 10 ноя 2011, 12:02
Откуда: Turku, Finland
Skype: elmot73
прог. языки: Java и все-все=все
ФИО: Илья

Re: Duhas

Сообщение Duhas » 05 фев 2014, 05:12

шшас попробую, мне просто попадались версии ДШ где мин лог уровень Vdd -0.7, что несколько не совпадает с 3.3В )

щас попробую запитать его логику от 3.3, может заработает, я с этими дисплеями вообще не практиковался ) не приходилось )

да, купленный лет этак 5 назад дисплей завелся, питание и подсвеnка 5В, а данный подаю 3.7, столько стаб дает ) бедная хмега с ее 3.6 absolute maximum 8)
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"
Аватара пользователя
Duhas
 
Сообщения: 6338
Зарегистрирован: 15 сен 2007, 13:03
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович

Re: Duhas

Сообщение linvinus » 02 мар 2014, 22:02

linvinus писал(а):
Duhas писал(а):спс за инфу по терминалам.

по управлению мостом - да, по сути так. в течение одного периода ШИМ двигатель подключается то одной диагональю, то другой..


нет проблем.

ну не совсем по очереди,
вот он в деталях
http://e2e.ti.com/cfs-file.ashx/__key/t ... toring.gif
http://e2e.ti.com/cfs-file.ashx/__key/t ... rating.gif

суть того метода, что я привёл, в том что (грубо говоря) при шим 128 мотор будет стоять, при меньшем значении мотор будет крутиться в одну сторону а при большем в другую, всё управление происходит через одну переменную.
Во первых это офигенно удобно в ПИД регуляторах, если мы понижаем шим во времени, то происходит регенерация и как следствие быстрое торможение,
вы избавляетесь от необходимости специального режима торможения, всё происходит само собой.
и не нужно обрабатывать ситуацию с отрицательными значениями шим(это естественно для этого метода управления (подразумевается что 128 это 0)).

во вторых такой шим удваивает частоту на двигателе, т.е. например шим 16кгц а на двигателе реально будет 32кгц. (но ключи по прежнему переключаются на 16Кгц так что никакого увеличения потерь)

В общем, если у вас не так то советую вникнуть и попробовать этот метод управления это лучшее что я видел.
Единственный "недостаток" наличие в контроллер комплементарных выходов с аппаратным dead-time.


Есть только один минус у этого шим, при 0 шим ток через мотор не 0, т.е. мотор всегда под напряжением.
Опасно это тем, что если питание мотора не стабильное, то обезопасить мотор сбросом шима не получится, как это происходит при обычном управлении. Я так спалил два маломощных мотора мотора :(
под 0 шим я подразумеваю значение при котором мотор не крутится, случайно подал 12в в линию питания и они сгорели хотя и не крутились :(
R3 forum87/topic15337.html
R2 roboforum.ru/forum102/topic13980.html
R4 roboforum.ru/post336339.html#p336339
Делать надо хорошо - плохо получится само!
Аватара пользователя
linvinus
 
Сообщения: 1672
Зарегистрирован: 29 апр 2011, 12:37
Откуда: Москва
прог. языки: С

Re: Duhas

Сообщение Duhas » 03 мар 2014, 07:56

ммм, что-то я не понимаю.. по идее при значении когда "мотор не крутится" половину периода открыты оба нижних, а вторую половину - оба верхних ключа, т.е. на обмотку якоря ничего не подается..
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"
Аватара пользователя
Duhas
 
Сообщения: 6338
Зарегистрирован: 15 сен 2007, 13:03
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович

Re: Duhas

Сообщение linvinus » 03 мар 2014, 11:01

нет, половину периода ток течёт в одну сторону а вторую половину в другую (через мотор), т.е. то открыт левый верхний транзистор и правый нижний, то левый нижний и правый верхний.
токи равны но противоположны по знаку, поэтому мотор не крутится. фактически получается электромагнит с переменным напряжением.
Получается, что в случае если поднялось напряжение питания, уменьшить ток никак нельзя, у меня моторы тупо перегрелись.
Для себя решил что нужно выставлять программное ограничение на продолжительность нахождения в таком режиме.
R3 forum87/topic15337.html
R2 roboforum.ru/forum102/topic13980.html
R4 roboforum.ru/post336339.html#p336339
Делать надо хорошо - плохо получится само!
Аватара пользователя
linvinus
 
Сообщения: 1672
Зарегистрирован: 29 апр 2011, 12:37
Откуда: Москва
прог. языки: С

Re: Duhas

Сообщение Duhas » 03 мар 2014, 12:32

не не не, это у меня так раньше было )

сейчас иначе. в общем как у меня получилось:
два канала таймера с комплементарными выходами подключены к драйверу моста, прямые выходы на верхние ключи, инверсные на нижние(если не изменяет память), в регистры сравнения каналов таймера записываются опять же комплементарные значения, т.е. есть на одном 1FF - на другом 000 (у меня получился диапазон 0-1FF). в итоге 000 и 1FF - максимальные ШИМ для разных направлений, а 100 - середина соответствующая нулевой ШИМ.

если на пальцах как оно в итоге работает:
допустим у нас задание ШИМ 1FF, то на одном канале в регистре сравнения 1FF, а на другом 000, таким образом первый канал включен весь период, второй выключен(или наоборот, не помню какой там уровень активен до и после совпадения), в общем значения различны и на одной "стойке" открыт верхний ключ, а на другой нижний. в обратном случае - наоборот.

в случае если задание 100, на другом, соответственно 0ff, то в первую половину периода - оба включены - и соответственно замыкают обе клеммы мотора на + линию, во второй половине - открыты оба нижних... лишь разница в такт может быть, и то ее можно погасить арифметикой.. ну и по скольку ШИМ в режиме phase correct - то это повторяется еще раз в обратном порядке ...

ну и промежуточное состояние - допустим задание 190, тогда в регистра - 190 и 06F, сначала в обеих "стойках" открыты верхние ключи, при достижении 06f закрывается верхний второй "стойки" и открывается нижний = ток потек через мотор слева на право, досчитал до 190 - переключились ключи первой "стойки" и мотор замкнут обоими клеммами на -, далее дойдя до вершины и вплоть до спуска до 190 клеммы мотора так и замкнуты на -.. опускаемся до 190 - переключаются ключи первой стойки - включается верхний ключ, опускаемся до 06f - переключаются ключи второй "стойки" и мотор теперь замкнут обоими клеммами снова на +...
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"
Аватара пользователя
Duhas
 
Сообщения: 6338
Зарегистрирован: 15 сен 2007, 13:03
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович

Re: Duhas

Сообщение linvinus » 03 мар 2014, 14:01

Duhas писал(а):не не не, это у меня так раньше было )

сейчас иначе. в общем как у меня получилось:
два канала таймера с комплементарными выходами подключены к драйверу моста, прямые выходы на верхние ключи, инверсные на нижние(если не изменяет память), в регистры сравнения каналов таймера записываются опять же комплементарные значения, т.е. есть на одном 1FF - на другом 000 (у меня получился диапазон 0-1FF). в итоге 000 и 1FF - максимальные ШИМ для разных направлений, а 100 - середина соответствующая нулевой ШИМ.

если на пальцах как оно в итоге работает:
допустим у нас задание ШИМ 1FF, то на одном канале в регистре сравнения 1FF, а на другом 000, таким образом первый канал включен весь период, второй выключен(или наоборот, не помню какой там уровень активен до и после совпадения), в общем значения различны и на одной "стойке" открыт верхний ключ, а на другой нижний. в обратном случае - наоборот.

в случае если задание 100, на другом, соответственно 0ff, то в первую половину периода - оба включены - и соответственно замыкают обе клеммы мотора на + линию, во второй половине - открыты оба нижних... лишь разница в такт может быть, и то ее можно погасить арифметикой.. ну и по скольку ШИМ в режиме phase correct - то это повторяется еще раз в обратном порядке ...

ну и промежуточное состояние - допустим задание 190, тогда в регистра - 190 и 06F, сначала в обеих "стойках" открыты верхние ключи, при достижении 06f закрывается верхний второй "стойки" и открывается нижний = ток потек через мотор слева на право, досчитал до 190 - переключились ключи первой "стойки" и мотор замкнут обоими клеммами на -, далее дойдя до вершины и вплоть до спуска до 190 клеммы мотора так и замкнуты на -.. опускаемся до 190 - переключаются ключи первой стойки - включается верхний ключ, опускаемся до 06f - переключаются ключи второй "стойки" и мотор теперь замкнут обоими клеммами снова на +...

Я вроде бы понял, но непонятно работает ли так в 4 квадрантах? как в оригинальной схеме?

Мой тест с разгоном и торможением можете провести? Сразу будет понятно.
Напомню, выясняем минимальное значение ШИМ при котором двигатель вращается, затем устанавливаем максимальное значение ШИМ и спустя какое то время резко сбрасываем до минимального значения, если скорость упадёт мгновенно и двигатель продолжит вращаться на минимальной скорости значит работает во всех 4 квадрантах. (никаких пид регуляторов быть не должно)

У меня один канал (два комплементарных сигнала) управляет одним H-мостом, 1в1 как в оригинальной схеме.
И по другому включить не получится, драйвер не позволяет.
В общем то удобно, два драйвера на одном таймере и ещё пара каналов таймера свободно,но при нулевом значении ШИМ у меня утюг.
R3 forum87/topic15337.html
R2 roboforum.ru/forum102/topic13980.html
R4 roboforum.ru/post336339.html#p336339
Делать надо хорошо - плохо получится само!
Аватара пользователя
linvinus
 
Сообщения: 1672
Зарегистрирован: 29 апр 2011, 12:37
Откуда: Москва
прог. языки: С

Re: Duhas

Сообщение Duhas » 03 мар 2014, 15:40

утюг из двигателя или ключей ?

постараюсь проверить на днях
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"
Аватара пользователя
Duhas
 
Сообщения: 6338
Зарегистрирован: 15 сен 2007, 13:03
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович

Re: Duhas

Сообщение linvinus » 03 мар 2014, 16:14

Duhas писал(а):утюг из двигателя или ключей ?

из двигателя, ключи нормально держат.
R3 forum87/topic15337.html
R2 roboforum.ru/forum102/topic13980.html
R4 roboforum.ru/post336339.html#p336339
Делать надо хорошо - плохо получится само!
Аватара пользователя
linvinus
 
Сообщения: 1672
Зарегистрирован: 29 апр 2011, 12:37
Откуда: Москва
прог. языки: С

Re: Duhas

Сообщение avr123.nm.ru » 04 мар 2014, 11:30

linvinus писал(а): в случае если поднялось напряжение питания, уменьшить ток никак нельзя,
очевидно можно увеличением частоты переключений.
Читайте !
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

Re: Duhas

Сообщение Duhas » 05 мар 2014, 05:26

linvinus писал(а):У меня один канал (два комплементарных сигнала) управляет одним H-мостом, 1в1 как в оригинальной схеме.

еще не проверял, но есть подозрение что может в этом быть проблема..

т.е. у вас ключи находящиеся в "диагонали" управляются совместно?

такс, глянул схему
H-Bridge5.gif-550x0.png


тут комплементарными являются только сигналы управления ключами "стойки" Сигналы же с компараторов L и R инверсией не получить, нужно именно два канала сравнения в которых в регистры сравнения будут записываться числа n и 0xFF-n, где 0xFF период таймера.. иначе, имхо, работать как задумано оно не будет..



старты вперед - стоп- старт назад и т.д. в том числе реверсы в конце видео..
щелчки реле - защите БП Mean Well, при стопе повышается напряжение. звон - так звенит сам мотор при жестких старт-стопах и реверсе. останавливается почти мгновенно.
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"
Аватара пользователя
Duhas
 
Сообщения: 6338
Зарегистрирован: 15 сен 2007, 13:03
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович

Re: Duhas

Сообщение linvinus » 05 мар 2014, 11:39

Спасибо что вникли.
Да действительно не тоже самое :( хотя работает.
Получается:
1) нет удвоения частоты
2) мотор всегда под напряжением,
в оригинальной схеме он не будет под напряжением.
3) катушка разражается через питание

короче у меня pwm3 http://e2e.ti.com/blogs_/b/motordriveco ... art-3.aspx
я расстроился.
R3 forum87/topic15337.html
R2 roboforum.ru/forum102/topic13980.html
R4 roboforum.ru/post336339.html#p336339
Делать надо хорошо - плохо получится само!
Аватара пользователя
linvinus
 
Сообщения: 1672
Зарегистрирован: 29 апр 2011, 12:37
Откуда: Москва
прог. языки: С

Re: Duhas

Сообщение Duhas » 05 мар 2014, 11:41

а зачем расстраиваться ? ) подключить второй канал таймера и добавить пару строк кода )
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"
Аватара пользователя
Duhas
 
Сообщения: 6338
Зарегистрирован: 15 сен 2007, 13:03
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович

Re: Duhas

Сообщение linvinus » 05 мар 2014, 11:57

Duhas писал(а):а зачем расстраиваться ? ) подключить второй канал таймера и добавить пару строк кода )

для этого нужно схему переделывать.
ладно в принципе то что мне нужно он делает (режим регенерации есть), ключи не перегреваются, ещё и конденсаторы подзаряжаю - электричество экономлю, а датчики тока у меня последовательно с мотором включены.

старты вперед - стоп- старт назад и т.д. в том числе реверсы в конце видео..
щелчки реле - защите БП Mean Well, при стопе повышается напряжение. звон - так звенит сам мотор при жестких старт-стопах и реверсе. останавливается почти мгновенно.

это не то что я просил, так мотор может работать практически в любом варианте шим.

нужно подобрать минимальное заначение pwm при котором мотор крутится, допустим это 20%PWM теперь даём 100%pwm затем 20% всё в одном направлении.
если pwm без регенерации (работает только 2 квадранта) то он будет тормозиться плавно, если 4 квадранта то он замедлится мгновенно и продолжит вращаться на 20% мощности.

Так вот, при обычном шиме затормозить его так же быстро да ещё так чтобы он продолжил вращаться практически невозможно, никакие пиды это не отработают.
R3 forum87/topic15337.html
R2 roboforum.ru/forum102/topic13980.html
R4 roboforum.ru/post336339.html#p336339
Делать надо хорошо - плохо получится само!
Аватара пользователя
linvinus
 
Сообщения: 1672
Зарегистрирован: 29 апр 2011, 12:37
Откуда: Москва
прог. языки: С

Пред.След.

Вернуться в Блоги

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8