Мазмуну:

Бир нече электрондук шамдар: 3 кадам
Бир нече электрондук шамдар: 3 кадам

Video: Бир нече электрондук шамдар: 3 кадам

Video: Бир нече электрондук шамдар: 3 кадам
Video: ЭРКЕКТИН АЯЛЫН СҮЙБӨЙ КАЛГАНЫН КАНТИП БИЛСЕ БОЛОТ? 5 БЕЛГИ 2024, Ноябрь
Anonim
Бир нече электрондук шамдар
Бир нече электрондук шамдар

Электрондук шамдар Instructablesге көп жолу жазылган, анда бул эмне үчүн?

Үйдө менде LED түшүнүгү жана кичинекей батареясы бар кичинекей жарым тунук жаңы жылдык үйлөр бар. Кээ бир үйлөрдө светодиоддук шамдар бар, ал эми кээ бирлеринде жөн эле күйүп турган светодиоддор бар. Кичинекей батареялар салыштырмалуу бат бош жана мен бардык үйлөрдө шамдын таасирин тийгизгим келгендиктен, аны PIC долбооруна айлантууну чечтим. Албетте, сиз аны Arduino долбооруна айландырсаңыз болот.

Демек, бул электрондук шамдын эмнеси өзгөчө? PIC жана Arduino баарында лампанын туурасын модуляциялоонун (PWM) аппараты бар, аны LEDдин жардамы менен шам эффектин түзүү үчүн колдонсо болот, бирок менин учурда мен бир контроллерди колдонуп 5 көз карандысыз электрондук шамдын болушун кааладым, бирок жок дегенде мен билем деп. Мен колдонгон чечим - бул беш көз карандысыз PWM сигналын программалык камсыздоодо толугу менен жасоо.

1 -кадам: Программада Pulse Width Modulation

Pulse Width Modulation бир нече жолу сүрөттөлгөн, мис. бул Arduino макаласында:

PIC жана Arduino бортунда атайын PWM аппараты бар, бул PWM сигналын чыгарууну жөнөкөйлөтөт. Эгерде биз программалык камсыздоодо бир же бир нече PWM сигналын жасоону кааласак, анда эки таймер керек:

  1. PWM жыштыгын түзүү үчүн колдонулган бир таймер
  2. PWM кызмат циклин түзүү үчүн колдонулган бир таймер

Таймердин экөө тең бүтүргөндө жана үзгүлтүккө учуратат, ошондуктан PWM сигналын иштетүү толугу менен үзгүлтүккө учурайт. PWM жыштыгы үчүн мен PICтин 0 таймерин колдоном жана анын толуп кетишине жол берем. Ички осциллятордун сааты 8 МГц жана 64кө чейинки баа берүү формуласы: Fosc / 4/256/64 = 2.000.000 / 256/64 = 122 Гц же 8, 2 мс. Адамдын көзү аны көрө албашы үчүн жыштык жетишерлик жогору болушу керек. Бул үчүн 122 Гц жыштыгы жетиштүү. Бул таймерди үзгүлтүккө учуратуунун бирден -бир жолу - жаңы PWM циклинин милдети циклин көчүрүү жана бардык LED ди күйгүзүү. Бул бардык 5 LED үчүн өз алдынча кылат.

PWM милдетинин циклин иштетүү үчүн таймердин мааниси биз шамдын эффектин кантип жасаганыбыздан көз каранды. Менин мамилемде мен бул эффектти символдоштуруп, диоддун жарыктыгын жогорулатуу үчүн диапазонду 3 мааниси менен жогорулатуу жана диоддун жарыгын азайтуу үчүн 25 мааниси менен азайтуу. Ошентип, сиз шам сыяктуу эффект аласыз. Мен 3 минималдуу маанини колдонгондуктан, бир байт менен толук циклди көзөмөлдөө кадамдарынын саны 255/3 = 85. Бул PWM кызмат циклинин таймеринин 85 эсе жыштык менен иштеши керек дегенди билдирет PWM жыштык таймери 85 * 122 = 10.370 Гц.

PWM кызмат цикли үчүн мен PICтин 2 таймерин колдоном. Бул автоматтык түрдө кайра жүктөөчү таймер жана ал төмөнкү формуланы колдонот: Period = (Reload + 1) * 4 * Tosc * Timer2 алдын ала баалуулук. 191ди кайра жүктөө жана 1ге чейинки баа берүү менен биз (191 + 1) * 4 * 1/8.000.000 * 1 = 96 бизди же 10.416 Гцти алабыз. PWM кызмат цикли үзгүлтүксүз иштөө циклинин өткөнүн текшерет жана иштөө цикли аяктаган LEDди өчүрөт. Эгерде кызматтык цикл өтпөй калса, анда ал 3 -цикл менен эсептөө циклин азайтат жана күн тартибин аяктайт. Бул өз алдынча бардык LED үчүн кылат. Менин учурда, бул үзгүлтүккө учуроо 25ке жакын убакытты талап кылат жана ал ар бир 96 деп аталып калгандыктан, CPUнын 26% ы программалык камсыздоодо PWM милдетинин циклин башкаруу үчүн колдонулат.

2 -кадам: Аппараттык камсыздоо жана керектүү компоненттер

Аппараттык камсыздоо жана керектүү компоненттер
Аппараттык камсыздоо жана керектүү компоненттер

Схемалык диаграмма акыркы жыйынтыкты көрсөтөт. Мен 5 светодиодду өз алдынча көзөмөлдөп турганым менен, мен башка 5 светодиоддун бири менен чогуу иштеген 6 -диодду коштум. PIC бир порттогу эки LEDди айдай албагандыктан, мен транзисторду коштум. Электроника 6 вольт / 100 мА туруктуу адаптер менен азыктанат жана туруктуу 5 Вольтту түзүү үчүн төмөн түшүүчү чыңалуу жөндөгүчүн колдонот.

Бул долбоор үчүн төмөнкү компоненттер керек:

  • 1 PIC микроконтроллери 12F615
  • 2 Керамикалык конденсатор: 2 * 100nF
  • Резисторлор: 1 * 33k, 6 * 120 Ом, 1 * 4k7
  • 6 Orange же Yellow LED, жогорку жарыктык
  • 1 BC557 транзистору же эквиваленти
  • 1 Электролиттик конденсатор 100 uF / 16 V
  • 1 төмөн түшүүчү чыңалуу жөндөгүчү LP2950Z

Сиз схеманы нан тактасына кура аласыз жана сүрөттө көрүнүп тургандай, көп орун талап кылбайт.

3 -кадам: Калган программалык камсыздоо жана жыйынтык

Программалык камсыздоонун калган бөлүгү - негизги цикл. Негизги цикл диоддордун жарыгын көбөйтөт же азайтат, кызмат циклин туш келди жөнгө салуу. Биз 3 гана жана 25ке азайтуу менен гана көбөйткөндүктөн, биз декременттер көбөйүүлөр сыяктуу тез -тез болуп турбашы керек.

Мен эч кандай китепкананы колдонбогондуктан, линиялык кайтарым байланыштын регистрин колдонуп, туш келди генератор жасоого туура келди, караңыз:

en.wikipedia.org/wiki/Linear-feedback_shif…

Шам эффекти PWM кызмат циклинин канчалык тез өзгөрүшүнө таасир этет, андыктан негизги цикл болжол менен 10 мс кечигүүнү колдонот. Сиз шамдын эффектин муктаждыктарыңызга өзгөртүү үчүн бул убакытты тууралай аласыз.

Тиркелген видео эффектти жакшыртуу үчүн LEDдын үстүнө капкак колдонгон акыркы жыйынтыкты көрсөтөт.

Мен JALды бул долбоордун программалоо тили катары колдондум жана баштапкы файлды тиркемеледим.

Муну Инструктивдүү кылып, реакцияларыңызды жана жыйынтыктарыңызды күтөбүз.

Сунушталууда: