Mündəricat:
2025 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2025-01-13 06:56
Evdə Milad dövründə istifadə olunan iki işıqlı hədiyyəmiz var. Rəngi təsadüfi olaraq dəyişən və sönən 2 rəngli qırmızı-yaşıl LED istifadə edərək sadə işıqlı hədiyyələrdir. Cihaz 3 voltluq bir düymə hüceyrəsi ilə təchiz edilmişdir. Hədiyyələr daha uzun müddət işə salındıqda batareya çox tez tükəndiyindən ikincisi bu layihənin səbəbi idi.
Çox miqdarda düymə hüceyrə batareyalarının istifadəsini maneə törətmək üçün, üç şarj edilə bilən AAA batareyadan istifadə edərək öz versiyamı hazırladım. Bu versiya bir RGB LED istifadə edir, buna görə mavi də mümkündür, lakin bu orijinal dizaynın bir hissəsi deyildi. Mənim versiyamda aşağıdakı funksiyalar var:
- Control 2 eyni vaxtda bir PIC12F617 mikro nəzarətçi istifadə edərək təqdim edir. Mikro nəzarətçi proqramı JAL proqramlaşdırma dilində yazılmışdır.
- Bir düyməni istifadə edərək hədiyyəni yandırın və söndürün. Orijinal versiyada bu məqsəd üçün bir keçid istifadə edildi, ancaq bir düyməni istifadə etmək daha asan oldu.
- Qırmızı və yaşıl rənglərin solması və solması ilə təsadüfi olaraq hədiyyələrin rəngini dəyişdirin.
- Batareya gərginliyi 3,0 Voltdan aşağı düşəndə hədiyyələri söndürün. Bu, təkrar doldurulan batareyaların çox boşalmasını maneə törədir.
Bir rəng söndükdən sonra, LED 3 saniyədən 20 saniyəyə qədər bir yerdə yanır. Hələ də istifadə edilməyən mavi LED-ə malik olduğum üçün, hər iki paketin tam 10 saniyə olduqda mavi olacağını əlavə etdim. Təsadüfi vaxt, daha sonra təsvir edildiyi kimi 40 milisaniyəlik taymer gənələrində yarandığı üçün bu çox tez -tez baş vermir.
Addım 1: Pulse Genişlik Modulyasiyasından istifadə edərək solğunlaşma və sönmə haqqında bəzi nəzəriyyələr
Bir LED -in parlaqlığını dəyişdirməyin ən yaxşı yolu, LED -dən axan cərəyanı dəyişdirmək deyil, LED -in müəyyən bir zaman aralığında yanma müddətini dəyişdirməkdir. Bir LED -in parlaqlığını idarə etməyin bu üsulu İnternetdə bir neçə dəfə təsvir edilmiş Pulse Width Modulation (PWM) adlanır. Vikipediya
PIC və Arduino, bu PWM siqnalını istehsal etməyi asanlaşdıran xüsusi bir PWM aparatına malikdir, lakin bunun üçün tez -tez bir çıxışı var və buna görə yalnız bir LED -i idarə edə bilərsiniz. Bu versiya üçün 5 LED -i (2 qırmızı, 2 yaşıl və 1 birləşdirilmiş mavi) idarə etməliyəm, buna görə də PWM -in həm PWM tezliyini, həm də PWM iş dövrünü yaradan bir taymer istifadə edərək proqram təminatında edilməsi lazım idi.
PIC12F617, avtomatik yenidən yükləmə qabiliyyətinə malik bir təyyarə taymerinə malikdir. Bu o deməkdir ki, taymerin yenidən yükləmə dəyərini təyin etdikdə, hər dəfə fasilə keçəndə bu dəyəri istifadə edəcək və buna görə də taymer müəyyən bir tezlikdə tək işləyir. Zamanlama, sabit bir PWM siqnalı üçün çox vacib olduğundan, taymer fasiləsiz olaraq işləyir, əsas proqramın LED-lərin təsadüfi vaxtını idarə etməsi və təyin etməsi lazım olan vaxtdan təsirlənmir.
PWM tezliyi hər hansı bir titrəməni görməmək üçün kifayət qədər yüksək olmalıdır və buna görə 100 Hz PWM tezliyini seçdim. Solma və sönmə effekti üçün iş dövrünü və buna görə də LED-in parlaqlığını dəyişdirməliyik. Solma və sönmə effektini əldə etmək üçün parlaqlığı artırmaq və ya azaltmaq üçün 5 addımlıq artımdan istifadə etmək qərarına gəldim və taymer iş dövrü üçün 0 ilə 255 aralığını istifadə etdiyi üçün taymer 255 / 5 = normal tezliyin 51 dəfə və ya 5100 Hz. Bu, hər 196 nəfərdə bir taymerin kəsilməsi ilə nəticələnir.
Addım 2: Mexaniki iş
Hədiyyələr hazırlamaq üçün süd ağ akril plastikdən istifadə etdim, qalan hissədə isə MDF istifadə etdim. LED yandıqda paketdəki LED şəklini görməməyiniz üçün LED -lərin üzərinə işığı LED -dən yayındıran bir örtük qoydum. Bu örtük məndə olan bəzi köhnə elektron şamlardan gəldi, ancaq eyni akril plastikdən istifadə edərək bir örtük yarada bilərsiniz. Şəkillərdə avadanlıq və material kimi istifadə etdiyimi görürsünüz.
Addım 3: Elektronika
Şematik diaqram sizə lazım olan elektron komponentləri göstərir. Daha əvvəl də qeyd edildiyi kimi, mavi LED -in birləşdirildiyi yerdə 5 LED müstəqil olaraq idarə olunur. PIC bir port pinində iki LED idarə edə bilmədiyi üçün birləşdirilmiş mavi LEDləri idarə etmək üçün bir tranzistor əlavə etdim. Elektronika 3 AAA şarj edilə bilən batareya ilə işləyir və sıfırlama düyməsinə basaraq açıla və ya söndürülə bilər.
Bu layihə üçün aşağıdakı elektron komponentlərə ehtiyacınız var:
- 12F617 yuvalı 1 PIC mikro nəzarətçi
- 2 Seramik kondansatör: 2 * 100nF
- Rezistorlar: 1 * 33k, 1 * 4k7, 2 * 68 Ohm, 4 * 22 Ohm
- 2 RGB LED, yüksək parlaqlıq
- 1 BC557 transistoru və ya ekvivalenti
- 1 düymə açarı
Dövrü bir çörək taxtası üzərində qura bilərsiniz və şəkildən göründüyü kimi çox yer tələb etmir. LEDlər vasitəsilə maksimum cərəyanı idarə etmək üçün müqavimət dəyərlərinin niyə bu qədər aşağı olduğunu düşünə bilərsiniz. Bunun səbəbi, LED -in rəngindən asılı olaraq, hər bir LED -in malik olduğu gərginlik düşməsi ilə birlikdə 3.6 Voltluq aşağı gərginlikdir. Rezistor dəyərləri, bütün sistemin maksimum cərəyanının təxminən 30 mA olduğu bir LED üçün maksimum 15 mA maksimum cərəyanla nəticələnir.
Addım 4: Proqram təminatı
Proqram aşağıdakı vəzifələri yerinə yetirir:
Cihaz düymə ilə sıfırlandıqda cihazı söndürsəydi açar və ya açarsa cihazı söndürər. Söndürmək, PIC12F617 -ni çətin ki, heç bir güc sərf etmədiyi yuxu rejiminə salmaq deməkdir.
LEDlərin parlaqlığını idarə etmək üçün PWM siqnalını yaradın. Bu, LEDləri yandıran və söndürən PIC12F617 pinlərini idarə edən bir taymer və kəsilmə xidməti qaydası istifadə etməklə edilir.
LEDləri söndürün və söndürün və təsadüfi olaraq 3 ilə 20 saniyə arasında saxlayın. Təsadüfi vaxt 10 saniyəyə bərabərdirsə, hər iki LED də 10 saniyə ərzində mavi yanacaq, bundan sonra normal qırmızı-yaşıl rənglərin solması və sönməsi nümunəsi istifadə olunur.
Əməliyyat zamanı PIC, təchizatdakı gərginliyi Analogdan Rəqəmsal Konvertora (ADC) istifadə edərək ölçəcək. Bu gərginlik 3.0 V -dan aşağı düşdükdə, LED -ləri söndürəcək və PIC -ni yenidən yuxu rejiminə keçirəcək. PIC hələ də 3.0 V -da yaxşı işləyə bilər, lakin yenidən doldurulan batareyaların tamamilə boşaldılması yaxşı deyil.
Daha əvvəl qeyd edildiyi kimi, PWM siqnalı sabit bir PWM siqnalını saxlamaq üçün fasilə xidmət qaydasından istifadə edən bir taymer istifadə edərək yaradılır. LED-lərin sönməsi və sönməsi LED-lərin yanma vaxtı da daxil olmaqla əsas proqram tərəfindən idarə olunur. Bu əsas proqram, PWM siqnalını yaradan eyni taymerdən alınan 40 milisaniyəlik bir taymer işarəsindən istifadə edir.
Bu layihə üçün heç bir xüsusi JAL kitabxanasından istifadə etmədiyim üçün, LED -lərin vaxtında və təsadüfi söndürmə vaxtını yaratmaq üçün xətti bir geribildirim kaydı istifadə edərək təsadüfi bir generator yaratmalı oldum.
Addım 5: Son nəticə
Aralıq nəticəni göstərən 2 video var. Həyat yoldaşım hələ də kubları həqiqi hədiyyələrə çevirməlidir. Bir video, digər videonun bu layihəyə aparan orijinal hədiyyə ilə göstərdiyi nəticənin yaxın bir hissəsini göstərir.
Bitdiyini düşündüyünüz zaman gözlədiyiniz kimi yeni tələblər açılır. Həyat yoldaşım LED -lərin parlaqlığının söndükdən sonra da dəyişə biləcəyini soruşurdu. Əlbəttə ki, bu mümkündür, çünki PIC12F617 proqram yaddaşının yalnız yarısını istifadə etdim.
JAL mənbə faylı və PIC -in proqramlaşdırılması üçün Intel Hex faylı əlavə olunur. PAL mikrokontrolörünü JAL ilə - Paskal kimi proqramlaşdırma dili ilə istifadə etmək istəyirsinizsə, JAL veb saytına daxil olun.
Bunu Təlimatlandırmaqla əylənin və reaksiyalarınızı və nəticələrinizi gözləyirik.