Mündəricat:

3 Asan ATTiny Tətil Hədiyyəsi: 4 addım
3 Asan ATTiny Tətil Hədiyyəsi: 4 addım

Video: 3 Asan ATTiny Tətil Hədiyyəsi: 4 addım

Video: 3 Asan ATTiny Tətil Hədiyyəsi: 4 addım
Video: Три богатыря: Ход конем | Мультфильмы для всей семьи 2024, Noyabr
Anonim
3 Asan ATTiny Tətil Hədiyyəsi
3 Asan ATTiny Tətil Hədiyyəsi

Hər il tətil mövsümü dolaşır və dostlarıma və ailəmə nə verəcəyimi düşünürəm. İnsanlar həmişə deyirlər ki, hədiyyəni bir mağazada almaqdansa özünüz etmək daha yaxşıdır, ona görə də bu il elə etdim. Birincisi, havada dalğalananda bir ad və ya əsas şəkil göstərir, ikincisi iki ağ led arasında rahatca solur (Həm də paltara və ya çantaya bağlamaq üçün bir təhlükəsizlik pininə malikdir), üçüncüsü isə hər növ əhval -ruhiyyə işığıdır. rənglər arasında sorunsuz. Hamısı 15 dollardan aşağıdır və bir saatdan az müddətdə yığmaq asandır. Bu təlimatları və hissələri də elektronikanı öyrənmək istəyənlərə hədiyyə olaraq verə bilərsiniz.

Qeyd: Əsas lehimləmə səviyyəsi nəzərdə tutulur. Bununla birlikdə, əvvəlki təlimatımdan fərqli olaraq, AVR -in necə proqramlaşdırılacağını izah edəcəyəm. Ümid edirəm ki, bu, elektronikaya başlamağa çalışan insanlara kömək edəcək. Orada olduğumu xatırlayıram və hər hansı bir sualınız varsa məmnuniyyətlə alacağam. Unutma ki, axmaq suallar yoxdur! Çəkdiyim sadə sxemləri nümayiş etdirməyin yeni bir yolu ilə qarşılaşacağınız ümidi ilə elektron lövhənizi necə düzəldəcəyinizi təyin etməyi sizə açıq qoymuşam. Zəhmət olmasa bitirdikdən sonra şəkillər göndərin, nə düşündüyünüzü gözləyə bilmərəm! Bütün Layihələr üçün hissələr N = layihələrin sayı x N ATTiny45 (www.digikey.com) x N 8 pinli DIP yuvası (RadioShack) x 1 Böyük Mükəmməl lövhə (RadioShack -da öz əlimə sahibəm) x N 3v Sikkə Hüceyrə Batareyası və tutucu (RadioShack) x1 Proqramçı (bunu istifadə edirəm və verilən makiyaj faylı bunu istifadə etmək üçün konfiqurasiya ediləcək) x2 N Rezistorlar, biri 10 ohm və bir 10k ohm (RadioShack) İşdə tamamlanmış üç layihənin şəkli:

Addım 1: Ad Flaşörü

Adı Flaşör
Adı Flaşör
Adı Flaşör
Adı Flaşör
Adı Flaşör
Adı Flaşör

Digər Parçalar x5 DIFFUSED 3mm LED -lər (RadioShack) Bu layihə sürətlə hərəkət edərkən bir şəkil və ya mətn göstərmək üçün görmə əzmindən istifadə edir. Qaranlıq olanda daha yaxşı işləyir. AVR ilə LED -lər arasında daha sürətli keçid edirik, sonra görürük ki, havada çox az komponentdən ibarət bir şəkil yarada bilərik. Kod: (Kod, makefile və s. Üçün səhifənin altındakı.zip faylını yükləyin zip faylı)) #define F_CPU 1000000 #include #include void dispClear () {PORTB = ~ 0b00000000; } int main () {DDRB = 0xFF; // İkiqat işarədən əvvəl heç vaxt C oxumamış olanlar üçün bir şərh göstərilir. Bu, avr sancaqlarını x = 10 çıxış char olaraq təyin edir; // x gecikmə ayağını təyin etmək üçün istifadə olunur. Dəyəri artırmaq piksellər arasında daha yavaş bir keçid verir, azalır, daha aşağı isə (1) // While (şərt doğrudur); {Bunu Et} (C -də Doğru 1 -dir) {PORTB = ~ 0b00010001; // Dostumun adı Zoe, buna görə də qrafik kağızdakı simvolları çəkdim və sonra onları PORTB -ə qoydum. İlk üç sıfırın əhəmiyyəti yoxdur, çünki yalnız beş led bağlı. Qalan beş boşluqdan birində LED -in yandığını, sıfırın söndüyünü göstərir. _ gecikmə_ms (x); // milisaniyələrdə gecikmə PORTB = ~ 0b00010011; _ gecikmə_ms (x); PORTB = ~ 0b00010101; _ gecikmə_ms (x); PORTB = ~ 0b00011001; _ gecikmə_ms (x); PORTB = ~ 0b00010001; _ gecikmə_ms (x); dispClear (); // _delay_ms (x) simvolları arasında boş yer; PORTB = ~ 0b00001110; _ gecikmə_ms (x); PORTB = ~ 0b00010001; _ gecikmə_ms (x*3); PORTB = ~ 0b00001110; _ gecikmə_ms (x); dispClear (); _ gecikmə_ms (x); PORTB = ~ 0b00011111; _ gecikmə_ms (x); PORTB = ~ 0b00010101; _ gecikmə_ms (x); PORTB = ~ 0b00010001; _ gecikmə_ms (x); dispClear (); _ gecikmə_ms (x*5); // Söz aydınlıq üçün edilir, sözlər arasında daha böyük bir boşluq var}} İndi bu kodu tərtib etmək və AVR -ə göndərmək üçün 4 -cü səhifədəki təlimatları izləyin.

Addım 2: Pul kisəsi işığı

Çanta İşıq
Çanta İşıq
Çanta İşıq
Çanta İşıq

Digər hissələr x2 LED -lər DİFFÜZSİYASIZDIR (RadioShack) Bu layihə iki LED -lər arasında hamarca sönür. Anam gecə arısının görülməsinə kömək etmək üçün cüzdanına bir şey getmək istədi. Yanıp sönən velosiped işığının çox diqqət çəkəcəyini hiss etdim, buna görə də bunu etdim. Qaranlıq və parlaqlıq effekti vermək üçün PWM (Pulse Width Modulation) istifadə edir. Əslində baş verən şey, bir dəyişikliyi simulyasiya etmək üçün ledin müxtəlif vaxtlarda gözün görə biləcəyindən daha sürətli yanıp sönməsidir. Ad Flaşöründə olduğu kimi üzünüzü yelləyərkən bunu daha aydın görə bilərsiniz. Kodu bu səhifənin sonunda yükləyə bilərsiniz. AVR -inizi necə tərtib etmək barədə 4 -cü səhifəyə baxın. Burada kodu şərh etmək əvəzinə anlayışı qısaca izah edəcəyəm. PWM bir taymer tərəfindən yaradılır. Hər bir saat dövrü timer bir sayar. Müəyyən bir dəyərə çatdıqda (bu halda OCR1B) bir pin vəziyyətini dəyişir (bu halda OC1B). LED -lərin "söndürülməsi" üçün digərini [OPPOSITE] OC1B -yə bağladım (yuxarıdakı çubuğun mənası budur). Sonra LED -lərin yanma müddətini artırmaq və azaltmaq üçün x -dən istifadə edirik.

Addım 3: Rəng Kaydırıcısı

Rəng Kaydırıcısı
Rəng Kaydırıcısı
Rəng Kaydırıcısı
Rəng Kaydırıcısı

Digər Partsx1 RGB LED (yayılmış daha yaxşıdır) (RadioShack) Bu mənim üçün klassikdir. Həmişə bu kimi işıqlar məni valeh edirdi və onları çox sakitləşdirici hesab edirdim, təbii ki, mən də bunu etmək istəyirdim. Həm də cəmiyyətdəki görünürlüyü onlara əsl WOW faktoru verir. "Sən bunu etdin ?!" Kod təxminən eynidir və mənim fikrimcə oxumaq daha asandır. Aşağıdan yükləyə bilərsiniz. Bu dəfə RGB LED -də hər bir topraklama pimi üçün bir PWM pin təmin edirik. Bu şəkildə çipdən keçirik. Voltlar iki nöqtə arasındakı fərq olaraq ölçülə bilər. 3v-0v = 3v 5v-2v = 3v *** 3v-3v = 0v *** Bu son nümunə, çipdən keçərkən etdiyimiz şeydir. Hər iki tərəfdə üç volt olduqda, bir LED idarə etmək üçün kifayət qədər volt yoxdur. Rənglər arasında sönmək üçün bir rəng və başqa bir rəng seçdik. Birini x-ə, digərini 255-x-ə və ya x-in TERSİNƏ bərabər seçin. Əvvəlki layihədə etdiyimiz kimi. İndi proqramlaşdırmaq üçün 4 -cü addıma keçin.

Addım 4: Proqramlaşdırma

Proqramlaşdırma
Proqramlaşdırma

Əvvəlcə Emacs, avr-gcc və Avrdude və ola biləcək hər hansı bir asılılığı yükləyin və quraşdırın. Arch Linux -da bunu belə etdim: sudo pacman -Sy emacs avrdude

İndi proqramçınızı avr -a bağlamağın vaxtı gəldi. 6 pinli ISP proqramçısındakı pinləri (aşağıda göstərilən şəkil) AVR-də (Məlumat Cədvəli, səhifə 2) uyğunlaşdıran pinlərə bağlayın (bunu bir çörək taxtasında etdim). İndi proqramçını kompüterinizə qoşun və AVR -in üstünə çox tez toxunun. İsti olsaydı, PROQRAMERİ KOMPYUTERİNİZDƏN BİR DƏFƏ ÇIXARIN əlaqələrinizi yoxlayın və yenidən cəhd edin (Güc və Gnd geriyə?). İsti deyilsə, emacları açın və.c faylını tapmaq üçün Ctl-x Ctl-f düyməsini basın. Açın və sonra Meta (Usualy Alt) -x düyməsini basın və compile yazın. Enter düyməsini iki dəfə basın və şanslıysanız AVR kodunuzu işlədəcək! Oxuduğunuz üçün təşəkkürlər! Ümid edirəm zövq aldınız və bir şey öyrəndiniz. Zəhmət olmasa suallar verməkdən çəkinməyin və düşündüklərinizin şəkillərini yerləşdirməyi unutmayın. Bayramınız mübarək və səs verməyi unutmayın!

Tövsiyə: