Easyelectronics.ru

Электроника для всех
Текущее время: 30 окт 2020, 16:21

Часовой пояс: UTC + 5 часов



JLCPCB – Прототипы печатных плат за $2/5шт. два слоя. $5/5шт. четыре слоя
Крупнейший производитель печатных плат и прототипов. Более 600000 клиентов и свыше 10000 заказов в день!
Получите скидку на почтовую отправку при первом заказе в JLCPCB!

Начать новую тему Ответить на тему  [ Сообщений: 20776 ]  На страницу Пред.  1 ... 3, 4, 5, 6, 7, 8, 9 ... 832  След.
Автор Сообщение
 Заголовок сообщения: Re: Вопрос.
СообщениеДобавлено: 13 ноя 2010, 02:42 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 07 ноя 2010, 19:32
Сообщения: 64
Откуда: Ижевск
Sparker писал(а):
Reverb писал(а):
Вопрос, возможно дурацкий, но все-таки не пойму. Начал изучать avr, язык - ассэмблер. Все по уроками Ди.
В коде хочу присвоить константе значение 1500, аврстудио ругается и говорит "out of range". Как быть в таких делах? использовать промежуточные операции для получения такого числа??? или как...

У АВРок все РОН и ячейки оперативной памяти 8-битные. Если нужно хранить число 1500, то следует (а иначе никак и нельзя) использовать два байта информации.


Резервируем 2 байта оперативы и вписываем в .dseg???

_________________
"Во многой мудрости много печали, и, умножая познание мы умножаем скорбь"


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Мелкие вопросы
СообщениеДобавлено: 13 ноя 2010, 02:49 
Старожил
Аватара пользователя

Зарегистрирован: 27 янв 2010, 01:04
Сообщения: 814
Откуда: Черноголовка
Смотря для чего Вам надо. Нужно долго хранить - можно и в оперативку. Я лишь хотел сказать, что одним байтом 1500 значений нельзя закодировать, можно только двумя.
А Вы не цикл ли строите? Ото такое большое число...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Мелкие вопросы
СообщениеДобавлено: 13 ноя 2010, 02:57 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 07 ноя 2010, 19:32
Сообщения: 64
Откуда: Ижевск
Sparker писал(а):
Смотря для чего Вам надо. Нужно долго хранить - можно и в оперативку. Я лишь хотел сказать, что одним байтом 1500 значений нельзя закодировать, можно только двумя.
А Вы не цикл ли строите? Ото такое большое число...


Он самый:)
Дело в том, что сразу наткнулся на проблему в присвоений. А еще какие-либо способы хранения таких чисел есть? помимо ОЗУ...

_________________
"Во многой мудрости много печали, и, умножая познание мы умножаем скорбь"


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Мелкие вопросы
СообщениеДобавлено: 13 ноя 2010, 02:59 
Старожил
Аватара пользователя

Зарегистрирован: 27 янв 2010, 01:04
Сообщения: 814
Откуда: Черноголовка
Если нужен большой цикл, постарайтесь сделать цикл, а в этом цикле будет еще один цикл.
Пример кода:
Код:
delay_long:push temp1
      push   temp2      
      ldi    temp1,100
wait1:   dec      temp1
      breq   end2
      ldi      temp2,255
wait2:   dec      temp2
      breq   wait1
      rjmp   wait2
end2:   pop      temp2
      pop      temp1
      ret

temp1 = r16
temp2 = r17


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Мелкие вопросы
СообщениеДобавлено: 13 ноя 2010, 03:02 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 07 ноя 2010, 19:32
Сообщения: 64
Откуда: Ижевск
Wow)))
Sparker, благодарю за совет) Лаконичное решение:)

_________________
"Во многой мудрости много печали, и, умножая познание мы умножаем скорбь"


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Мелкие вопросы
СообщениеДобавлено: 13 ноя 2010, 15:48 
Старожил
Аватара пользователя

Зарегистрирован: 27 янв 2010, 01:04
Сообщения: 814
Откуда: Черноголовка
Изображение
Товарищи, так что скажете про ШИМ регулировку скорости двигателя в таком Н-мосте? Каждым транзистором нужно управлять отдельно?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Мелкие вопросы
СообщениеДобавлено: 13 ноя 2010, 16:55 
Старожил
Аватара пользователя

Зарегистрирован: 09 май 2010, 19:12
Сообщения: 338
Откуда: Украина, Киев
Sparker писал(а):
Изображение
Товарищи, так что скажете про ШИМ регулировку скорости двигателя в таком Н-мосте? Каждым транзистором нужно управлять отдельно?

Включать транзисторы нужно попарно "по диагонали".


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Мелкие вопросы
СообщениеДобавлено: 13 ноя 2010, 17:20 
Старожил
Аватара пользователя

Зарегистрирован: 27 янв 2010, 01:04
Сообщения: 814
Откуда: Черноголовка
Это ясно. При ШИМ недопустимо включение нижней или верхней пары? то есть так, к примеру: включены транзисторы A и D 60% - остальные 40% времени включены A и B транзисторы, и так далее. Яснее написано тут в первом пункте, что я хочу узнать:
http://nest.roboterbastler.de/DoubleMot ... ex_v1.html
Но что-то я так и не получил ответа на вопрос... или читал не очень внимательно.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Мелкие вопросы
СообщениеДобавлено: 13 ноя 2010, 18:00 
Старожил
Аватара пользователя

Зарегистрирован: 26 янв 2010, 21:55
Сообщения: 5542
Откуда: Уругвайская АССР
Sparker писал(а):
к примеру: включены транзисторы A и D 60% - остальные 40% времени включены A и B транзисторы
Нафига? Получается, что 60% времени двигатель пытается раскрутиться в одну сторону, а 40% - в другую, происходят потери энергии на борьбу с инерцией якоря??
В реальности делается проще - допустим, транзистор A открыт постоянно, а ШИМ поступает на затвор транзистора D. Если надо крутить в другую сторону - открываем транзистор B, шимим транзистором C.

_________________
Без гнева и жестокости, сегодня Смерть взмахнёт косой, и ангел тайными дорогами мой милый Кубик унесёт с собой.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Мелкие вопросы
СообщениеДобавлено: 13 ноя 2010, 18:13 
Старожил
Аватара пользователя

Зарегистрирован: 09 май 2010, 19:12
Сообщения: 338
Откуда: Украина, Киев
Горнист писал(а):
Sparker писал(а):
к примеру: включены транзисторы A и D 60% - остальные 40% времени включены A и B транзисторы
Нафига? Получается, что 60% времени двигатель пытается раскрутиться в одну сторону, а 40% - в другую, происходят потери энергии на борьбу с инерцией якоря??
В реальности делается проще - допустим, транзистор A открыт постоянно, а ШИМ поступает на затвор транзистора D. Если надо крутить в другую сторону - открываем транзистор B, шимим транзистором C.

Совершенно правильно. Так и делают всегда. Верхние ключи открывают в соответствии с направлением вращения, а нижними регулируют скорость.
А вообще при токе якоря порядка 1А можно применить L6202 (L6204). Вполне нормальные ключики.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Мелкие вопросы
СообщениеДобавлено: 13 ноя 2010, 18:18 
Старожил
Аватара пользователя

Зарегистрирован: 27 янв 2010, 01:04
Сообщения: 814
Откуда: Черноголовка
Немного не так... Если бы мне не был нужен шим, а только Влево, Вправо и Стоп, то я бы закоротил затворы двух левых транзисторов, и закоротил бы затворы двух правых транзисторов. Подаю на левое плечо высокое напряжение, а на правое плечо низкое напряжение и двигатель крутится в одну сторону, наоборот - в другую. Если подам и высокое напряжение и на левое и на правое плечо, тогда верхняя пара запрется, нижняя пара транзисторов откроется, и наоборот. В этих случаях выводы мотора закоротятся и его будет очень сложно вращать.
А если с ШИМ? Получится, что будет чередоваться Высокое напряжение на одном плече и Низкое на другом с Низким напряжением на обоих плечах. Тогда во время высокого напряжения уровня на линии ШИМ двигатель будет раскручиваться, а во время низкого стопориться и терять накопленную энергию. Поэтому, как я понимаю, все транзисторы нужно контролировать раздельно. У меня вот такая схема вышла:
Изображение

Uploaded with ImageShack.us
На линию "Направление" подается логический уровень, которым будет выбрано направление двигателя. На линию "Состояние" подается лог. уровень - вращать или не вращать двигатель. Вся эта мишура справа управляет двигателями раздельно, чтобы при A=0 и B=0 или A=1 и B=1 транзисторы были закрыты. Будет работать?

Потом обдумаю и иной вариант, который вы предлагаете. Так не прийдется перезаряжать затворы каждый раз.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Мелкие вопросы
СообщениеДобавлено: 13 ноя 2010, 19:17 
Старожил
Аватара пользователя

Зарегистрирован: 26 янв 2010, 21:55
Сообщения: 5542
Откуда: Уругвайская АССР
Чёта сложно какта.
  • На транзистор А подаём сигнал "направление"
  • На транзистор Бэ подаём сигнал "не направление"
  • на транзистор Цэ подаем сигнал "ШИМ и не направление"
  • на транзистор Дэ подаём сигнал "ШИМ и направление"
(Транзисторы открыты при истинных состояниях сигналов)
И всё. Замкнутых петель нет, одновременного открытия верхней или нижней, правой или левой половин моста нет. Ничего не тормозится, ничего не коротит.

_________________
Без гнева и жестокости, сегодня Смерть взмахнёт косой, и ангел тайными дорогами мой милый Кубик унесёт с собой.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Мелкие вопросы
СообщениеДобавлено: 13 ноя 2010, 19:20 
Супермодератор
Аватара пользователя

Зарегистрирован: 26 янв 2010, 22:08
Сообщения: 7549
Откуда: Алма-ата
Sparker писал(а):
Потом обдумаю и иной вариант, который вы предлагаете.

А почему бы не использовать готовые - L293D или L298? Там все это уже есть. А при питании 12v потери на ключах невелики. Я у себя для 2х ходовых движков ДПМ-25-07 так вообще L293D использую, хватает. Чуть теплая. На каждый мост ее подаю 3 конца - 2 для управления плечами, и 1 - включение. Имею возможность комбинацией 0 и 1 на двух входах менять направление (когда 10 или 01), или иметь торможение (00 или 11). Третьим входом можно запереть оба плеча. На него подан ШИМ. Очень удобно. Управление - логическими уровнями, питание мостов отдельное, до 40v.
Изображение


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Мелкие вопросы
СообщениеДобавлено: 13 ноя 2010, 19:52 
Старожил
Аватара пользователя

Зарегистрирован: 27 янв 2010, 01:04
Сообщения: 814
Откуда: Черноголовка
Горнист писал(а):
Чёта сложно какта.
  • На транзистор А подаём сигнал "направление"
  • На транзистор Бэ подаём сигнал "не направление"
  • на транзистор Цэ подаем сигнал "ШИМ и не направление"
  • на транзистор Дэ подаём сигнал "ШИМ и направление"
(Транзисторы открыты при истинных состояниях сигналов)
И всё. Замкнутых петель нет, одновременного открытия верхней или нижней, правой или левой половин моста нет. Ничего не тормозится, ничего не коротит.

Ну да, то старый вариант. Сначала думал над тем, как ими раздельно управлять. Нарисовал табличку истинности, составил выражения для каждого транзистора. Нарисовал схему. Потом присобачил туда "Направление" и "Состояние". Действительно, лучше один из верхних держать открытым, а открывать один из нижних. Так меньше перезаряжать прийдется. Вскоре обдумаю все более тщательно.

SWG, готовое для меня как-то не очень интересно. Вот свое собрать и наладить - уже повеселее. Сначала я сделаю для своей самоходной тележки отдельный блок(печатную плату) управления двигателями, затем планирую уже заняться платой с контроллером.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Мелкие вопросы
СообщениеДобавлено: 14 ноя 2010, 15:32 
Старожил
Аватара пользователя

Зарегистрирован: 27 янв 2010, 01:04
Сообщения: 814
Откуда: Черноголовка
Как можно вычислить время, которое потребуется на то, чтобы зарядить стабильным током I конденсатор емкостью C до напряжения U? Проверьте пожалуйста:
Да и вообще, верную ли я формулу взял?
1.C=Q/U
2.C=it/U
3.it=UC
4.t=UC/i
Так?
Ото я запутался что-то...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Мелкие вопросы
СообщениеДобавлено: 14 ноя 2010, 15:39 
Старожил
Аватара пользователя

Зарегистрирован: 26 янв 2010, 21:55
Сообщения: 5542
Откуда: Уругвайская АССР
формула правильная.

_________________
Без гнева и жестокости, сегодня Смерть взмахнёт косой, и ангел тайными дорогами мой милый Кубик унесёт с собой.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Мелкие вопросы
СообщениеДобавлено: 15 ноя 2010, 03:54 
Старожил
Аватара пользователя

Зарегистрирован: 27 янв 2010, 01:04
Сообщения: 814
Откуда: Черноголовка
Получу ли я на выходе схемы сигнал треугольной формы, если на вход подать прямоугольный сигнал со скважностью 50% и с хорошо подобранной частотой?
Вроде должно быть так. Резисторами делителей напряжения нужно подобрать напряжение баз транзисторов так, чтобы при высоком напряжении на входе открывался нижний транзистор и разряжал конденсатор стабильным током, и наоборот. Разве что сигнал будет слегка ограничен по амплитуде - примерно по 0.6-0.7В "сверху" и "снизу". А может и даже чуть больше - на токозадающих резисторах в 30Ом тоже есть падение.


Вложения:
схема4.JPG
схема4.JPG [ 14.33 Кб | Просмотров: 34409 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Мелкие вопросы
СообщениеДобавлено: 15 ноя 2010, 09:24 
Старожил
Аватара пользователя

Зарегистрирован: 26 янв 2010, 21:55
Сообщения: 5542
Откуда: Уругвайская АССР
Есть подкупающее своей новизной предложение сделать макет.

_________________
Без гнева и жестокости, сегодня Смерть взмахнёт косой, и ангел тайными дорогами мой милый Кубик унесёт с собой.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Мелкие вопросы
СообщениеДобавлено: 15 ноя 2010, 16:20 
Старожил
Аватара пользователя

Зарегистрирован: 27 янв 2010, 01:04
Сообщения: 814
Откуда: Черноголовка
=)
Обязательно сделаю как будет время. А в теории? Транзисторы включены по схеме стабилизатора тока => заряд конденсаторов должен происходить более-менее линейно.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Мелкие вопросы
СообщениеДобавлено: 15 ноя 2010, 22:29 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 11 ноя 2010, 01:29
Сообщения: 67
Откуда: Samara
Reverb писал(а):
Wow)))
Sparker, благодарю за совет) Лаконичное решение:)


или так (как мне кажется изящней и удобней при расчете задержки)

LDI R16,0xDC ;Грузим 2 байта
LDI R17,0x05 ;нашей задержки
Delay:
SUBI R16,1 ;Вычитаем 1
SBCI R17,0 ;Вычитаем только С
BRCC Delay ;Если нет переноса - переход


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Мелкие вопросы
СообщениеДобавлено: 15 ноя 2010, 22:49 
Старожил
Аватара пользователя

Зарегистрирован: 27 янв 2010, 18:07
Сообщения: 2438
Откуда: Челябинск
Sparker писал(а):
Получу ли я на выходе схемы сигнал треугольной формы, если на вход подать прямоугольный сигнал со скважностью 50% и с хорошо подобранной частотой?

В этой схеме можно получить всё, что угодно, номиналов компонентов нет. Для начала по моделировать бы, затем по макетировать. Что то подсказывает (R1-R7 по 30 Ом) вгонят транзисторы в линейный режим, а там "сквозняк", умрут они.

_________________
Каяться о сделанном - к прежней глупости добавлять новую.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Мелкие вопросы
СообщениеДобавлено: 15 ноя 2010, 22:57 
Старожил
Аватара пользователя

Зарегистрирован: 27 янв 2010, 18:07
Сообщения: 2438
Откуда: Челябинск
kir_ll писал(а):
Sparker писал(а):
Получу ли я на выходе схемы сигнал треугольной формы, если на вход подать прямоугольный сигнал со скважностью 50% и с хорошо подобранной частотой?

В этой схеме можно получить всё, что угодно, номиналов компонентов нет. Для начала по моделировать бы, затем по макетировать. Что то подсказывает (R1-R7 по 30 Ом) вгонят транзисторы в линейный режим, а там "сквозняк" не за горами , умрут они.

_________________
Каяться о сделанном - к прежней глупости добавлять новую.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Мелкие вопросы
СообщениеДобавлено: 15 ноя 2010, 23:16 
Старожил
Аватара пользователя

Зарегистрирован: 27 янв 2010, 01:04
Сообщения: 814
Откуда: Черноголовка
shiva писал(а):
Reverb писал(а):
Wow)))
Sparker, благодарю за совет) Лаконичное решение:)


или так (как мне кажется изящней и удобней при расчете задержки)

LDI R16,0xDC ;Грузим 2 байта
LDI R17,0x05 ;нашей задержки
Delay:
SUBI R16,1 ;Вычитаем 1
SBCI R17,0 ;Вычитаем только С
BRCC Delay ;Если нет переноса - переход

Можно, к примеру, из младшего байта вычитать по единичке. Когда там будет 0, и мы вычтем 1, то там окажется 254, а флаг отрицательного значения поднимется. И, если он поднимется, можно уменьшить и старший байт.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Мелкие вопросы
СообщениеДобавлено: 15 ноя 2010, 23:30 
Старожил

Зарегистрирован: 29 янв 2010, 00:34
Сообщения: 818
Откуда: Санкт-Петербург
Решил запостить сюда, дабы не плодить сущности новую тему. Написал небольшую прогу для lpc2214, передает байт через UART, значение записывается в регистр сравнения ШИМ и меняется скважность. Ввожу через терминалку (Tera Term или HT), все символы корректно отправляются, кроме первых 32х. Ниже 32х либо не значение неадекватное, либо ничего не меняется (символ дублируется). При нормальной передаче одного символа загорается СД (а в случае косяка порой моргает 2 раза), символы набираю через Alt+"число", то есть отправляется гарантировано 1 байт. Что я упускаю?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Мелкие вопросы
СообщениеДобавлено: 21 ноя 2010, 15:59 
Старожил
Аватара пользователя

Зарегистрирован: 27 янв 2010, 01:04
Сообщения: 814
Откуда: Черноголовка
В генераторе пилообразных импульсов транзистору требуется резко разрядить через себя конденсатор емкостью 0.1мкФ. Подойдет ли кт315г для этих целей? Сможет ли он через себя пропустить такой ток в пике? Или следует взять что-то помощнее?


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 20776 ]  На страницу Пред.  1 ... 3, 4, 5, 6, 7, 8, 9 ... 832  След.


Часовой пояс: UTC + 5 часов


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

Сейчас этот форум просматривают: wyfinger


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB