Моддинг форум

Пропустить

Modding.ru
  •  
  • Регистрация
  • Вход
Anonymous
  • Вход
  • Список форумов ‹ Моддинг форумы ‹ Моддинг и электроника

Сайт - "Электроника для моддинга"

Обсуждаем все темы о применении электроники в моддинге (радиодетали, паяльники, принципиальные схемы, монтажные платы, микросхемы, светодиоды, LCD и т.д.)
Ответить
Сообщений: 280 • Страница 15 из 19 • 1 ... 12, 13, 14, 15, 16, 17, 18, 19

Сообщение ATLab » 04 окт 2007 03:35

GiperV2 писал(а):ATLab ну да я имел ввиду именно максимальную длительность управляющих импульсов, просто параметр используемой мной команды немного отличается от действительного значения скважности, вот.
По поводу измерений. Мерил я именно ток через вентилятор а не напряжение на нём :doc: можно сказать, руководствуясь при этом одной из статей с сайта ATLab'a
Думаю что транзисторы тут непричём :shy: походу всё дело во времени выполнения основной части программы. Нужно попытаться уменьшить его, чтобы приблизить значение тока к постоянному (чем собсна и занимались кондёры :wink: )
ЗЫ: Зачем тока спрашивал, ненаю :dontknow:

А я бы не стал сильно париться из-за того, что максимальное значение оборотов не достигается. Разница в 100 оборотв, при макс=2200 не очень ощутима ни на слух ни на производительности вентилятора.
Как я давно уже писал, смысл реобаса в возможности регулировать обороты и возможности поэтому снизить шум.
Фактически мы регулируем не обороты, а шум вентилятора. При каком точном значении оборотов достигается приемлемое значение шума дело десятое.

Взять любой аналоговый реобас, от любого брэнда. Сделан на стабилизаторе напряжения. На самом лучшем из них падение не менее 0,3-0,5 вольт. Так что, цифровой с ШИМ как минимум не хуже.

А если все же потяря 100 оборотов критична - имеет смысл взять более производительный вентилятор.
ATLab offline
Ultra Modder
Ultra Modder
Сообщения: 289
Зарегистрирован: 14 июл 2005 15:15
Вернуться к началу

Сообщение Sblek » 04 окт 2007 15:13

А если все же потяря 100 оборотов критична - имеет смысл взять более производительный вентилятор.

а особые "эстэты" могут взять low-drop стабилизаторы :D
Для того чтоб получить нужный ответ , надо задать правильный вопрос....
Sblek offline
God
Сообщения: 1881
Зарегистрирован: 27 дек 2004 04:22
Откуда: Одесса - Мама
Вернуться к началу

Сообщение GiperV2 » 06 окт 2007 00:21

После нескольких эксперементов с программой полчилось раскрутить вентиль на полную, но тогда доступен только один канал регулирования :frown: как только начинаю добавлять доп каналы максимальный ток падает
Изображение
Изображение
Изображение
GiperV2 offline
Ultra Modder
Ultra Modder
Аватара пользователя
Сообщения: 444
Зарегистрирован: 03 июн 2007 00:15
Откуда: Волгоград
  • ICQ
Вернуться к началу

Сообщение ATLab » 06 окт 2007 03:27

[quote="GiperV2"]После нескольких эксперементов с программой полчилось раскрутить вентиль на полную, но тогда доступен только один канал регулирования :frown: как только начинаю добавлять доп каналы максимальный ток падает

Гадание на кофейной гуще... Ты бы хоть указал какой микроконтроллер используешь.
Похоже проблема в том, что ты пытаешься сделать программный ШИМ, а надо делать аппаратный, т.е. брать контроллер с требуемым количеством аппаратных ШИМ каналов. Тогда все программирование сведется к загрузке требуемого числа в регистр, управляющий ШИМ. В этом смысле самым выгодным по цене/кол-ву ШИМ, imho, является ATMega48(88), которую я и использовал ы последней статье.
Нет, можно, конечно, попробовать и программно извратиться - я так сделал в предыдущей схеме на PIC16F628 - но там пришлось уменьшить разрядность ШИМ, чтобы получить его в ультразвуковой области. В результате осталось 32 ступеньки регулировки. В пригципе, если не ставить целью точно регулировать обороты вентилятора, этого достаточно.
ATLab offline
Ultra Modder
Ultra Modder
Сообщения: 289
Зарегистрирован: 14 июл 2005 15:15
Вернуться к началу

Сообщение GiperV2 » 07 окт 2007 00:37

Я экспереметирую фсё с тем же 630-тым у которого конечно таких прибамбасов нету redface
А вообще поставил перед собой цель сделать из того что есть :shy:
Ступеней регулировки в моём случае может быть больше 50 но мне и 10 вполне хватит :wink:
Изображение
Изображение
Изображение
GiperV2 offline
Ultra Modder
Ultra Modder
Аватара пользователя
Сообщения: 444
Зарегистрирован: 03 июн 2007 00:15
Откуда: Волгоград
  • ICQ
Вернуться к началу

Сообщение ATLab » 07 окт 2007 05:45

GiperV2 писал(а):Я экспереметирую фсё с тем же 630-тым у которого конечно таких прибамбасов нету redface
А вообще поставил перед собой цель сделать из того что есть :shy:
Ступеней регулировки в моём случае может быть больше 50 но мне и 10 вполне хватит :wink:

Тогда сделай так, как я делал на 628. Быстрей я ничего не смог придумать.
Смысл алгоритма формирования ШИМ такой:
1. выделяется последовательная область памяти с количеством ячеек = количеству дискретов регулирования ШИМ. В моем случае это была область в 32 байта.
2. Каждый бит этих ячеек - это отображение ШИМ сигнала (развертка во времени)
Заполняем ячейки последовательностями 0 и 1 в соответствии с установками.
3. Цикл форимрования ШИМ сигнала далее сводится к последовательному чтению ячеек RAM и выводу их содержимого в порт (скаже PortC для 630).

Таким образом можно получить 8 каналов ШИМ.

Здесь удобно использовать косвенную адресацию.

Например:
PIC16F630, возьмем 16 ячеек, вывод через PortC.
Код: Выделить всё
1111111100000000 -> RC0 - скважность 2
1111000000000000 -> RC1 - скважность 4
1100000000000000 -> RC2 - скважность 8
1111111111110000 -> RC3 - скважность 1,33
1111111111111111 -> RC4 - скважность 1
0000000000000000 -> RC5
0000000000000000
0000000000000000
^              ^
|              +- ячейка RAM по адр. 2Fh
|
|
+---------------- ячейка RAM по адр. 20h


Тогда последовательность команд
Код: Выделить всё
;-------------- PortC сконфигурировать на вывод!!!!!!!!
InFirst:
   movlw   0x1F          ; (первый адрес - 1) по которому расположены
                         ; константы длительности импульсов
   movwf   FSR           ; обратимся к нему косвенно
   movlw   16
   movwf   StepCntr      ; StepCntr - счетчик выполненных шагов,
                         ; здесь  в ШИМ последовательности 16 шагов
OnePWMStep:
   incf    FSR,F         ; переходим к очередному адресу RAM
   movf    INDF,W        ; Читаем содержимое RAM
   movwf   PORTС         ; выводим его в порт
   decfsz  StepCntr,F    ; уменьшаем счетчик шагов, которые нужно выполнить
   goto    OnePWMStep    ; если выполнены еще не все шаги, то выполняем очередной цикл
   clrwdt                ; можно убрать, если WDT выключен
   goto    InFirst       ;

должна дать требуемый результат - на выходах PortC будет ШИМ сигнал. Частота его будет зависеть от
частоты кварца, и он будет не совсем периодичный из-за перезагрузки указателя и счетчика. Но для наших целей вполне подойдет.
ATLab offline
Ultra Modder
Ultra Modder
Сообщения: 289
Зарегистрирован: 14 июл 2005 15:15
Вернуться к началу

Сообщение GiperV2 » 08 окт 2007 22:48

Смылс алгоритма понял :wink: надо обдумать :doc:
Изображение
Изображение
Изображение
GiperV2 offline
Ultra Modder
Ultra Modder
Аватара пользователя
Сообщения: 444
Зарегистрирован: 03 июн 2007 00:15
Откуда: Волгоград
  • ICQ
Вернуться к началу

Сообщение GiperV2 » 10 окт 2007 00:53

Я переработал идею :D Смысл заключается в изменении состояния портов через 1 милисекунду :doc: каналов управления 3 ступенек 10 (как и хотел ::-D: ) управление с трёх кнопок :super:
Вот код если интересно :shy:
cnt1 var byte
cnt2 var byte
cnt3 var byte
x var byte
z var byte
b var byte
on interrupt goto buttons

init:

INTCON = %10010000
OPTION_reg = %01000111
TRISC = 0
TRISA = %111111
b = 1

main:

for x = 1 to 10
portC = %000111
if cnt1 < x then
portC.0 = 0
endif
if cnt2 < x then
portC.1 = 0
endif
if cnt3 < x then
portC.2 = 0
endif
pauseus 998
next x

goto main

end

buttons:

if portA.0 = 0 and b < 10 then
b = b + 1
if z = 1 then
cnt1 = b
endif
if z = 2 then
cnt2 = b
endif
if z = 3 then
cnt3 = b
endif
endif

if portA.1 = 0 and b > 1 then
b = b - 1
if z = 1 then
cnt1 = b
endif
if z = 2 then
cnt2 = b
endif
if z = 3 then
cnt3 = b
endif
endif

if portA.0 = 0 and portA.1 = 0 then
z = z + 1
if z > 3 then
z = 1
endif
endif

INTCON.1 = 0
resume

нужно ещё сохранение управляющих величин замутить, а так вобщем конечный вариант :D
GiperV2 offline
Ultra Modder
Ultra Modder
Аватара пользователя
Сообщения: 444
Зарегистрирован: 03 июн 2007 00:15
Откуда: Волгоград
  • ICQ
Вернуться к началу

Сообщение GiperV2 » 10 окт 2007 00:59

ATLab, вот ещё хотел спросить, каковы твои творческие планы (я про новые статьи и сайт вообще :wink: ) на ближайшее время :D
Изображение
Изображение
Изображение
GiperV2 offline
Ultra Modder
Ultra Modder
Аватара пользователя
Сообщения: 444
Зарегистрирован: 03 июн 2007 00:15
Откуда: Волгоград
  • ICQ
Вернуться к началу

Сообщение ATLab » 10 окт 2007 08:07

GiperV2 писал(а):Я переработал идею :D Смысл заключается в изменении состояния портов через 1 милисекунду :doc: каналов управления 3 ступенек 10 (как и хотел ::-D: ) управление с трёх кнопок :super:
...
нужно ещё сохранение управляющих величин замутить, а так вобщем конечный вариант :D

В код вникать не стал, но ведь очевидно, что если менять состояние вортов через 1 милисекунду, то при 10 ступеньках частота ШИМ сигнала будет 1/(10*0,001)=100 Гц.
Такую частоту
1. хорошо слышно
2. фильтровать сложнее - конденсаторы нужны большой емкости.

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

ATLab, вот ещё хотел спросить, каковы твои творческие планы (я про новые статьи и сайт вообще) на ближайшее время

А никаких планов нет. Кураж, как говорится, пропал.
Так что новых статей в ближайшее время не предвижу.

P.S. удивительное дело - статей новых нет, а обращений к страницам в среднем в месяц набирается около 3000. Я вообще-то собирался страничку прикрыть, но пока есть обращения - не буду.
ATLab offline
Ultra Modder
Ultra Modder
Сообщения: 289
Зарегистрирован: 14 июл 2005 15:15
Вернуться к началу

Сообщение GiperV2 » 11 окт 2007 00:25

Ну я бы не сказал что там 100Гц потому как импульсов как таковых нет, например на третьей ступеньке регулирования состояние порта изменится только после 3 мс, то есть в течении 3 мс состояние абсолютно постоянно :doc:
А вообще я эту программу на практике не проверял :shy: если транзисторы сработают нормально тогда можно будет понизить значение задержек :wink:
Изображение
Изображение
Изображение
GiperV2 offline
Ultra Modder
Ultra Modder
Аватара пользователя
Сообщения: 444
Зарегистрирован: 03 июн 2007 00:15
Откуда: Волгоград
  • ICQ
Вернуться к началу

Сообщение ATLab » 11 окт 2007 03:57

GiperV2 писал(а):Ну я бы не сказал что там 100Гц потому как импульсов как таковых нет, например на третьей ступеньке регулирования состояние порта изменится только после 3 мс, то есть в течении 3 мс состояние абсолютно постоянно :doc:
А вообще я эту программу на практике не проверял :shy: если транзисторы сработают нормально тогда можно будет понизить значение задержек :wink:

А подумать?
Берем твой случай: 10 дискретов ширины импульса, изменение состояния выходов (если нужно) происходит через 1 мс (ты сам написал!).
Отсюда следует, период сигнала составляет 10 мс (твои 10 дискретов), а длительность импульса может быть 0,1,2...10 мс.
0 мс - выключено
10 мс - всегда включено.

Прикинем, какой шаг (вместо 1 мс) нужно взять, чтобы уйти в ультразвук.
Грубо говоря, ультразвук - это частоты выше 20000 Гц.
Таким образом, период сигнала составит 50 мкс. Для твоего случая с 10 дискретами ширины импульса, время одного дискрета составит 50/10=5 мкс.
Тут, если взять кварц 16-20 Мгц, вписываемся в минимальную задержку, которую позволяет задать PAUSEUS.
Однако проблема в другом: - гораздо дольше выполняется код, который проверяет, не пора ли изменить состояние порта. Да еще этот код выполняется ПОСЛЕДОВАТЕЛЬНО несколько (по числу каналов) раз. Поэтому PAUSEUS можно сразу выкинуть, он лишний.
По тексту Basic-а сложно сказать, в какое количество машинных команд (или ассемблера) он развернет код. Но можно прикинуть какое количество ASM команд допустимо.

На 20 МГц одна команда может выполниться за 0,2 мкс (без ветвлений и переходов). Значит предельное количество ASM команд может быть
5мкс/0,2мкс=25
и это еще нужно поделить на 3 (количество каналов).
Отсюда длина кода на 1 канал - не более 8 команд.
Попробуй, может у тебя выйдет.

P.S. Я тоже начинал с такого (как ты хочешь) способа формирования ШИМ. А когда вентиляторы запищали - проверил свои прикидки. Оказалось, ошибся всего то раз в 100. С кем не бывает :)
Тогда я и придумал, описанный способ - через вывод образа сигнала из памяти.
И он - программно - самый быстрый.
ATLab offline
Ultra Modder
Ultra Modder
Сообщения: 289
Зарегистрирован: 14 июл 2005 15:15
Вернуться к началу

Сообщение ATLab » 10 дек 2007 05:11

Сегодня отмечаю вторую годовщину проекта!

Всем спасибо за внимание - до сих пор обращение к страницам держится на уровне порядка 3000 в месяц!

Успехов!
ATLab offline
Ultra Modder
Ultra Modder
Сообщения: 289
Зарегистрирован: 14 июл 2005 15:15
Вернуться к началу

Сообщение Bear » 10 дек 2007 12:59

ATLab, А все-таки обновлять свой сайт таки и не планируешь. Или со временем напряг?
На вкус и цвет фломастеры разные
Bear offline
Ultra Modder
Ultra Modder
Сообщения: 492
Зарегистрирован: 16 фев 2006 05:03
Откуда: Кузбасс
Вернуться к началу

Сообщение ATLab » 11 дек 2007 15:42

Bear писал(а):ATLab, А все-таки обновлять свой сайт таки и не планируешь. Или со временем напряг?

Разместить материал не проблема, с интересными затеями напряженка.
А были бы задумки - время нашлось бы.

Если сильно хочется что-нибудь нового в моем исполнении, можно скачать и посмотреть файлы:

http://atlab.narod.ru/files/fountain/pics.zip - картинки
http://atlab.narod.ru/files/fountain/movies.zip - ролики
http://atlab.narod.ru/files/fountain/txt.zip - текст программы и краткое пояснение.

Это материалы к обсуждению сосздания "Фонтана времени" - любопытной забавы с флюоресцуирующей жидкостью. Обсуждение было на форуме:

http://pro-radio.ru/controllers/4475/

ссылка на мои материалы на

http://pro-radio.ru/controllers/4475-8/

По картинкам видно, что я для эксперимента использовал свой стробоскоп, очень удачно он подошел.
Кстати, использованный принцип почти полностью повторяет работу стробоскопа для вентилятора. Если в приводимую программу (исходник на Basic)добавить измерение скорости вращения, можно получить стробоскоп для вентилятора. Может это кому-то облегчит начальные шаги...

Это не моддинг конечно, но было любопытно, и я на скорую руку попробовал.
Чего и вам желаю.
Статью про этот свой эксперимент писать не буду, конечно.

Успехов!
ATLab offline
Ultra Modder
Ultra Modder
Сообщения: 289
Зарегистрирован: 14 июл 2005 15:15
Вернуться к началу

Пред.След.
Ответить
Сообщений: 280 • Страница 15 из 19 • 1 ... 12, 13, 14, 15, 16, 17, 18, 19
Вернуться в Моддинг и электроника

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

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

  • Сообщения без ответов
  • Активные темы

Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB
Time : 0.142s | 10 Queries | GZIP : Off
  • Наша команда
  • Удалить cookies конференции
  • Часовой пояс: UTC + 3 часа
  • Изучение языков онлайн