Mündəricat:

Proqramlaşdırıla bilən LED: 6 addım (şəkillərlə birlikdə)
Proqramlaşdırıla bilən LED: 6 addım (şəkillərlə birlikdə)

Video: Proqramlaşdırıla bilən LED: 6 addım (şəkillərlə birlikdə)

Video: Proqramlaşdırıla bilən LED: 6 addım (şəkillərlə birlikdə)
Video: Pərdə arxası #2 - Fahişə həyatı - uşaqlar baxmasın 2024, Iyul
Anonim
Proqramlaşdırıla bilən LED
Proqramlaşdırıla bilən LED

Müxtəlif LED atışlarından, yanıb -sönən LED -lərdən və buna bənzər təlimatlardan ilham alaraq, bir mikrokontrolör tərəfindən idarə olunan bir LED -in versiyasını etmək istəyirdim. Fikri, LED -in yanıb -sönən ardıcıllığını yenidən proqramlaşdırmaqdır. Bu yenidən proqramlaşdırma işıq və kölgə ilə edilə bilər, məsələn. Fənərinizi istifadə edə bilərsiniz. Bu mənim ilk təlimatımdır, hər hansı bir şərh və ya düzəlişlər xoşdur. 2008-08-12 Yeniləyin: İndi Tinker Mağazasında bir dəst var. İşdə yenidən proqramlaşdırma videosu. Keyfiyyət üçün üzr istəyirik.

Addım 1: Necə Çalışır

Çıxış olaraq bir LED istifadə olunur. Giriş olaraq işığa bağlı bir rezistor olan LDR istifadə etdim. Bu LDR az və ya çox işıq aldıqda müqavimətini dəyişir. Rezistor daha sonra ADC mikroprosessorlarına analoq giriş olaraq istifadə olunur (analog rəqəmsal çevirici).

Nəzarətçinin iki ardıcıllıq rejimi var, biri ardıcıllığı qeyd etmək üçün, digəri isə yazılmış ardıcıllığı oxumaq üçün. Nəzarətçi saniyənin yarısı ərzində iki parlaqlıq dəyişikliyini (qaranlıq, parlaq, qaranlıq və ya əksinə) fərq etdikdə qeyd rejiminə keçir. Yenidən kodlaşdırma rejimində LDR girişi saniyədə dəfələrlə ölçülür və çipdə saxlanılır. Yaddaş tükənirsə, nəzarətçi yenidən oynatma rejiminə keçir və qeydə alınan ardıcıllığı çalmağa başlayır. Bu kiçik nəzarətçinin yaddaşı çox məhdud olduğu üçün 64 bayt (bəli, bayt!), Nəzarətçi 400 bit yaza bilir. Saniyədə 40 nümunə ilə 10 saniyə üçün kifayət qədər yerdir.

Addım 2: Materiallar və Alətlər

Alətlər və materiallar
Alətlər və materiallar
Alətlər və materiallar
Alətlər və materiallar

Materiallar- 2 x 1K rezistor- 1 x LDR (İşıqdan Rezistor), məs. M9960- 1 x Aşağı Akımlı LED, 1.7V, 2ma- 1 x Atmel ATtiny13v, 1KB flaş RAM, 64 Bayt RAM, 64 Bayt EEPROM, [email protected] 1 x CR2032, 3V, 220mAhTools- lehimləmə dəmiri - lehim teli- çörək taxtası- AVR proqramçısı- 5V enerji təchizatı- multimetr Proqram- Eclipse- CDT plugin- WinAVRCosts ümumiyyətlə alətlər olmadan 5 dollardan aşağı olmalıdır. ATtiny13v istifadə etdim, çünki bu nəzarətçi ailəsinin bu versiyası 1.8V -də işləyə bilir. Bu, dövrəni çox kiçik bir batareya ilə idarə etməyə imkan verir. Uzun müddət işləməsi üçün 2ma -da tam parlaqlığa çatan aşağı cərəyanlı LED istifadə etmək qərarına gəldim.

Addım 3: sxemlər

Sxemalar
Sxemalar

Sxemdəki bəzi şərhlər. Sıfırlama girişi bağlı deyil. Bu ən yaxşı təcrübə deyil. Yuxarı çəkərkən 10K rezistordan istifadə etmək daha yaxşı olar. Amma mənim üçün yaxşı işləyir və bir rezistora qənaət edir. Dövrəni mümkün qədər sadə saxlamaq üçün daxili osilatördən istifadə etdim. Bu o deməkdir ki, bir kristal və iki kiçik kondansatör saxlayırıq. Daxili osilatör, idarəedicinin məqsədimiz üçün kifayət qədər çox olan 1.2MHz -də işləməsinə imkan verir. 5V -dan başqa bir enerji təchizatı istifadə etmək və ya başqa bir LED istifadə etmək qərarına gəlsəniz, R1 müqavimətini hesablamalısınız. Düstur belədir: R = (Enerji təchizatı V - LED V) / 0.002A = 1650 Ohm (Enerji təchizatı = 5V, LED V = 1.7V). Bir əvəzinə iki aşağı cərəyan LED istifadə edərək, formula belə görünür: R = (Enerji təchizatı V - 2 * LED V) / 0.002A = 800 Ohm. Başqa bir LED növü seçsəniz, hesablamanı tənzimləməli olduğunuzu unutmayın. R2 rezistorunun dəyəri istifadə olunan LDR -dən asılıdır. 1KOhm mənim üçün işləyir. Ən yaxşı dəyəri tapmaq üçün potensiometrdən istifadə etmək istəyə bilərsiniz. Cicuit normal gündüz işığında işıq dəyişikliklərini aşkar edə bilməlidir. Enerjiyə qənaət etmək üçün PB3 yalnız bir ölçmə aparılırsa yüksək olaraq təyin edilir. Yeniləmə: sxem səhvdir. Aşağıda düzgün versiya verilmişdir. Təşəkkürlər, dave_chatting.

Addım 4: Prototip lövhəsinə yığın

Prototip lövhəsinə yığın
Prototip lövhəsinə yığın
Prototip lövhəsinə yığın
Prototip lövhəsinə yığın

Dövrünüzü sınamaq istəyirsinizsə, bir çörək taxtası çox rahatdır. Heç bir şey lehimləmədən bütün hissələri yığa bilərsiniz.

Addım 5: Dövrəni proqramlaşdırın

Dövrəni proqramlaşdırın
Dövrəni proqramlaşdırın
Dövrəni proqramlaşdırın
Dövrəni proqramlaşdırın

Nəzarətçi müxtəlif dillərdə proqramlaşdırıla bilər. Ən çox istifadə edilənlər Assembler, Basic və C -dir. C ehtiyaclarımı ən yaxşı şəkildə qarşılayır. Mən on il əvvəl C -yə öyrəşmişdim və bəzi bilikləri canlandıra bilmişəm (yaxşı, yalnız bəziləri …). Proqramınızı yazmaq üçün CDT plugin ilə Eclipse -i məsləhət görürəm. Tutulmanı buradan əldə edin https://www.eclipse.org/ və buradakı plagin https://www.eclipse.org/cdt/. AVR mikrokontrolörlərinə C dilini tərtib etmək üçün çarpaz tərtibçiyə ehtiyacınız olacaq. Şanslıyıq ki, məşhur GCC limanı var. WinAVR adlanır və burada tapa bilərsiniz https://winavr.sourceforge.net/. AVR nəzarətçilərinin WinAVR ilə necə proqramlaşdırılacağına dair çox yaxşı bir dərs burada https://www.mikrocontroller.net/articles/AVR-GCC- Təlimat. Üzr istəyirik, alman dilindədir, ancaq bu mövzuda öz dilinizdə minlərlə təlimat səhifəsi tapa bilərsiniz, əgər onları axtarsanız. Mənbənizi tərtib etdikdən sonra hex faylını nəzarətçiyə köçürməlisiniz. Bu, kompüterinizi ISP (sistem proqramçısında) və ya xüsusi proqramçılar istifadə edərək dövrə bağlamaqla edilə bilər. Xüsusi bir proqramçı istifadə etdim, çünki bəzi telləri və bir fişi qənaət edərək dövrəni bir qədər asanlaşdırır. Dezavantajı, proqramınızı hər dəfə yeniləmək istədiyiniz zaman idarəedicini dövrə ilə proqramçı arasında dəyişməyinizdir. Proqramçım https://www.myavr.de/ saytından gəlir və notbukuma qoşulmaq üçün USB istifadə edir. Ətrafında bir çoxları var və hətta özünüz qura bilərsiniz. Transferin özü üçün WinAVR paylamasının bir hissəsi olan avrdude adlı bir proqramdan istifadə etdim. Bir nümunə əmr satırı belə görünə bilər:

avrdude -F -p t13 -c avr910 -P com4 -U flaş: w: flickled.hex: iMənbə və tərtib edilmiş hex faylını əldə edə bilərsiniz.

Addım 6: Lehimləmə

Lehimləmə
Lehimləmə

Dövrəniz çörək taxtasında işləyirsə, onu lehimləyə bilərsiniz.

Bu bir PCB (çap cicuit board), bir prototip lövhədə və ya hətta bir lövhəsiz edilə bilər. Dövrə yalnız bir neçə komponentdən ibarət olduğu üçün bunu etməməyə qərar verdim. Lehimləmə ilə tanış deyilsinizsə, əvvəlcə bir lehimləmə təlimatı axtarmağı məsləhət görürəm. Lehimləmə bacarıqlarım bir az paslıdır, amma düşünürəm ki, bu fikri başa düşürsən. Ümid edirəm zövq aldınız. Alex

Tövsiyə: