Სარჩევი:

3 მარტივი ATTiny სადღესასწაულო საჩუქარი: 4 ნაბიჯი
3 მარტივი ATTiny სადღესასწაულო საჩუქარი: 4 ნაბიჯი

ვიდეო: 3 მარტივი ATTiny სადღესასწაულო საჩუქარი: 4 ნაბიჯი

ვიდეო: 3 მარტივი ATTiny სადღესასწაულო საჩუქარი: 4 ნაბიჯი
ვიდეო: Electronic Basics #3: Programming an Attiny+Homemade Arduino Shield 2024, ნოემბერი
Anonim
3 მარტივი ATTiny სადღესასწაულო საჩუქარი
3 მარტივი ATTiny სადღესასწაულო საჩუქარი

ყოველწლიურად საკურორტო სეზონი ტრიალებს და მე ვჩერდები იმაზე, თუ რა ვაჩუქო ჩემს მეგობრებს და ოჯახს. ხალხი ყოველთვის ამბობს, რომ ჯობია საჩუქარი თავად გააკეთო, ვიდრე მაღაზიაში იყიდო, ასე რომ, წელს ეს გავაკეთე. პირველი აჩვენებს სახელს ან ძირითად გამოსახულებას ჰაერში ტალღისას, მეორე შეუფერხებლად ქრება ორ თეთრ ლიდერს შორის (მას ასევე აქვს უსაფრთხოების ქინძისთავები ტანსაცმელზე ან საფულეზე დასაკრავად), ხოლო მესამე არის განწყობის ერთგვარი განათება, გადახვევა შეუფერხებლად ფერებს შორის. ყველა მათგანი 15 დოლარამდეა და ადვილია აწყობა ერთ საათზე ნაკლებ დროში. თქვენ ასევე შეგიძლიათ ეს ინსტრუქციები და ნაწილები საჩუქრად გადასცეთ ელექტრონიკის სწავლით დაინტერესებულ პირს.

შენიშვნა: გათვალისწინებულია შედუღების ძირითადი დონე. თუმცა, ჩემი წინა ინსტრუქციისგან განსხვავებით, მე განვმარტავ, თუ როგორ დავპროგრამო AVR. მე ნამდვილად მაქვს იმედი, რომ ეს ეხმარება ადამიანებს, რომლებიც ცდილობენ დაიწყონ ელექტრონიკა. მახსოვს, როდესაც იქ ვიყავი და სიამოვნებით მივიღებ ნებისმიერ შეკითხვას. დაიმახსოვრე, სულელური კითხვები არ არსებობს! მე თქვენთვის ღია მაქვს იმის დადგენა, თუ როგორ განალაგებთ თქვენს მიკროსქემის დაფას იმ იმედით, რომ თქვენ გამოხვალთ ახალი სქემების ჩვენების ახალი ხერხი, რომელიც მე შევადგინე. გთხოვთ განათავსოთ სურათები დასრულებისთანავე, მე არ შემიძლია დაველოდო რას იფიქრებთ! ნაწილები ყველა პროექტისთვის N = პროექტების რაოდენობა x N ATTiny45 (www.digikey.com) x N 8 პინიანი DIP სოკეტი (RadioShack) x 1 დიდი პერფის დაფა (მე მივიღე RadioShack– ში) x N 3v მონეტის უჯრედის ბატარეა და დამჭერი (RadioShack) x1 პროგრამისტი (მე ვიყენებ ამას და მიწოდებული მაკიაჟი იქნება კონფიგურირებული ამ ერთის გამოსაყენებლად) x2 N რეზისტორები, ერთი 10 ოჰამი და ერთი 10k ohm (RadioShack) აქ არის სამი დასრულებული პროექტის სურათი:

ნაბიჯი 1: სახელი Flasher

სახელი Flasher
სახელი Flasher
სახელი Flasher
სახელი Flasher
სახელი Flasher
სახელი Flasher

სხვა ნაწილები x5 გაფანტული 3 მმ LED (RadioShack) ეს პროექტი იყენებს მხედველობის დაჟინებას გამოსახულების ან ტექსტის საჩვენებლად სწრაფად გადაადგილებისას. ის უკეთესად მუშაობს, როდესაც ბნელა. AVR– ით ჩვენ უფრო სწრაფად ვცვლით LED– ებს, შემდეგ თვალი ხედავს, ჩვენ შეგვიძლია შევქმნათ სურათი ჰაერში ძალიან ცოტა კომპონენტით. კოდი: (გადმოწერეთ.zip ფაილი გვერდის ბოლოში კოდისთვის, makefile და ა.შ. (ამ კოდს არ აქვს ვრცელი კომენტარები, როგორც ამ კოდს, მაგრამ თუ ეს კოდი არ მუშაობს, სცადეთ ერთი zip ფაილი)) #განსაზღვრეთ F_CPU 1000000 #მოიცავს #მოიცავს #მოიცავს void dispClear () {PORTB = ~ 0b00000000; } int main () {DDRB = 0xFF; // მათთვის, ვისაც არასოდეს წაუკითხავს C ადრე ორმაგი წვეტი მიუთითებს კომენტარზე. ეს ადგენს avr ქინძისთავებს, როგორც გამომავალი char x = 10; // x გამოიყენება დაგვიანებით legnth. მნიშვნელობის გაზრდა იძლევა უფრო ნელ გადართვას პიქსელებს შორის, მცირდება, უფრო დაბალია (1) // ხოლო (მდგომარეობა მართალია); {გააკეთე ეს} (ჭეშმარიტი C არის 1) {PORTB = ~ 0b00010001; // ჩემი მეგობრის სახელია ზოი, ასე რომ მე ამოვიღე სიმბოლოები გრაფიკულ ქაღალდზე და შემდეგ ჩავრთე ისინი პორტში. პირველი სამი ნული არ აქვს მნიშვნელობა, რადგან მხოლოდ ხუთი led არის დაკავშირებული. დარჩენილი ხუთი ადგილიდან ერთი მიუთითებს იმაზე, რომ LED არის ჩართული, ნული, გამორთული. _ დაგვიანებით_ms (x); // მილიწამებში შეფერხება PORTB = ~ 0b00010011; _ დაგვიანებით_ms (x); PORTB = b 0b00010101; _ დაგვიანებით_ms (x); PORTB = ~ 0b00011001; _ დაგვიანებით_ms (x); PORTB = b 0b00010001; _ დაგვიანებით_ms (x); dispClear (); // სიმბოლოთა შორის სივრცის გახსნა _delay_ms (x); PORTB = b 0b00001110; _ დაგვიანებით_ms (x); PORTB = b 0b00010001; _ დაგვიანებით_ms (x*3); PORTB = b 0b00001110; _ დაგვიანებით_ms (x); dispClear (); _ დაგვიანებით_ms (x); PORTB = ~ 0b00011111; _ დაგვიანებით_ms (x); PORTB = ~ 0b00010101; _ დაგვიანებით_ms (x); PORTB = b 0b00010001; _ დაგვიანებით_ms (x); dispClear (); _ დაგვიანებით_ms (x*5); // სიტყვა ისე კეთდება გასაგებად, რომ მე უფრო დიდი სივრცე მაქვს სიტყვებს შორის}} ახლა მიჰყევით ინსტრუქციას მე –4 გვერდზე, რომ შეადგინოთ ეს კოდი და გააგზავნოთ იგი თქვენს AVR– ში.

ნაბიჯი 2: საფულის შუქი

საფულე შუქი
საფულე შუქი
საფულე შუქი
საფულე შუქი

სხვა ნაწილები x2 LED- ის არა DIFFUSED (RadioShack) ეს პროექტი შეუფერხებლად ქრება ორ LED- ს შორის. დედაჩემს სურდა, რომ რაღაც ჩაეტარებინა საფულეში, რათა ღამის ფუტკარი დაენახა. ვიგრძენი, რომ მოციმციმე ველოსიპედის შუქი ძალიან დიდ ყურადღებას მიიქცევდა, ამიტომ ეს გავაკეთე. იგი იყენებს PWM (პულსის სიგანის მოდულაცია), რათა უზრუნველყოს დაბნელებისა და გაცისკროვნების ეფექტი. ის რაც რეალურად ხდება არის ის, რომ led უფრო სწრაფად ციმციმებს ვიდრე თვალი ხედავს სხვადასხვა ინტერვალში ცვლილების სიმულაციისთვის. ამის დანახვა შეგიძლიათ უფრო მკაფიოდ, როდესაც სახეზე ატრიალებთ, როგორც ამას სახელი Flasher- ით იგრძნობთ. კოდის ჩამოტვირთვა შესაძლებელია ამ გვერდის ბოლოს. იხილეთ გვერდი 4, თუ როგორ უნდა შეადგინოთ თქვენი AVR. იმის ნაცვლად, რომ აქ დავწერო კოდი, მოკლედ ავხსნი კონცეფციას. PWM გენერირდება ტაიმერით. თითოეული საათის ციკლი ტაიმერი ითვლის ერთს. როდესაც ის მიაღწევს გარკვეულ მნიშვნელობას (ამ შემთხვევაში OCR1B) ის ცვლის პინის მდგომარეობას (ამ შემთხვევაში OC1B). იმისთვის, რომ LED- ები "გამორთონ" მე სხვა გავუყვანივარ [OPPOSITE] OC1B- ზე (ეს არის ის, რაც ნიშნავს, რომ ბარი ზემოდან ნიშნავს). შემდეგ ჩვენ ვიყენებთ x- ს LED- ის ჩართვის დროის გაზრდისა და შემცირების მიზნით.

ნაბიჯი 3: ფერადი გადახვევა

ფერი Scroller
ფერი Scroller
ფერი Scroller
ფერი Scroller

სხვა ნაწილები x1 RGB LED (დიფუზური უკეთესია) (RadioShack) ეს ჩემთვის კლასიკაა. მე ყოველთვის ვამხიარულებდი ამგვარი შუქებით და ვგრძნობდი მათ ძალიან დამამშვიდებლად, ამიტომ, ბუნებრივია, მინდოდა ამის გაკეთება. ასევე მათი ხილვადობა საზოგადოებაში აძლევს მათ ნამდვილ WOW ფაქტორს. "შენ გააკეთე ეს ?!" კოდი თითქმის იგივეა და, ჩემი აზრით, უფრო ადვილად იკითხება. თქვენ შეგიძლიათ გადმოწეროთ ბოლოში. ამჯერად ჩვენ გთავაზობთ PWM'd პინს თითოეული დასაბუთებული პინისთვის RGB LED- ზე. ამ გზით ჩვენ დაფქვით ჩიპი. ვოლტი შეიძლება შეფასდეს, როგორც სხვაობა ორ წერტილს შორის. 3v-0v = 3v 5v-2v = 3v *** 3v-3v = 0v *** ეს უკანასკნელი მაგალითი არის ის, რასაც ჩვენ ვაკეთებთ, როდესაც ჩიპს გავდივართ. როდესაც ორივე მხარეს არის სამი ვოლტი, ერთი ვთქვათ, არ არის საკმარისი ვოლტი LED- ის მართვისთვის. ასე რომ, ფერებს შორის გასაქრობად ჩვენ ავირჩიეთ ფერი და სხვა ფერი. დააყენეთ ერთი უდრის x- ს, ხოლო მეორე უდრის 255-x- ს ან x- ის ინვერსიას. როგორც ამას წინა პროექტში ვაკეთებდით. ახლა გადადით პროგრამის 4 საფეხურზე.

ნაბიჯი 4: პროგრამირება

პროგრამირება
პროგრამირება

ჯერ გადმოწერეთ და დააინსტალირეთ Emacs, avr-gcc და Avrdude და ნებისმიერი მათგანის დამოკიდებულება. Arch linux– ზე ეს გავაკეთე: sudo pacman –Sy emacs avrdude

ახლა დროა დაუკავშიროთ თქვენი პროგრამისტი თქვენს avr. მიამაგრეთ ქინძისთავები 6-პინიანი პროვაიდერის პროგრამისტზე (ქვემოთ მოყვანილი სურათი) თქვენი AVR– ის კორპორატიული ქინძისთავებისთვის (მონაცემთა ცხრილი, გვერდი 2) (მე ეს გავაკეთე პურის დაფაზე). ახლა შეაერთეთ პროგრამისტი თქვენს კომპიუტერში და ძალიან სწრაფად შეეხეთ AVR- ის ზედა ნაწილს. თუ ცხელა, ამოიღეთ პროგრამა თქვენი კომპიუტერიდან ერთხელ შეამოწმეთ თქვენი კავშირები და ისევ სცადეთ (Power და Gnd უკან?). თუ ის არ არის ცხელი, გახსენით emacs და დააჭირეთ Ctl-x Ctl-f, რათა იპოვოთ.c ფაილი. გახსენით იგი და შემდეგ დააჭირეთ Meta (Usualy Alt) -x და ჩაწერეთ compile. ორჯერ დააჭირეთ Enter- ს და თუ გაგიმართლათ, თქვენს AVR– ს უნდა გაუშვათ თქვენი კოდი! Მადლობა წაკითხვისთვის! იმედი მაქვს მოგეწონათ და ისწავლეთ რამე. გთხოვთ, ნუ დააყოვნებთ კითხვების დასმას და არ დაგავიწყდეთ სურათების გამოქვეყნება, რასაც თქვენ გამოიგონებთ. გილოცავთ დღესასწაულს და არ დაგავიწყდეთ ხმის მიცემა!

გირჩევთ: