Найти - Пользователи
Полная версия: прошу пояснить по ШИМ ( из приемника)
Начало » Электроника основной форум » прошу пояснить по ШИМ ( из приемника)
1
pasha_zv
бодрего всем времени и здоровья деткам.
в тему моделизма въезжаем сейчас, и не спеша,
спасибо Руту, помогает хорошо и по делу.
НО - сейчас имеется вопрос, к людям, которые знают, как вести себя с любой стороны от паяльника…
на данный момент достаточно любопытный мне.

имеется приемник. (футаба, но то не важно) с него выходит типа-меандр с такими параметрами:
1мС импульс (3В) - 6мС пауза (0В), это при джойстике на нуле
2мС и 5мС пауза это при джйстике на максимум.
стандартная схема регулирования.

регули и сервы этот сигнал понимают и с ним работают. это факТ .

и вот хочется мне подключить какую-либо перделку на, скажем, 12-й канал приемника.

уже набросал прогу и схемку на ПИКе, которая этот сигнал жрет и выдает мне, примерно так:
импульс менее 1.2 мС - на одной ноге логическая единичка,
в районе 1.5 - на второй
более 1.7 - на третьей.
к ногам подключаются нужные перделки.

и тут мне говорят - регули и сервы на входе имеют RC цепочку, и твои импульсы им до задницы.
Т.Е. усредняя импульсы 1+6 получаем -> 0.94В
усредняя 2+5-> 1.44В.
и вся регулировка джойстиком пульта приводит к изменению напряжения на выходе приемника в этих пределах.
ставь тупой компаратор и работай просто с напряжением, получай выводы.
а еще лучше - поставь усилитель(преобразователь аналоговый, то не суть)
и на выходе получи плавное напряжение 0…5В и с ним работай.

поясните - как проще? и как правильней?

ну хоть вот пример -как на гексакоптере включать светодиодную подсветку, тумблером, с пульта.
готовые девайсы есть в продаже, и дешево, но уж - тут хочется разобраться.
modelist
на выходе приемника меняется скважность импульсов. из этого и исходи.
Vikto50
Можно поставить самую простую серву , патенциометр и регулировать яркость подсветки.Если со средней точкой тогда две цепи светодиодов разного цвета.
pasha_zv
вот соорудил. так сказать - конструкция выходного дня.
получает импульсный сигнал длительностью 1…2 мС
на выходе открывает три транзистора:
меньше 1.3мС
в районе 1.5мС
больше 1.7 мС.
как раз под три положения тумблера на пульте.

вот код
; by Pasha_zv
list p=12f629
include "p12f629.inc"
__config _MCLRE_OFF & _CP_OFF & _WDT_OFF & _FOSC_INTRCIO
;--------------------------------------------------------------------------------------------
; БЛОК ПЕРЕМЕННЫЕ
;--------------------------------------------------------------------------------------------


schetchik equ 0x20; память в этих пределах
sc1 equ 0x21;память цикла.

; порты
#define chanel1 GPIO,GP0; три выхода
#define chanel2 GPIO,GP1
#define chanel3 GPIO,GP2
#define in_chanel GPIO,GP3; вход импульсов

;--------------------------------------------------------------------------------------------
; НАСТРОЙКА МИКРОКОНТРОЛЛЕРА
;--------------------------------------------------------------------------------------------
org 0x00
goto Start
org 0x08
Start
CLRF STATUS
CLRF INTCON
clrf GPIO

bsf STATUS, RP0
CALL 0x3ff
MOVWF OSCCAL

MOVLW 0x80 ; подтягивающие сопроты выключить
movwf OPTION_REG

bcf STATUS,RP0
movlw 0x7
movwf CMCON ;отключить компаратор

bsf STATUS,RP0
movlw 8 ; ГП3 вход, остальные выходы.
movwf TRISIO
bcf STATUS,RP0


;--------------------------------------------------------------------------------------------
; ГЛАВНАЯ ПРОГРАММА
;--------------------------------------------------------------------------------------------

; ждем нуля на входе
pusk btfsc in_chanel
goto pusk

; ждем единичку на входе
pusk1 btfss in_chanel
goto pusk1

;подсчет длительности импульса
clrf schetchik
dlit btfss in_chanel ;если нолик - выйти из цикла.
goto dlit_off
call delay_100mkS
incfsz schetchik,f
goto dlit
dlit_off



do_3_ms movlw .22; счетчик длинее 2.2мС - все сбросить
subwf schetchik,w
btfss STATUS,C
goto do_1.7ms

bcf chanel1
bcf chanel2
bcf chanel2
goto pusk1

do_1.7ms movlw .17; счетчик длинее 1.7мС
subwf schetchik,w
btfss STATUS,C
goto do_1.2ms

bsf chanel1; включает первый канал
bcf chanel2
bcf chanel3
goto pusk1

do_1.2ms movlw .13; счетчик длинее 1.3мС
subwf schetchik,w
btfss STATUS,C
goto do_0.9ms

bcf chanel1
bsf chanel2; второй канал
bcf chanel3
goto pusk1

do_0.9ms movlw .9; счетчик длинее 0.9мС
subwf schetchik,w
btfss STATUS,C
goto do_0ms

bcf chanel1
bcf chanel2
bsf chanel3;третий канал
goto pusk1

do_0ms bcf chanel1; слишком короткий (помеха) выключим все от греха
bcf chanel2
bcf chanel3
goto pusk1

delay_100mkS
nop
nop
movlw .31
movwf sc1
del_1 decfsz sc1,f
goto del_1
return

END
photo

ЗЫ. будете шить камушек, не сотрите калибровочную константу,
она там в конце, по адресу 0x3ff.
я вот сейчас сижу, матюкаясь паяю девай для перекалибровки камушка
Vikto50
root
Паш я был не прав, шим все таки нужно парсить.
pasha_zv
ну вот парсинг и есть. могу еще ХЕКС туда-же докинуть.
ЗЫ. еще две ноги свободны, не придумаю - под что их пустить.

может сделать стробирование? чтобы модель не светила а мигала?
или ввести защиту, как на серве, типа конечной точки?

ЗЫ. опс - а тут не видать как файл пихать. на файлопомойку кидать не хочется,
народ насчет них часто плюется.
Vikto50
Сделайте плавный переход цвета он смотрится очень эффектно.
root
pasha_zv
ну вот парсинг и есть. могу еще ХЕКС туда-же докинуть.
ЗЫ. еще две ноги свободны, не придумаю - под что их пустить.

может сделать стробирование? чтобы модель не светила а мигала?
или ввести защиту, как на серве, типа конечной точки?

ЗЫ. опс - а тут не видать как файл пихать. на файлопомойку кидать не хочется,
народ насчет них часто плюется.
Есть тут все, выбрать файл, под редактором сообщением кнопка, все загружается в лучшем виде.
pasha_zv
т.е. - называем каналы RGB и щелкая тумблером гоняем цвета?
таки получится вклюлчить только один из них.

или имелось в виду чтото другое?
ЗЫ. по моему три канала занимать под светилки - это перебор.
pasha_zv

Файл: main.HEX 453 байт(а)


ну тогда вот хекс под тот код.
Vikto50
pasha_zv
т.е. - называем каналы RGB и щелкая тумблером гоняем цвета?
таки получится включить только один из них.

или имелось в виду что-то другое?
ЗЫ. по моему три канала занимать под светилки - это перебор.
Просто при переключении тумблера плавно гаснет один цвет и в то же время плавно зажигается другой.Получаются при смешивании разные оттенки.Используем всего два канала.
pasha_zv
Vikto50
ага. кажись уяснил. должно выглядеть примерно так:
имеем два трехпозиционных тумблера на пульте, назовем их А и В
позиции их - соответственно 1-2-3. тогда получаем такое:
А1-В1 - все выключено
А1-В2 - хз под что (хоть четвертую линейку включай или лазеры, нога лишняя есть)
А1-В3 - все цвета включены
А2-В1 - красный
А2-В2 - зеленый
А2-В3 - синий
А3-В1 - красный+зеленый
А3-В2 - зеленый+синий
А3-В3 - синий+красный
и плавный переход между цветами положим за пару секунд.
чтобы система с ума не сходила при переключениях
нужно сделать задержку реакции на полсекунды
(чтобы не дергалась при быстром переходе В1->В2->В3)

ЗЫ. дополнительные пожелания жду до конца недели.
Vikto50
У меня 12С508А .
pasha_zv
Vikto50
У меня 12С508А .
не покатит. надо хотя-бы три уровня стека, а там только два.
да и в “Кокетке” их в продаже нету
поэтому сделал на 12F675.

то не суть. наструячил програмку. на след. выходные прицеплю туда еще модуль
калибровки под аппу и можно пускать в серию.
(у футабы PPM 1.1-1.5-1.9 мС на тумблере, а вот на других еще не смотрел)


ЗЫ. интересно - почем их пихать можно будет?
себестоимость деталей выходит около 450.
RGB лента ясно дело в комплект не входит

кстати: на RGB ленте общим проводом идет плюс или минус?
Vikto50
Обычно минус
pasha_zv
неа. вот как раз - обычно плюс. что на хоббикинге -смотрел.
и в “кокетке” ,купил кусок.

ну и прекрасно. ставлю N-канальные полевики и радуюсь.
на неделе - на соседском самолетике проведу экскременты, каналов свободных у него есть.
Vikto50
Есть и с общим плюсом в магазине www.elektronika26.ru 229 р. за метр тел.89624494982
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB