Радиоуправляемые модели в Перми

Версия сайта для мобильных телефонов
Новости:
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.

Автор Тема: Тех задание - RC таймер для Sony NEX  (Прочитано 11404 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Stannoid

  • Модераторы
  • *****
  • Сообщений: 1235
  • Популярность:
  • 29
Re: Тех задание - RC таймер для Sony NEX
« Ответ #60 : 09 Июня 2015, 12:20:53 »
Всё проверил какой цвет как получить ответ был на поверхности RGB рот грюн блю. берём R1 третий  пин G1 четвёртый R2 пятый G2 шестой B1 B2 седьмой. вот и получаем левое крыло красный, правое зелёный , посадочные белый. плюс разные моргания-мерцания. режимы: крылья корят, крылья мигают секунда-секунда, белый горит, белый проблесковый маяк. думаю хватит.
Стас ну что скажешь?


Мне надо иметь в наличие два маленьких RGB светодиода, я их подцеплю через ограничивающие резисторы к портам контроллера. Буду таким образом тестить программу на железе. Хоть и будут они гореть еле еле, но для теста достаточно, потом ты будешь свои ленты включать через усиливающие ключи, как делает Алекс.
   Пиши тех задание полного алгоритма работы с временными диаграммами, текстом. Ноги и названия портов в тексте можно заменить просто ВХОД 1  выхода ВЫХОД 1 , ВЫХОД 2 и тд. Я потом заменю ВХОД на номер ноги название порта в контроллере. На светодиодах я так понял четыре контакта. Первая лента это : земля R1 G1 B1.  Вторая лента это : земля R2 G2 B2.

Вот пример как я выкладывал вверху
 
Цитировать (выделенное)
;* Опрашиваем ногу 3 (GP4) микросхемы, вход приемника или сервотестера (управление) .
;* Если импульсы приемника шире 1,5 мс, то начинаем моргать светодиодами поочередно согласно диаграмме
;* 20 мс импульс 20 мс пауза- всего 10 импульсов. по первому каналу GP1 нога 6 (микросхемы)
;* 20 мс импульс 20 мс пауза- всего 10 импульсов. по второму каналу GP2 нога 5 (микросхемы)
;* пауза в 500 мс и опять повтор

То есть техзадание должно выглядеть примерно так :

Опрашиваем ВХОД1 микросхемы, вход приемника или сервотестера (управление).
Если импульсов нет, погасить все светодиоды и ожидать прихода импульсов приемника.
Если ширина импульса приемника в пределах  1-1.2 мс моргание светодиодами не производить (погасить все светодиоды).
Если ширина импульса приемника в пределах  1,25-1,3 мс включается 1 режим моргания.
Если ширина импульса приемника в пределах  1,35-1,4 мс включается 2 режим моргания.
Если ширина импульса приемника в пределах  1,45-1,5 мс включается 3 режим моргания.
Если ширина импульса приемника в пределах  1,55-1,6 мс включается 4 режим моргания.
Если ширина импульса приемника в пределах  1,65-1,7 мс включается 5 режим моргания.

Описание режимов моргания светодиодов  :

1.   Подать постоянно на ВЫХОД1 (R1) ВЫХОД2 (G1) ВЫХОД3 (B1)  Вернутся в начало цикла.
2.  Подать постоянно то то то .... Вернутся в начало цикла.
3.  Подать те то пауза такая ( в миллисекундах)  , подать тото пауза такая.  Вернутся в начало цикла.
4.  ............................
5.  .............................

Оффлайн master.x

  • Ветеран
  • *****
  • Сообщений: 1573
  • Популярность:
  • 17
  • Я люблю rc.perm.ru
Re: Тех задание - RC таймер для Sony NEX
« Ответ #61 : 10 Июня 2015, 17:53:25 »
Мне надо иметь в наличие два маленьких RGB светодиода, я их подцеплю через ограничивающие резисторы к портам контроллера. Буду таким образом тестить программу на железе. Хоть и будут они гореть еле еле, но для теста достаточно, потом ты будешь свои ленты включать через усиливающие ключи, как делает Алекс.
Кусочки ленты как нибудь закину тебе. далее надо с усиливающими ключами обмозговать, как ни как пять выходов. сборка дарлингтона подойдёт? у меня есть ULN2003ADR потребление ленты 7.2Вт/м , 0,6А/м. далее
      R1   Выход 4   4
      G1   Выход 5   5
      B1   Выход 6   6
      R2   Выход 7   7
      G2   Выход 8   8
      B2   Выход 6   6
            
Ширина импульса      описание режима   действие   выход
1.0-1.1   режим 0    погасить все светодиоды   Всё выключено   
            
1.15-1.25   режим 1   левое правое горит   Подать  постоянно   4
            8
1.3-1.4   режим 2   белый посадочный огонь   Подать постоянно    4
            5
            6
            7
            8
1.45-1.55   режим 3   белый мерцает левым правым крылом   подать импульс 20мс, пауза 20мс, 10раз   4
            5
            6
         подать импульс 20мс, пауза 20мс, 10раз   6
            7
            8
         паузы нет в начало цикла   
1.6-1.7   режим 4   моргаем левым правым   подать импульс 1с, пауза 1с , в начало цикла   4
            8
таблица сместилась. я на фтп выложу оригинал ексель тебе проще редактировать будет.
Добавлено 10 Июня 2015, 17:57:42
В корне ФТП         режим работы моргалки RGB.xls

Оффлайн Stannoid

  • Модераторы
  • *****
  • Сообщений: 1235
  • Популярность:
  • 29
Re: Тех задание - RC таймер для Sony NEX
« Ответ #62 : 03 Июля 2015, 15:34:21 »
Кусочки ленты как нибудь закину тебе.

Закидывай, тогда займусь.
Добавлено 03 Июля 2015, 15:37:56
далее надо с усиливающими ключами обмозговать, как ни как пять выходов. сборка дарлингтона подойдёт?

Подойдет любой фет, лишь бы по току подошел, и напряжению.


Я использовал такой IRF540N. Главное чтобы корпус был ТО220, и паять удобно и на радиатор крепить. Кстати по поводу использования фетов.  .


http://www.irf.com/product-info/datasheets/data/irf540n.pdf

Купил тоже в перми. http://www.radiodetali.perm.ru/subcatalog/det129.asp?id=64575&gr=61&kId=129&doc=&Name2=IRF540N&Name1=%D2%F0%E0%ED%E7%E8%F1%F2%EE%F0%20IRF540N

Сча пока в наличие нет, но наверное есть подобные, стоит то 60 руб, и до 30 ампер держит с 100 вольтами.

Оффлайн master.x

  • Ветеран
  • *****
  • Сообщений: 1573
  • Популярность:
  • 17
  • Я люблю rc.perm.ru
Re: Тех задание - RC таймер для Sony NEX
« Ответ #63 : 05 Июля 2015, 21:25:41 »
Подойдет любой фет, лишь бы по току подошел, и напряжению.
я запасся IRF3205 http://pdf1.alldatasheet.com/datasheet-pdf/view/68131/IRF/IRF3205.html
параметры очень хорошие, ну насколько я разбираюсь. про сборку дарлингтона при встрече расскажешь может я чего то не понимаю.
Постараюсь на неделе в город вырваться, завезу ленту.

Оффлайн Stannoid

  • Модераторы
  • *****
  • Сообщений: 1235
  • Популярность:
  • 29
Re: Тех задание - RC таймер для Sony NEX
« Ответ #64 : 10 Июля 2015, 13:32:51 »
я запасся IRF3205

Этот фет на меньшее напряжение чем мой предложенный, но на больший ток. Ну у моего омическое сопротивление в закрытом состоянии больше. Ток почти со стократным запасом для наших задач  ;D Напряжение с трехкратным запасом.

 
про сборку дарлингтона при встрече расскажешь

Не понял, ты это про какой такой дарлингтон пишешь ?

Оффлайн master.x

  • Ветеран
  • *****
  • Сообщений: 1573
  • Популярность:
  • 17
  • Я люблю rc.perm.ru
Re: Тех задание - RC таймер для Sony NEX
« Ответ #65 : 10 Июля 2015, 17:45:22 »
Не понял, ты это про какой такой дарлингтон пишешь ?
Про ULN2003ADR , но явно не подойдёт. Да?
Добавлено [time]10 Июля 2015, 18:48:28[/time]
Этот фет на меньшее напряжение чем мой предложенный, но на больший ток. Ну у моего омическое сопротивление в закрытом состоянии больше. Ток почти со стократным запасом для наших задач   Напряжение с трехкратным запасом.
Это единственные параметры которые я понимаю, а вот скажи искать мне IRF540 или IRF3205 сгодятся?
Добавлено 10 Июля 2015, 18:12:43
Про ULN2003ADR , но явно не подойдёт. Да?
А почему бы нет?! http://www.getchip.net/wp-content/uploads/ULN2003.pdf
Так же оказывается есть и такие вещи http://pdf1.alldatasheet.com/datasheet-pdf/view/392394/IRF/IRF7105.html
надо порыться.

Оффлайн Stannoid

  • Модераторы
  • *****
  • Сообщений: 1235
  • Популярность:
  • 29
Re: Тех задание - RC таймер для Sony NEX
« Ответ #66 : 24 Июля 2015, 21:28:29 »
а вот скажи искать мне IRF540 или IRF3205 сгодятся?

Сгодятся и те и те, я ж написал запас по току и напряжению многократный и там и там. .IRF540 чуть чуть лучше.


Про ULN2003ADR , но явно не подойдёт. Да?

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


Так же оказывается есть и такие вещи http://pdf1.alldatasheet.com/datasheet-pdf/view/392394/IRF/IRF7105.html
надо порыться.

Тут ток 2,5 ампера у одного канала и 3,5 у второго, еще и ключи один н второй р типа, подключать по разному придется, нах разные ключи тебе. Ищи с запасом на полевиках одного типа ключи н или р типа (просто разное подключение ключей к нагрузке), чтобы ампер 10 минимум коммутировало.  IRF540 или подобные идеальный вариант, дешего, не будет греться , крупный корпус, удобно паяться. Сгорят быстрее подводящие провода чем этот ключ  ;D

Оффлайн master.x

  • Ветеран
  • *****
  • Сообщений: 1573
  • Популярность:
  • 17
  • Я люблю rc.perm.ru
Re: Тех задание - RC таймер для Sony NEX
« Ответ #67 : 25 Июля 2015, 16:07:20 »
Смотря для каких задач. Для твоих явно не подойдет, максимально пол ампера комутационный ток, и там не ключи, а транзисторы. Транзисторы имеют высокое сопротивление открытия, а значит будет на них падение напряжения, следовательно нагрев и потери, а в этой микросхеме несколько каналов поэтому и ток малый коммутирует она.   
0.5 ампера на каждый канал, итого можно паралелить. одного не понимаю насколко важно падение напряжения, может оно не значительно? Вообще я за резмеры болею а так конечно же ставим ключи. В вторник наверно буду в Перми привезу ленту.

Оффлайн Stannoid

  • Модераторы
  • *****
  • Сообщений: 1235
  • Популярность:
  • 29
Re: Тех задание - RC таймер для Sony NEX
« Ответ #68 : 16 Сентября 2015, 11:23:31 »
Ну что , Рустам, твой заказ готов. Феты подбирай сам подходящие, нюансы по телефону я тебе рассказал, но если что пиши звони.  Если кому интересно подобный проблесковый огонь, приходим ко мне с пустым контроллером PIC12F629 или  PIC12F675, выпиваем пива с программистом за ваш счет, и получаем прошитый контроллер. Или могу исходник выложить и хекс файл - тогда шейте сами.



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

Оффлайн Ilya

  • Модераторы
  • *****
  • Сообщений: 3292
  • Популярность:
  • 121
  • Полеты для съемки или съемка для полетов?
Re: Тех задание - RC таймер для Sony NEX
« Ответ #69 : 16 Сентября 2015, 14:30:02 »


Срочно публикую в видеожурнале НИИ!

Оффлайн master.x

  • Ветеран
  • *****
  • Сообщений: 1573
  • Популярность:
  • 17
  • Я люблю rc.perm.ru
Re: Тех задание - RC таймер для Sony NEX
« Ответ #70 : 16 Сентября 2015, 16:57:43 »
Ну что , Рустам, твой заказ готов.
Здорово. Закинь исходник почитать ftp://legioner:83X602GK@77.236.73.165  фтп такой же как у Артура, у тебя вроде проблемы со связью были может ИП в бан упал.

Оффлайн Stannoid

  • Модераторы
  • *****
  • Сообщений: 1235
  • Популярность:
  • 29
Re: Тех задание - RC таймер для Sony NEX
« Ответ #71 : 16 Сентября 2015, 17:28:28 »
Закинь исходник почитать

Дак тут читай, схема подключения в виде текста в начале. После точки с запятой все комментарии.

Цитировать (выделенное)
;* Авто RC включатель проблекового огня версия 2 (две RGB полоски со светодиодами на левое и правое крыло)
;*****************************************************************************************
;*  Gorbunov Technology Incorporated
;*  15 сентября 2015 года
;* Опрашиваем ногу 4 (GP3) микросхемы, вход приемника или сервотестера (управление) .
;* Пять режимов работы моргания светодиодов в зависимости от задания сервотестера.
;* Распиновка подключения цветовой ленты к ногам контроллера :
;* R1  нога 2
;* G1  нога 3
;* B1 и B2 нога 5
;* R2  нога 7
;* G2  нога 6
;*
;* Работа с 8 ножной микросхемой PIC 12F675/12F629   1 нога питание 3-8 вольт, 8 нога - земля GND.
;* Между землей и питанием микросхемы необходимо поставить два конденсатора 0,1 мкф и 100-500 мкф.
;* Внутренний RC генератор с частотой 4 мгц , внутресхемный сброс
;************************************************************* 
  LIST P=12F629, R=DEC      
  errorlevel 0,-305
  errorlevel 0,-202
  errorlevel 0,-203

  INCLUDE "p12F675.inc"

;  ПЕРЕМЕННЫЕ
 CBLOCK 0x020
_w,_status,fconter,pausen
Count                     
                          ;
 ENDC                     ;
                        ; fconter - переменная для организации задержек
                          ; pausen - длинна паузы между проблеском
                          ; Остальные переменные для временного хранения
                          ;
                       ;

  __config H'31C4' ; КОНФИГУРАЦИЯ без СР (без бита защиты прошивки в контроллере)
;  __config H'3145' ; КОНФИГУРАЦИЯ с СР         

  org    0
   goto   main


  org  4   ; Обработчик прерывания (в этой программе не используется)
Int
  movwf    _w         ;  Save Context Registers
  movf    STATUS, w
  movwf    _status
 
 ; bcf    GPIO,5           ; ЭТО НУЖНО для ЭТОГО ТУПОГО контроллера (инициализация защелок)
  bcf    INTCON,2          ;  сбросить флаг прерывания от TMR0
  movf    _status, w        ;  Restore the Context Registers
  movwf    STATUS
  swapf    _w
  swapf    _w, w
  retfie    ; ВОЗВРАТ из прерывания


main                       ;  КОНФИГУРАЦИЯ микроконтроллера

 ;CLRWDT ; Сброс сторожевого таймера
 ;bsf    STATUS, RP0      ; банк1
 ;Call 3FFh                ; Калибровка внутреннего генератора
 ;movwf OSCCAL & 0x07F

 bcf    STATUS, RP0      ; БАНК 0

  clrf  T1CON  ; Выключить таймер TMR1 (второй 2-х разрядный таймер)
  clrf   GPIO  ; Инициализация защелок GPIO

  movlw    B'00000111'
  movwf CMCON ; Все каналы контроллера цифровые выходы ТТЛ

;  movlw  B'10100000'       ; включить прерывания от таймера TMR0    
;  movwf  INTCON
  clrf    INTCON          ; выключить все прерывания

 bsf    STATUS, RP0      ;  БАНК 1   

  clrf   VRCON & 0x07F ;  Выключение опорных напряжений компораторов

  movlw    B'00000000'      ;  Выключить аналогывые входы (характерно только для PIC12F675)
  movwf    ANSEL & 0x07F

  movlw    B'00000111'      ;  включить таймер с предделителем 1:256 для TMR0 (7 бит - подтягивающие резисторы отключены)
  movwf    OPTION_REG & 0x07F


                          ; (порты когда 0 выход) (порты когда 1 вход)
  movlw    B'00001000'      ;  GP0 выход  (нога 7 ) R2
  movwf  TRISIO  & 0x07F  ;  GP1 выход  (нога 6 ) G2
                      ;  GP2 выход  (нога 5 ) B1 и B2
                    ;  GP3 вход (нога 4 )  приемника или сервотестера (может работать только как вход.НЕ переконфигурируется, особенность тупого контроллера)
                    ;  GP4 выход  (нога 3 ) G1
                    ;  GP5 выход  (нога 2 ) R1

  movlw    B'00001000'      ;  выключение всех подтягивающих резисторов GP кроме GP3
  movwf  WPU  & 0x07F     ; 

  movlw    B'00000000'      ;  выключение прерываний от GP портов
  movwf  IOCB  & 0x07F    ;

 bcf    STATUS, RP0      ; БАНК 0


;*************  НАЧАЛО ОСНОВНОГО КОДА ******************

start


 ;  Clrf   GPIO  ; Обнулить все порты

  movlw   B'11111111' ;  ВСЕ порты =1 ПОГАСИТЬ светодиоды.
  movwf   GPIO


start1

 
  btfsc  GPIO,3  ; Ждем НУЛЯ, признак начала отсчета с приемника либо с сервотестера. ....
  goto   $-1


  btfss  GPIO,3  ; Ждем прихода импульса 1 с приемника либо с сервотестера. СТАРТ.
  goto   $-1

; цикл идущий 0-1,1 ms
  movlw   d'105' ;  Число повторений (1 это 11 МИКРОСЕКУНД 10 минус 6 степени) 0,011 мс
  movwf   fconter
start_d8
  nop 
  nop
  btfss  GPIO,3  ; Ждем прихода импульса 0 с приемника либо с сервотестера.
  goto   start   ; Если пришел, значит короткий импульс , то возвращаемся обратно ждать нового импульса. Погасить ВСЕ !!!
  nop
  decf   fconter,f 
  movlw  d'0'   
  subwf  fconter,w
  btfss  STATUS,Z
 goto   start_d8

; цикл идущий 1,15-1,25 ms
  movlw   d'14' ;  Число повторений (1 это 11 МИКРОСЕКУНД 10 минус 6 степени) 0,011 мс
  movwf   fconter
start_d9
  nop 
  nop
  btfss  GPIO,3  ; Ждем прихода импульса 0 с приемника либо с сервотестера.
  goto   Regim_1 ; Если пришел, значит РЕЖИМ 1 НАШЛИ !!!
  nop
  decf   fconter,f 
  movlw  d'0'   
  subwf  fconter,w
  btfss  STATUS,Z
 goto   start_d9


; цикл идущий 1,3-1,4 ms
  movlw   d'14' ;  Число повторений (1 это 11 МИКРОСЕКУНД 10 минус 6 степени) 0,011 мс
  movwf   fconter
start_d10
  nop 
  nop
  btfss  GPIO,3  ; Ждем прихода импульса 0 с приемника либо с сервотестера.
  goto   Regim_2 ; Если пришел, значит РЕЖИМ 2 НАШЛИ !!!
  nop
  decf   fconter,f 
  movlw  d'0'   
  subwf  fconter,w
  btfss  STATUS,Z
 goto   start_d10

; цикл идущий 1,45-1,55 ms
  movlw   d'14' ;  Число повторений (1 это 11 МИКРОСЕКУНД 10 минус 6 степени) 0,011 мс
  movwf   fconter
start_d11
  nop 
  nop
  btfss  GPIO,3  ; Ждем прихода импульса 0 с приемника либо с сервотестера.
  goto   Regim_3 ; Если пришел, значит РЕЖИМ 3 НАШЛИ !!!
  nop
  decf   fconter,f 
  movlw  d'0'   
  subwf  fconter,w
  btfss  STATUS,Z
 goto   start_d11

; цикл идущий 1,6-1,7 ms
  movlw   d'14' ;  Число повторений (1 это 11 МИКРОСЕКУНД 10 минус 6 степени) 0,011 мс
  movwf   fconter
start_d12
  nop 
  nop
  btfss  GPIO,3  ; Ждем прихода импульса 0 с приемника либо с сервотестера.
  goto   Regim_4 ; Если пришел, значит РЕЖИМ 4 НАШЛИ !!!
  nop
  decf   fconter,f 
  movlw  d'0'   
  subwf  fconter,w
  btfss  STATUS,Z
 goto   start_d12

; цикл идущий 1,75-1,9 ms
  movlw   d'14' ;  Число повторений (1 это 11 МИКРОСЕКУНД 10 минус 6 степени) 0,011 мс
  movwf   fconter
start_d13
  nop 
  nop
  btfss  GPIO,3  ; Ждем прихода импульса 0 с приемника либо с сервотестера.
  goto   Regim_5 ; Если пришел, значит РЕЖИМ 5 НАШЛИ !!!
  nop
  decf   fconter,f 
  movlw  d'0'   
  subwf  fconter,w
  btfss  STATUS,Z
 goto   start_d13



 goto start
;  +++++++++++++++++++ Конец проверки +++++++++++++++++++++++


;---------------------------------------------------------------------
Regim_1 ; ПЕРВЫЙ РЕЖИМ

 movlw   B'11011101' ;  ВСЕ порты ПОГАСИТЬ кроме 5 и 1
 movwf   GPIO

bcf   GPIO,5  ; ВКЛЮЧИТЬ постоянно R1
bcf   GPIO,1  ; ВКЛЮЧИТЬ постоянно G2
 goto start1


;---------------------------------------------------------------------
Regim_2 ; ВТОРОЙ РЕЖИМ  (белый полный свет) включить ВСЕ светодиоды
bcf   GPIO,0  ; ВКЛЮЧИТЬ постоянно R2
bcf   GPIO,1  ; ВКЛЮЧИТЬ постоянно G2
bcf   GPIO,2  ; ВКЛЮЧИТЬ постоянно B1 и B2
bcf   GPIO,4  ; ВКЛЮЧИТЬ постоянно G1
bcf   GPIO,5  ; ВКЛЮЧИТЬ постоянно R1
 goto start1


;-----------------------------------------------------------------------
Regim_3 ; ТРЕТИЙ РЕЖИМ (поморгать красным то левым то правым крылом)

  movlw   B'11111111' ;  ВСЕ порты =1 ПОГАСИТЬ светодиоды. Чтобы не попали включенные с прошлого режима
  movwf   GPIO

; Моргаем десять раз красным левым крылом
bcf   GPIO,5  ; Включить R1
 call delay20   ;  ЗАДЕРЖКА 20 ms
bsf   GPIO,5  ; Выключить R1
 call delay20   ;  ЗАДЕРЖКА 20 ms

bcf   GPIO,5  ; Включить R1
 call delay20   ;  ЗАДЕРЖКА 20 ms
bsf   GPIO,5  ; Выключить R1
 call delay20   ;  ЗАДЕРЖКА 20 ms

bcf   GPIO,5  ; Включить R1
 call delay20   ;  ЗАДЕРЖКА 20 ms
bsf   GPIO,5  ; Выключить R1
 call delay20   ;  ЗАДЕРЖКА 20 ms

bcf   GPIO,5  ; Включить R1
 call delay20   ;  ЗАДЕРЖКА 20 ms
bsf   GPIO,5  ; Выключить R1
 call delay20   ;  ЗАДЕРЖКА 20 ms

bcf   GPIO,5  ; Включить R1
 call delay20   ;  ЗАДЕРЖКА 20 ms
bsf   GPIO,5  ; Выключить R1
 call delay20   ;  ЗАДЕРЖКА 20 ms

bcf   GPIO,5  ; Включить R1
 call delay20   ;  ЗАДЕРЖКА 20 ms
bsf   GPIO,5  ; Выключить R1
 call delay20   ;  ЗАДЕРЖКА 20 ms

bcf   GPIO,5  ; Включить R1
 call delay20   ;  ЗАДЕРЖКА 20 ms
bsf   GPIO,5  ; Выключить R1
 call delay20   ;  ЗАДЕРЖКА 20 ms

bcf   GPIO,5  ; Включить R1
 call delay20   ;  ЗАДЕРЖКА 20 ms
bsf   GPIO,5  ; Выключить R1
 call delay20   ;  ЗАДЕРЖКА 20 ms

bcf   GPIO,5  ; Включить R1
 call delay20   ;  ЗАДЕРЖКА 20 ms
bsf   GPIO,5  ; Выключить R1
 call delay20   ;  ЗАДЕРЖКА 20 ms

bcf   GPIO,5  ; Включить R1
 call delay20   ;  ЗАДЕРЖКА 20 ms
bsf   GPIO,5  ; Выключить R1
 call delay20   ;  ЗАДЕРЖКА 20 ms


; Моргаем десять раз красным правым крылом
bcf   GPIO,0  ; Включить R2
 call delay20   ;  ЗАДЕРЖКА 20 ms
bsf   GPIO,0  ; Выключить R2
 call delay20   ;  ЗАДЕРЖКА 20 ms

bcf   GPIO,0  ; Включить R2
 call delay20   ;  ЗАДЕРЖКА 20 ms
bsf   GPIO,0  ; Выключить R2
 call delay20   ;  ЗАДЕРЖКА 20 ms

bcf   GPIO,0  ; Включить R2
 call delay20   ;  ЗАДЕРЖКА 20 ms
bsf   GPIO,0  ; Выключить R2
 call delay20   ;  ЗАДЕРЖКА 20 ms

bcf   GPIO,0  ; Включить R2
 call delay20   ;  ЗАДЕРЖКА 20 ms
bsf   GPIO,0  ; Выключить R2
 call delay20   ;  ЗАДЕРЖКА 20 ms

bcf   GPIO,0  ; Включить R2
 call delay20   ;  ЗАДЕРЖКА 20 ms
bsf   GPIO,0  ; Выключить R2
 call delay20   ;  ЗАДЕРЖКА 20 ms

bcf   GPIO,0  ; Включить R2
 call delay20   ;  ЗАДЕРЖКА 20 ms
bsf   GPIO,0  ; Выключить R2
 call delay20   ;  ЗАДЕРЖКА 20 ms

bcf   GPIO,0  ; Включить R2
 call delay20   ;  ЗАДЕРЖКА 20 ms
bsf   GPIO,0  ; Выключить R2
 call delay20   ;  ЗАДЕРЖКА 20 ms

bcf   GPIO,0  ; Включить R2
 call delay20   ;  ЗАДЕРЖКА 20 ms
bsf   GPIO,0  ; Выключить R2
 call delay20   ;  ЗАДЕРЖКА 20 ms

bcf   GPIO,0  ; Включить R2
 call delay20   ;  ЗАДЕРЖКА 20 ms
bsf   GPIO,0  ; Выключить R2
 call delay20   ;  ЗАДЕРЖКА 20 ms

bcf   GPIO,0  ; Включить R2
 call delay20   ;  ЗАДЕРЖКА 20 ms
bsf   GPIO,0  ; Выключить R2
 call delay20   ;  ЗАДЕРЖКА 20 ms

 goto start1


;---------------------------------------------------------------------
Regim_4 ; ЧЕТВЕРТЫЙ РЕЖИМ (медленной перемаргивание левым правым крылом красным и зеленым)

movlw   B'11111111' ;  ВСЕ порты =1 ПОГАСИТЬ светодиоды. Чтобы не попали включенные с прошлого режима
  movwf   GPIO

bcf   GPIO,5  ; ВКЛЮЧИТЬ постоянно R1
 call delay500   ; ЗАДЕРЖКА 500 мс (пол секунды)
 call delay500   ; ЗАДЕРЖКА 500 мс (пол секунды)
bsf   GPIO,5  ; ВЫКЛЮЧИТЬ постоянно R1

bcf   GPIO,1  ; ВКЛЮЧИТЬ постоянно G2
call delay500   ; ЗАДЕРЖКА 500 мс (пол секунды)
 call delay500   ; ЗАДЕРЖКА 500 мс (пол секунды)
bsf   GPIO,1  ; ВЫКЛЮЧИТЬ постоянно G2

 goto start1

;-------------------------------------------------------------------------
Regim_5 ; ПЯТЫЙ РЕЖИМ (режим Стаса - ЦВЕТОМУЗЫКА уга га танцуют ВСЕ )

movlw   B'11111111' ;  ВСЕ порты =1 ПОГАСИТЬ светодиоды. Чтобы не попали включенные с прошлого режима
 movwf   GPIO

bcf   GPIO,5  ; ВКЛЮЧИТЬ постоянно R1
 call delay500   ; ЗАДЕРЖКА 500 мс (пол секунды)
bsf   GPIO,5  ; ВЫКЛЮЧИТЬ постоянно R1

bcf   GPIO,1  ; ВКЛЮЧИТЬ постоянно G2
 call delay500   ; ЗАДЕРЖКА 500 мс (пол секунды)
bsf   GPIO,1  ; ВЫКЛЮЧИТЬ постоянно G2

bcf   GPIO,4  ; ВКЛЮЧИТЬ постоянно G1
 call delay500   ; ЗАДЕРЖКА 500 мс (пол секунды)
bsf   GPIO,4  ; ВЫКЛЮЧИТЬ постоянно G1

bcf   GPIO,0  ; ВКЛЮЧИТЬ постоянно R2
 call delay500   ; ЗАДЕРЖКА 500 мс (пол секунды)
bsf   GPIO,0  ; ВЫКЛЮЧИТЬ постоянно R2

 call delay500   ; ЗАДЕРЖКА 500 мс (пол секунды)

bcf   GPIO,2  ; ВКЛЮЧИТЬ постоянно B1
 call delay500   ; ЗАДЕРЖКА 500 мс (пол секунды)
 call delay500   ; ЗАДЕРЖКА 500 мс (пол секунды)
bsf   GPIO,2  ; ВЫКЛЮЧИТЬ постоянно B2
 call delay500   ; ЗАДЕРЖКА 500 мс (пол секунды)
 

bcf   GPIO,2  ; ВКЛЮЧИТЬ постоянно B1
 call delay500   ; ЗАДЕРЖКА 500 мс (пол секунды)
 call delay500   ; ЗАДЕРЖКА 500 мс (пол секунды)
bsf   GPIO,2  ; ВЫКЛЮЧИТЬ постоянно B2
 call delay500   ; ЗАДЕРЖКА 500 мс (пол секунды)
 

 goto start1

                          ;  GP0 выход  (нога 7 ) R2
                          ;  GP1 выход  (нога 6 ) G2
                      ;  GP2 выход  (нога 5 ) B1 и B2
                    ;  GP4 выход  (нога 3 ) G1
                    ;  GP5 выход  (нога 2 ) R1


delay500 ; ЗАДЕРЖКА 500 мс (пол секунды)
; Итак пауза 500 мс. при pausen=50 задержка 500 мс.
  movlw   d'50' ;  сколько раз повторять
  movwf   pausen
start_d1

 call delay10   ;  ЗАДЕРЖКА 10 ms

  decf   pausen,f 
  movlw  d'0'   
  subwf  pausen,w
  btfss  STATUS,Z
  goto   start_d1
   return


delay10  ;  ЗАДЕРЖКА 10 ms
 call delay2   ;  ЗАДЕРЖКА 2 ms
 call delay2   ;  ЗАДЕРЖКА 2 ms
 call delay2   ;  ЗАДЕРЖКА 2 ms
 call delay2   ;  ЗАДЕРЖКА 2 ms
 call delay2   ;  ЗАДЕРЖКА 2 ms
  return


delay20  ;  ЗАДЕРЖКА 20 ms
 call delay2   ;  ЗАДЕРЖКА 2 ms
 call delay2   ;  ЗАДЕРЖКА 2 ms
 call delay2   ;  ЗАДЕРЖКА 2 ms
 call delay2   ;  ЗАДЕРЖКА 2 ms
 call delay2   ;  ЗАДЕРЖКА 2 ms
 call delay2   ;  ЗАДЕРЖКА 2 ms
 call delay2   ;  ЗАДЕРЖКА 2 ms
 call delay2   ;  ЗАДЕРЖКА 2 ms
 call delay2   ;  ЗАДЕРЖКА 2 ms
 call delay2   ;  ЗАДЕРЖКА 2 ms
  return

 

delay1   ;  ЗАДЕРЖКА 1 ms
  movlw   d'90' ;  Число повторений (1 это 13 МИКРОСЕКУНД 10 минус 6 степени) 0,013 мс
  movwf   fconter
start_d2
  nop 
  nop
  nop
  nop
  nop
  decf   fconter,f 
  movlw  d'0'   
  subwf  fconter,w
  btfss  STATUS,Z
  goto   start_d2
 return



delay2   ;  ЗАДЕРЖКА 2 ms
  movlw   d'181' ;  Число повторений (1 это 13 МИКРОСЕКУНД 10 минус 6 степени) 0,013 мс
  movwf   fconter
start_d3
  nop 
  nop
  nop
  nop
  nop
  decf   fconter,f 
  movlw  d'0'   
  subwf  fconter,w
  btfss  STATUS,Z
  goto   start_d3
 return


  end




Оффлайн master.x

  • Ветеран
  • *****
  • Сообщений: 1573
  • Популярность:
  • 17
  • Я люблю rc.perm.ru
Re: Тех задание - RC таймер для Sony NEX
« Ответ #72 : 17 Сентября 2015, 16:07:14 »
Дак тут читай, схема подключения в виде текста в начале. После точки с запятой все комментарии.
Нашёл режим который надо будет корректировать, экпериментально или научно. 20мс мало для мерцания , глаз не видит 10-20Гц надо сделать. сколько это будет в милисекундах?
Добавлено 17 Сентября 2015, 16:12:38
третий режим сделаем 50мс вкл 50мс выкл. ну примерно.

Радиоуправляемые модели в Перми

Re: Тех задание - RC таймер для Sony NEX
« Ответ #72 : 17 Сентября 2015, 16:07:14 »

 

Яндекс.Метрика
© 2012 rc.perm.ru, все права защищены.