Помогите с упралением сетодиодными лентами.
- >TEHb<
- Друг Кота
- Сообщения: 5723
- Зарегистрирован: Ср ноя 11, 2009 17:19:30
- Откуда: Воронеж
- Контактная информация:
Re: Помогите с упралением сетодиодными лентами.
Не, коммутировать 12в этим полевиком так просто не выйдет. Он n-канальный. Надо ленту одним концом повесить на +12в, а вторым на полевик. Выходит, что полевик стоит между лентой и землёй, тогда всё должно работать. Не забыть про резистор в затворе.
"Привет!" - соврал он.
Re: Помогите с упралением сетодиодными лентами.
Это уже хуже, желательно что бы - был общим, а коммутация происходила по +, вот про резистор, можно поподробнее? как его подбирать?
- >TEHb<
- Друг Кота
- Сообщения: 5723
- Зарегистрирован: Ср ноя 11, 2009 17:19:30
- Откуда: Воронеж
- Контактная информация:
Re: Помогите с упралением сетодиодными лентами.
Есть способ и плюсом рулить. Для этого проще взять P-канальный полевик, но тогда надо ещё один транзистор добавить, например банальный кт315, который будет рулить уже полевиком вроде irf9540.
"Привет!" - соврал он.
Re: Помогите с упралением сетодиодными лентами.
в общем попробовал по описанному выше алгаритму написать программку, светодиод повесил напрямую на вывод 5 порта Б, плавного лигания не получил
светодиод то очень бастро мигает, то просто светится... нашел полевик irf9z34n, и кт 315, хотел попробовать через транзисторы, но опять не получилось, полевик не открывается через 315... видимо что то не так сделал опять... Отосплюсь, буду пробовать дальше ( сутки не спавший, голова плохо соображает)...
Re: Помогите с упралением сетодиодными лентами.
Доброго времени суток,Коты! В общем, вчера всю ночь баловался с программкой и пиком, в итоге походу подпалил ПИК
А с собой на работу взял только 1 микруху.... Как можно проверить жив он или нет? суть в следующем, смоделировал в протеусе схему, подключил программку, погонял минут 10, все отлично, за исключением того, что светодиод не плавно мигает, а просто мигает.
Собрал схемку на макетке, прошил контроллер, включаю, светодиод мигает вообще не понять как и через секунд 15 срабатывает WDT, программа сбрасывается... Пересмотрел всю программку, погонял ее, все вроде отлично, косяков не нашел...
Так же смоделировал схемку с арабского сайта (ссылка на нее на 1-й странице в конце), в протеусе светодиоды просто мигают по одному из 4-х алгаритмов... На макетке вообще не понятно что, контроллер ни как не хочет работать...
Я его и стирал раз 5 перед тем как записать прошивку, бесполезно... Схема питается от кренки на 5В 1.5А, но при работе напряжение почему то просаживается до 3,5В, при этом ток (мерю мультиметром) не более 200 мА, короткого нет, перепроверил все раз по 10 уже... В итоге у меня 2 варианта, либо крен попалась не такая какая то, либо я как то умудрился запороть контроллер, либо одно из трех....
На всякий случай выкладываю архив, там и схемка в протеусе и прошивка (сильно не материтесь, я только учусь) на которой пробую....
Еще вопрос, может быть такое, что в протеусе сетодиод просто мигает а на деле будет плавное мигание?
Собрал схемку на макетке, прошил контроллер, включаю, светодиод мигает вообще не понять как и через секунд 15 срабатывает WDT, программа сбрасывается... Пересмотрел всю программку, погонял ее, все вроде отлично, косяков не нашел...
Так же смоделировал схемку с арабского сайта (ссылка на нее на 1-й странице в конце), в протеусе светодиоды просто мигают по одному из 4-х алгаритмов... На макетке вообще не понятно что, контроллер ни как не хочет работать...
Я его и стирал раз 5 перед тем как записать прошивку, бесполезно... Схема питается от кренки на 5В 1.5А, но при работе напряжение почему то просаживается до 3,5В, при этом ток (мерю мультиметром) не более 200 мА, короткого нет, перепроверил все раз по 10 уже... В итоге у меня 2 варианта, либо крен попалась не такая какая то, либо я как то умудрился запороть контроллер, либо одно из трех....
На всякий случай выкладываю архив, там и схемка в протеусе и прошивка (сильно не материтесь, я только учусь) на которой пробую....
Еще вопрос, может быть такое, что в протеусе сетодиод просто мигает а на деле будет плавное мигание?
- Engineer_Keen
- Друг Кота
- Сообщения: 3868
- Зарегистрирован: Пт янв 29, 2010 10:27:40
- Откуда: Москва
Re: Помогите с упралением сетодиодными лентами.
NikolayZ писал(а):Еще вопрос, может быть такое, что в протеусе сетодиод просто мигает а на деле будет плавное мигание?
Да, протеус не всегда корректно отображает яркость при ШИМ-управлении. Но в данном случае у вас плавного мигания нет, есть горение на 25% яркости (смотрите осциллографом), по крайней мере первые 10 секунд, дальше не проверял, медленно симулируется.
Неправильно собранная из неисправных деталей схема нуждается в отладке и сразу не работает... (С)
Re: Помогите с упралением сетодиодными лентами.
я проверял просто симуляцией, без осцилографа, но получил просто мигание... собрал в протеусе схему, подключил прошивку, потом нажал запуск симуляции-выполнить... и светодиод стразу замигал. сегодня еще раз попробую прошить пик, может заработает...
Re: Помогите с упралением сетодиодными лентами.
"...схема питается от кренки на 5В 1.5А, но при работе напряжение почему то просаживается до 3,5В, при этом ток (мерю мультиметром) не более 200 мА..."
А какой мощности блок питания? Если слабый то кренка ну никак не удержит 5в на выходе.
Обычно что бы кренка нормально работала на входе напряжение должно быть не менее 7,5в,
ну выходной ток блока питания хотя бы 500мА.
И про конденсаторы на входе и выходе кренки не забыть.
А какой мощности блок питания? Если слабый то кренка ну никак не удержит 5в на выходе.
Обычно что бы кренка нормально работала на входе напряжение должно быть не менее 7,5в,
ну выходной ток блока питания хотя бы 500мА.
И про конденсаторы на входе и выходе кренки не забыть.
- Engineer_Keen
- Друг Кота
- Сообщения: 3868
- Зарегистрирован: Пт янв 29, 2010 10:27:40
- Откуда: Москва
Re: Помогите с упралением сетодиодными лентами.
Да, еще у вас зачем-то ВСЕ резисторы по 300 ом. В случае светодиодов это нормально, но зачем подтяжку кнопок и ресета делать через такие маленькие сопротивления? Нажав обе кнопки вы в пустую тратите 33мА. Сделайте хоть килоом чтоли...
Неправильно собранная из неисправных деталей схема нуждается в отладке и сразу не работает... (С)
Re: Помогите с упралением сетодиодными лентами.
Резисторы забыл исправить, на макетке стоят 51 кОм,блок питания 10В 2,5А...
конденсаторы на кренке стоят, на входе 100 мкФ, на выходе 47мкФ.
Выяснил причину, точнее их было 2...
1-е- кренка попалась бракованная, запитал контроллер от USB и все заработало...
2-е, на программаторе сгорел один из транзисторов, в итоге он некорректно работал, и были глюки...
Устранил болячки, буду пробовать написанное
конденсаторы на кренке стоят, на входе 100 мкФ, на выходе 47мкФ.
Выяснил причину, точнее их было 2...
1-е- кренка попалась бракованная, запитал контроллер от USB и все заработало...
2-е, на программаторе сгорел один из транзисторов, в итоге он некорректно работал, и были глюки...
Устранил болячки, буду пробовать написанное
Re: Помогите с упралением сетодиодными лентами.
Доброго времени суток,Коты! Исправил недочеты (перепаял транзистор на программаторе, и запитал мк от другого источника) Все заработало
Светодиод плавно мигает
Теперь нужно заставить МК управлять транзистором и схема готова:)
Еще появился вопрос по программе, коты, подскажите пожалуйста, как сделать следующую вещь: есть подпрограмма которая зажигает светодиод на 5 пине портаБ на 25% мощности, 5рину присвоенно назвоние out6, как сделать что бы при нажатии кнопки в этой подпрограмме 5 пин менялся на 6 (out7)?
Еще появился вопрос по программе, коты, подскажите пожалуйста, как сделать следующую вещь: есть подпрограмма которая зажигает светодиод на 5 пине портаБ на 25% мощности, 5рину присвоенно назвоние out6, как сделать что бы при нажатии кнопки в этой подпрограмме 5 пин менялся на 6 (out7)?
Re: Помогите с упралением сетодиодными лентами.
Доброго времени суток, Коты! Это опять я.... В общем решил попробовать написать программу с нормальным шимом, для начала что бы светодиод просто плавно загорался, в итоге уже 3-ю ночь бюсь, а ничего не получается...
Вот сам текст программы, посмотрите пожалуйста, сильно все ужасно?
LIST P=16F84A
#include P16F84A.INC
__CONFIG 03FFDH ; code protect_off&Pover up taimer_off&WDTE_on&XT_on
;============
;RB0....RB7 -порты Б
out1 EQU H'0000'
out2 EQU H'0001'
out3 EQU H'0002'
out4 EQU H'0003'
out5 EQU H'0004'
out6 EQU H'0005'
out7 EQU H'0006'
out8 EQU H'0007'
Reg_1 EQU 0Ch
Reg_2 EQU 0Dh
Reg_3 EQU 0Eh
Time1 EQU 0Fh
Time2 EQU 10h
const EQU 11h
H1 EQU 12h
H2 EQU 14h
F EQU 1
C EQU H'0000' ;бит для флага C (C=1 если было переполнение,=0,заем)
Z EQU H'0002' ;бит для флага Z (результат выполнения команды 0-то Z=1)
org 0
;========
;===== подготовка =========
;========
bsf STATUS,5 ; переход в банк 1
movlw .255 ; записываем в аккумулятор W число 255 (11111111)
movwf TRISA ; копируем его в TRISA порты А работают на вход
clrf TRISB ; сбрасываем порт Б в 0 (работа порта Б на выход)
bcf STATUS,5 ; переход в банк 0
clrf PORTB ; очистка порта
goto start ;
;=======
start clrwdt
movlw .10 ; записываем число в H1
movwf H1 ;----------
;movlw .255 ; записываем число в счетчик H2 (возможно эта команда и не нужна)
;movwf H2 ;----------
metka bcf PORTB,out6 ; устанавливаем 0 на RB0
goto him ; переходим в ПП Him1
metka2 bsf PORTB,out6 ; устанавливаем RB0 в 1
goto on ; переходим на метку dva
;=========
him bcf STATUS, Z ; устанавливаем флаг Z в 0
incf H1, F ; увеличиваеи на 1 число записанное в H1, с сохранением результата там же
btfsc STATUS, Z ; проверяем флаг Z, было переполнение Н1
goto pause ; да, идем на паузу
movf H1, W ; записываем число из H1 в аккумулятор W
sublw .255 ; отнимаем от 255 числло записанное в W (255- (10+1))
movwf H2 ; записываем полученное число в H2
off clrwdt
decf H2, F ; уменьшаем на 1 значение в H2 (255 - 1)
movf H2, W ; копируем уменьшенное число в W
bcf STATUS, Z ; устанавливаем флаг Z в 0
xorwf H1, F ; сравниваем число записанное в H2 с числом H1 (пока H1 не будет равен H2,Zне поднимется)
btfss STATUS, Z ; проверяем флаг Z ( если после вычитания 1 из Him он стал = Х, Z поднимается в 1)
goto off ; переходим на метку off пока H2 не будет равен H1
goto metka2 ; возвращаемся в основную программу
on decfsz H1, F ; отнимаем от числа записанного в Him1 1
goto on ; пока оно не станет 0, отнимаем
goto metka ; возврашаемся.
;===========
;delay = 500'000 machine cycles
pause movlw .126
movwf Reg_1
movlw .137
movwf Reg_2
movlw .3
movwf Reg_3
wr decfsz Reg_1, F
goto wr
clrwdt
decfsz Reg_2, F
goto wr
decfsz Reg_3, F
goto wr
goto start
;==========
end
что то как то криво вставился текст...
Уже стал путаться в написанном, проверяю каждую команду, вроде все так...
Полагаю что сама программка не правильно составлена, искал примеры с открытым кодом на ассэме, но безрезультатно, подглядеть негде...
так же прикрепляю все файлы МПлаба...
Помогите советом
Вот сам текст программы, посмотрите пожалуйста, сильно все ужасно?
Спойлер
;========Шапка программы=======LIST P=16F84A
#include P16F84A.INC
__CONFIG 03FFDH ; code protect_off&Pover up taimer_off&WDTE_on&XT_on
;============
;RB0....RB7 -порты Б
out1 EQU H'0000'
out2 EQU H'0001'
out3 EQU H'0002'
out4 EQU H'0003'
out5 EQU H'0004'
out6 EQU H'0005'
out7 EQU H'0006'
out8 EQU H'0007'
Reg_1 EQU 0Ch
Reg_2 EQU 0Dh
Reg_3 EQU 0Eh
Time1 EQU 0Fh
Time2 EQU 10h
const EQU 11h
H1 EQU 12h
H2 EQU 14h
F EQU 1
C EQU H'0000' ;бит для флага C (C=1 если было переполнение,=0,заем)
Z EQU H'0002' ;бит для флага Z (результат выполнения команды 0-то Z=1)
org 0
;========
;===== подготовка =========
;========
bsf STATUS,5 ; переход в банк 1
movlw .255 ; записываем в аккумулятор W число 255 (11111111)
movwf TRISA ; копируем его в TRISA порты А работают на вход
clrf TRISB ; сбрасываем порт Б в 0 (работа порта Б на выход)
bcf STATUS,5 ; переход в банк 0
clrf PORTB ; очистка порта
goto start ;
;=======
start clrwdt
movlw .10 ; записываем число в H1
movwf H1 ;----------
;movlw .255 ; записываем число в счетчик H2 (возможно эта команда и не нужна)
;movwf H2 ;----------
metka bcf PORTB,out6 ; устанавливаем 0 на RB0
goto him ; переходим в ПП Him1
metka2 bsf PORTB,out6 ; устанавливаем RB0 в 1
goto on ; переходим на метку dva
;=========
him bcf STATUS, Z ; устанавливаем флаг Z в 0
incf H1, F ; увеличиваеи на 1 число записанное в H1, с сохранением результата там же
btfsc STATUS, Z ; проверяем флаг Z, было переполнение Н1
goto pause ; да, идем на паузу
movf H1, W ; записываем число из H1 в аккумулятор W
sublw .255 ; отнимаем от 255 числло записанное в W (255- (10+1))
movwf H2 ; записываем полученное число в H2
off clrwdt
decf H2, F ; уменьшаем на 1 значение в H2 (255 - 1)
movf H2, W ; копируем уменьшенное число в W
bcf STATUS, Z ; устанавливаем флаг Z в 0
xorwf H1, F ; сравниваем число записанное в H2 с числом H1 (пока H1 не будет равен H2,Zне поднимется)
btfss STATUS, Z ; проверяем флаг Z ( если после вычитания 1 из Him он стал = Х, Z поднимается в 1)
goto off ; переходим на метку off пока H2 не будет равен H1
goto metka2 ; возвращаемся в основную программу
on decfsz H1, F ; отнимаем от числа записанного в Him1 1
goto on ; пока оно не станет 0, отнимаем
goto metka ; возврашаемся.
;===========
;delay = 500'000 machine cycles
pause movlw .126
movwf Reg_1
movlw .137
movwf Reg_2
movlw .3
movwf Reg_3
wr decfsz Reg_1, F
goto wr
clrwdt
decfsz Reg_2, F
goto wr
decfsz Reg_3, F
goto wr
goto start
;==========
end
что то как то криво вставился текст...
Уже стал путаться в написанном, проверяю каждую команду, вроде все так...
Полагаю что сама программка не правильно составлена, искал примеры с открытым кодом на ассэме, но безрезультатно, подглядеть негде...
так же прикрепляю все файлы МПлаба...
Помогите советом
- Вложения
-
- plav.zip
- (13.21 КБ) 138 скачиваний