| Автор |
Съобщение |
|
Иво
Ранг: Минаващ
Регистриран на: Чет Окт 06, 2005 3:08 pm Мнения: 98 Местоположение: София
|
 5 канален PWM ?
Здравейте, начинаещ съм и се опитвам да навляза в областта на PIC-овете  . Ползвам CCS PicC и съм правил по-простички работи ( директно управление на светодиоди, термометри, LCD и тн. ).
Въпросът ми е как най-лесно ( и качествено  ) мога да реализирам 5 канален PWM - трябва да управлявам 5 лампи с нажежаема жичка, като трябва да светват плавно последователно, след което да загасват пак плавно една след друга.
Благодаря предварително !
|
| Пон Мар 23, 2009 2:20 pm |
|
 |
|
bateAz
Ранг: Форумен бог
Регистриран на: Нед Сеп 26, 2004 4:11 pm Мнения: 3750 Местоположение: София
|
С други контролери става доста по - лесно...
MSP430F149 има до 12 PWM изхода, MSP430F5418 - също. ( $4.15 ) Akerman
То верно Никола каза, че за мигане на лампа най-добре става ПИК, ама ти искаш:
1. хем да светкат / гаснат плавно;
2. хем да са ... 5 !!!
Ако наистина искаш да е с ПИК, само с ПИК и целия ПИК, ползвай 5 изхода и софтуерно им направи PWM като ползваш по-бързо прекъсване от таймер.
|
| Пон Мар 23, 2009 5:27 pm |
|
 |
|
Desert Leo
Ранг: Форумен бог
Регистриран на: Чет Фев 10, 2005 3:25 pm Мнения: 5677 Местоположение: София
|
PIC24FJ32GA002-I/SO, например от Комет за под 3$.
Точно 5 PWM изхода, ако трябва да са хардуерни.
Лампи могат да се мигат и с PIC и с Тексасец, че и с АРМ.
|
| Пон Мар 23, 2009 5:57 pm |
|
 |
|
Иво
Ранг: Минаващ
Регистриран на: Чет Окт 06, 2005 3:08 pm Мнения: 98 Местоположение: София
|
Благодаря за информацията !
А дали Ви се намира някакъв примерен код на С. За един PWM разбирам как става, но няма ли да стане малко объркано за 5 изхода ??
Поздрави,
Иво
|
| Пон Мар 23, 2009 6:31 pm |
|
 |
|
kasparov
Ранг: Почетен член
Регистриран на: Сря Апр 05, 2006 9:52 pm Мнения: 877 Местоположение: Разград
|
 Re: 5 канален PWM ?
аз така както го чета, под последователно светване разбирам, че светва плавно първата лампа и след като е светнала
максимално, започва светването на втората, и т. н.
Ако е така, и един ШИМ би трябвало да е достатъчен. В противен случай, колко от шимовете си променят едновременно коеф. на запълване?
|
| Пон Мар 23, 2009 9:17 pm |
|
 |
|
Иво
Ранг: Минаващ
Регистриран на: Чет Окт 06, 2005 3:08 pm Мнения: 98 Местоположение: София
|
Мисля да го направя с поне 2 PWM-а... В момента ползвам 16F690 директно на демо борда на PicKit 2.
|
| Пон Мар 23, 2009 9:40 pm |
|
 |
|
kasparov
Ранг: Почетен член
Регистриран на: Сря Апр 05, 2006 9:52 pm Мнения: 877 Местоположение: Разград
|
Единият ШИМ софтуерен ли ще е?
|
| Пон Мар 23, 2009 9:55 pm |
|
 |
|
fan
Ранг: Почетен член
Регистриран на: Съб Окт 13, 2007 12:12 pm Мнения: 712
|
Щом прохождаш в CCS-a, влез в "извора" http://www.ccsinfo.com/forum/
Там е пълно с примерен сорс, има и търсачка. Какво повече му трябва на човек?! 
|
| Пон Мар 23, 2009 9:59 pm |
|
 |
|
Иво
Ранг: Минаващ
Регистриран на: Чет Окт 06, 2005 3:08 pm Мнения: 98 Местоположение: София
|
Сега ровя там
Иначе единият ШИМ трябва да е софтуерен, тъй като имам само 1 хардуерен на лице  Не знам как е по удачно - 1 софтуерен и 1 хардуерен или 2 софтуерни.
|
| Пон Мар 23, 2009 10:03 pm |
|
 |
|
Zeus
Ранг: Почетен член
Регистриран на: Вто Окт 03, 2006 11:58 am Мнения: 924 Местоположение: Ботевград
|
#include <16F88.h>
#fuses HS,NOWDT,NOPROTECT
#use delay(clock=8000000)
#bit led1=0x06.0 //PORTB.0
#bit led2=0x06.1
#bit led3=0x06.2
#bit led4=0x06.3
#bit led5=0x06.4
#bit led6=0x06.5
#bit led7=0x06.6
#bit led8=0x06.7
int x[9];
int y;
#int_TIMER0
void clock_isr()
{
disable_interrupts(INT_TIMER0);
if(y>x[1]) led1=0;
if(y>x[2]) led2=0;
if(y>x[3]) led3=0;
if(y>x[4]) led4=0;
if(y>x[5]) led5=0;
if(y>x[6]) led6=0;
if(y>x[7]) led7=0;
if(y>x[8]) led8=0;
if(y++>200) // тук може и 254, но при мен при 200 светодиодите светеха на макс.
{
y=0;
if(x[1]>0) led1=1;
if(x[2]>0) led2=1;
if(x[3]>0) led3=1;
if(x[4]>0) led4=1;
if(x[5]>0) led5=1;
if(x[6]>0) led6=1;
if(x[7]>0) led7=1;
if(x[8]>0) led8=1;
};
set_timer0(200);
enable_interrupts(INT_TIMER0);
}
void main()
{
setup_oscillator( OSC_8MHZ );
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
enable_interrupts(INT_TIMER0);
enable_interrupts(GLOBAL);
set_tris_b(0x00);
y=0;
// слагаш твоята програма
}
Това е една моя стара програма с 8 софтуерни ШИМ-а, вързани на PORTB.
с x[1] - x[8] регулираш запълването на ШИМ-овете, респективно силата на светене. При 0 са изгаснали, при 255 светят максимално. Слагаш МОСФЕТ-и за лампите и си готов.
Дано ти свърши работа като начало.
|
| Пон Мар 23, 2009 10:21 pm |
|
 |
|
Иво
Ранг: Минаващ
Регистриран на: Чет Окт 06, 2005 3:08 pm Мнения: 98 Местоположение: София
|
ZEUS, благодаря много !!! Кодът е много полезен. Аз също поразтърсих тук-там и намерих следното ( тук съм го модифицирал за мойте нужди де.. ):
Сега е за 3 лампи, но ще го довърша  Сега го пробвам със светодиоди и преходите стават малко рязки ( т.е. между 0 и 15 изведнъж светва ярко, и в останалото време се дозасилва леко, но мисля, че с лампата с нажежаема жичка ще стане доста по-плавно ( все пак има голяма инертност)...
Благодаря на всички за помоща !
|
| Пон Мар 23, 2009 11:03 pm |
|
 |
|
Иво
Ранг: Минаващ
Регистриран на: Чет Окт 06, 2005 3:08 pm Мнения: 98 Местоположение: София
|
Здравейте отново!
Програмите работят перфектно ( благодарности на ZEUS ), обаче го тествах със светодиоди. Сега като му включа триак и лампа и се получава някакво мигане на лампрата с честота около 15 Hz ( на око ). Реших, че се получава, защото нямам синхронизация с мрежовата честота, но пробвах същата схема и с постоянен ток - лампата пак мига:
Забравил съм да сложа и 100 омов резистор на схемата между контролера и триака ( на платката го има )
Имате ли идея от какво е ?
|
| Пет Мар 27, 2009 11:54 am |
|
 |
|
MIPS
Ранг: Ориентиран
Регистриран на: Сря Яну 18, 2006 12:18 pm Мнения: 223
|
Ами аз мисля ,че е от триака , но това е мое мнение 
|
| Пет Мар 27, 2009 12:10 pm |
|
 |
|
Иво
Ранг: Минаващ
Регистриран на: Чет Окт 06, 2005 3:08 pm Мнения: 98 Местоположение: София
|
И аз така мисля.. ама как да го избегна се чудя...
|
| Пет Мар 27, 2009 12:14 pm |
|
 |
|
plameniv
Ранг: Форумен бог
Регистриран на: Нед Окт 10, 2004 9:55 am Мнения: 1718
|
 Мига естествено :)
Ми замисли се защо мига!
1. Този модел симистори имат нужда от включване с импулс и в 2-те лоувълни, най добре е да ползваш подходящ оптрон, за целта потърси из нета да речем MOC3022, хубаво е да си синхронизираш контролера по фаза за да се получи нещо като фазово управление.
Едно е да си правиш PWM с диоди друго с крушки на 220 
_________________ Избийте баламите и тарикатите сами ще умрат!
Няма невъзможни работи - има много трудни работи!
----------------------------------------------------------------------------------
"Я в Москве с киркой уран найду, при такой повышенной зарплате" !
|
| Пет Мар 27, 2009 12:14 pm |
|
|