Სარჩევი:
- ნაბიჯი 1: იდეა
- ნაბიჯი 2: ნაწილები და ინსტრუმენტები
- ნაბიჯი 3: სქემების აღწერა
- ნაბიჯი 4: შედუღება
- ნაბიჯი 5: შეკრება
- ნაბიჯი 6: მოკლე პროგრამირების შესავალი
- ნაბიჯი 7: კოდის აღწერა
- ნაბიჯი 8: საბოლოო კოდი და სასარგებლო ფაილები
ვიდეო: პაწაწინა LED მატრიცის ჩვენების საათი: 8 ნაბიჯი
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:20
მე ყოველთვის მინდოდა მქონოდა ძველებური დესკტოპის საათი, რომელიც რაღაცას ჰგავდა 90-იანი წლების ფილმებს, საკმაოდ მოკრძალებული ფუნქციონირებით: რეალურ დროში საათი, თარიღი, ფონური შუქის შეცვლა, სიგნალი და სიგნალიზაციის ვარიანტი. ასე რომ, მე მომივიდა იდეა, ავაშენო ერთი: ციფრული მოწყობილობა, რომელიც დაფუძნებულია მიკროკონტროლერზე ყველა იმ მახასიათებლით, რაც ზემოთ ვახსენე და იკვებება USB– ით - კომპიუტერით ან მობილური USB ნებისმიერი დამტენით. ვინაიდან მინდოდა პროგრამირებადი, მენიუებითა და პარამეტრების მორგებით, MCU განთავსება გარდაუვალი იყო ამ პროექტში. ATMEGA328P IC (რომლისგანაც შედგება Arduino Uno– ს ყველა დაფა) შეირჩა მიკროსქემის „ტვინად“(საუბარია იმაზე, რომ მე მხოლოდ ბევრი მათგანი მქონდა). რამოდენიმე ელექტრონული ნაწილის გაერთიანებამ, როგორც RGB LED- მა, დატენვის დროის შემნახველმა ჩიპმა და ღილაკებმა, შესაძლებელი გახადა მთელი პროექტის დაბადება-პროგრამირებადი მცირე ზომის LED ეკრანის დესკტოპის საათი.
ასე რომ, მას შემდეგ რაც ჩვენ დაფარავს პროექტის ერთეულს, მოდით ავაშენოთ ის
ნაბიჯი 1: იდეა
როგორც უკვე აღვნიშნეთ, ჩვენი მოწყობილობა შეიცავს რამოდენიმე ლამაზ LED მატრიცის ჩვენებას, ფერის შეცვლის RGB LED შუქნიშანს, დროული შემნახველი ჩიპს, მოსახერხებელ USB კვების ბლოკს და მცირე ზომის გარს.
მოდით აღწეროთ მოწყობილობის ოპერაციული ბლოკის დიაგრამა ნაწილების მიხედვით:
1. კვების ბლოკი:
ვინაიდან მოწყობილობა მუშაობს 5 ვოლტ DC- ზე, კვების ბლოკის კომპონენტი შედგება ორი ცალკეული სქემისგან:
- მიკრო USB შეყვანა - პირდაპირი დამტენი / კომპიუტერის დენის წყაროსთვის.
- 5V ხაზოვანი ძაბვის მარეგულირებელი წრე დაფუძნებულია LM7805 IC- ზე.
LM7805 IC წრე არჩევითია, თუ არ გირჩევნიათ განახორციელოთ კვების ბლოკის სხვადასხვა ხელმისაწვდომობა. ჩვენს მოწყობილობაში გამოიყენება Micro-USB PSU.
2. მიკროკონტროლის განყოფილება:
მიკროკონტროლი ATMEGA328P, მოქმედებს როგორც მთელი მოწყობილობის "ტვინი". მისი მიზანია დაუკავშირდეს ყველა პერიფერიულ წრეს, უზრუნველყოს საჭირო მონაცემები და გააკონტროლოს მოწყობილობის მომხმარებლის ინტერფეისი. ვინაიდან არჩეული მიკროკონტროლი არის ATMEGA328P, ჩვენ დაგვჭირდება Atmel Studio და ძირითადი C ცოდნა (სქემები და პროგრამირების თანმიმდევრობა აღწერილია შემდგომ ნაბიჯებში).
3. რეალურ დროში საათის ჩართვა:
მეორე ყველაზე მნიშვნელოვანი წრე მოწყობილობაში. მისი მიზანია თარიღისა და დროის მონაცემების მიწოდება, მისი შენახვის მოთხოვნით, ენერგიის შეყვანის კავშირზე დამოკიდებულების გარეშე, ანუ დროის მონაცემების განახლება ხდება რეალურ დროში. იმისათვის, რომ RTC კომპონენტი შეძლოს დროის / თარიღის მონაცემების შეცვლის გაგრძელება, მიკროსქემს ემატება 3V მონეტა-უჯრედის ბატარეა. IC არის DS1302, მისი მოქმედება აღწერილია შემდგომ ნაბიჯებში.
4. შეყვანის ინტერფეისი - Push Button კონცენტრატორები:
შეყვანის PB კონცენტრატორები უზრუნველყოფენ მომხმარებლის შეყვანის ინტერფეისს. ეს გადამრთველები დამუშავებულია MCU და მაკონტროლებელი მოწყობილობის განსაზღვრულ პროგრამაში.
5. LED მატრიცის ჩვენება
მოწყობილობის ჩვენება შედგება ორი IC შეფუთული HCMS-2902 ალფანუმერული LED მატრიცისაგან, თითოეულ IC- ს აქვს 5x7 პატარა LED მატრიცის 4 სიმბოლო. ეს დისპლეები მარტივი გამოსაყენებელია, 3 მავთულის კომუნიკაცია მხარდაჭერილი და მცირე ზომის-ყველაფერი რაც ჩვენ გვჭირდება ამ პროექტში.
6. RGB განათება:
ფერის შეცვლის განათება ემყარება გარე RGB LED- ს, რომელიც კონტროლდება PWM სიგნალებით MCU– დან. ამ პროექტში RGB LED– ს აქვს სულ 4 ქინძისთავები: R, G, B და საერთო, სადაც R, G, B ფერის პალიტრა კონტროლდება PWM– ით MCU– ს მიერ.
7. ბუზერი:
ბუზერის წრე გამოიყენება როგორც ხმის გამომავალი, ძირითადად განგაშის მიზნით. BJT გადამრთველი გამოიყენება ზუზერის კომპონენტის საკმარისი დენის უზრუნველსაყოფად, ამიტომ მისი მოცულობა საკმარისად მაღალი იქნება ცოცხალი ადამიანის გაღვიძებისთვის.
ნაბიჯი 2: ნაწილები და ინსტრუმენტები
I. ელექტრონიკა:
ა. ინტეგრირებული და აქტიური კომპონენტები:
- 1 x ATMEGA328P - MCU
- 2 x HCMS2902 - AVAGO მონიტორები
- 1 x DS1302 - RTC
- 1 x 2N2222A - BJT (NPN)
ბ. პასიური კომპონენტები:
-
რეზისტორები:
- 5 x 10K
- 1 x 180R
- 2 x 100R
-
კონდენსატორები:
- 3 x 0.1uF
- 1 x 0.47uF
- 1 x 100uF
- 2 x 22pF
- 1 x 4 პინიანი RGB LED
- 1 x Buzzer
- 1 x 32.768KHz კრისტალი
C. კონექტორები:
- 1 x მიკრო USB კონექტორი
- 2 x 6 პინიანი სტანდარტული მოედანზე (100 მლ) კონექტორი.
- 2 x 4 პინიანი სტანდარტული მოედანზე (100 მლ) კონექტორი.
- 1 x მონეტების უჯრედის ბატარეა.
დ. სხვადასხვა:
- 3 x SPST Push-Button კონცენტრატორები
- 1 x 3V მონეტის უჯრედის ბატარეა.
E. სურვილისამებრ PSU:
- 1 x LM7805 - ხაზოვანი მარეგულირებელი
- 2 x 0.1uF Cap
- 2 x 100uF Cap
II მექანიკური:
- 1 x პლასტიკური დანართი
- 4 x რეზინის დანამატი
- 1 x პროტოტიპის შედუღების დაფა
- 1 x MCU სათაური (მიკროკონტროლის უკმარისობის შემთხვევაში)
- 2 x მცირე ზომის 8 მმ ჭანჭიკები
- 2 x 8 მმ საყელურები
III. ინსტრუმენტები და მასალები:
- შედუღების მავთულები
- შემცირება მილები
- შედუღების კალის
- გასაყიდი რკინა
- საჭრელი
- პლიერი
- პინცეტი
- საბურღი ბიტი
- მცირე ზომის ფაილი
- სხვადასხვა ხრახნები
- კალიპერი
- მულტიმეტრი
- პურის დაფა (სურვილისამებრ)
- მიკრო USB კაბელი
- საშუალო ზომის ფაილი
- ცხელი წებოს იარაღი
-
AVR ISP პროგრამისტი
IV. პროგრამირება:
- Atmel Studio 6.3 ან 7.0.
- ProgISP ან AVRDude
- Microsoft Excel (პერსონაჟების ჩვენების შესაქმნელად)
ნაბიჯი 3: სქემების აღწერა
მიკროსქემის მუშაობის გასაგებად, სქემატური ნაბიჯი დაყოფილია შვიდ ქვეჯგუფად. უნდა გაითვალისწინოთ, რომ სქემატურ გვერდზე განსაზღვრული წმინდა სახელები ასევე განსაზღვრავს კავშირს მოწყობილობის ცალკეულ ქვე სქემებს შორის.
ა. ძირითადი კომპონენტების დაფა:
როგორც უკვე აღვნიშნეთ, ყველა შესაბამისი ქვე-სქემა, რომლის ჩვენ გვინდა ვიყოთ მოწყობილობის შიგნით, მოთავსებულია ერთ მოჭრილ პროტოტიპ დაფაზე. მოდით გავაგრძელოთ განლაგებული ძირითადი სქემების ოპერაციის ახსნა:
1. მიკროკონტროლერის წრე:
MCU, რომელიც გამოიყენება ამ პროექტში არის ATMEGA328P. იგი იკვებება გარე 5V კვების ბლოკით, ამ შემთხვევაში - მიკრო USB კონექტორი. ყველა შესაბამისი I/O ქინძისთავები დაკავშირებულია დიზაინის მოთხოვნების შესაბამისად. პორტების I/O რუქების აღქმა ადვილია, ვინაიდან ყველა წმინდა სახელი განსაზღვრულია ზუსტად ისე, როგორც გამოყენებული იქნება პროგრამირების ეტაპზე. MCU– ს აქვს მარტივი RC გადატვირთვის სქემა, რომელიც გამოიყენება პროგრამირების თანმიმდევრობით და ენერგიის ინიციალიზაციით.
MCU– ს გადამწყვეტი ნაწილია პროგრამირების სქემა. არსებობს 6 პინიანი პროგრამირების კონექტორი - J5, დარწმუნდით, რომ VCC, GND და RESET ბადეები საერთოა გარე ISP პროგრამისტისა და ძირითადი კომპონენტების დაფისთვის.
2. რეალურ დროში საათის სქემა:
შემდეგი წრე არის პროექტის მთავარი პერიფერიული ნაწილი. DS1302 არის მუხტი დროის აღრიცხვის IC, რომელიც უზრუნველყოფს დამუშავებული დროის და თარიღის მნიშვნელობებს ჩვენს გადამამუშავებელ ერთეულს. DS1302 კომუნიკაციას ახდენს MCU– სთან 3 მავთულის ინტერფეისით, 3 მავთულის SPI კომუნიკაციის მსგავსად, შემდეგ ხაზებზე:
- RTC_SCK (გამომავალი): ახორციელებს მართვის და შერჩევის მონაცემებს, რომლებიც გადადის SDO ხაზზე.
- RTC_SDO (I/O): მონაცემთა მართვის ხაზი. მოქმედებს როგორც MCU– ს შეყვანის დრო/თარიღი მონაცემების მიღებისას და გამომავალი მონაცემების გადაცემისას (იხილეთ პროგრამირების ძირითადი ნაბიჯი შემდგომი ახსნისთვის).
- RTC_CE: (გამომავალი): მონაცემთა გადაცემის ჩართვის ხაზი. როდესაც დაყენებულია მაღალი MCU– ით, მონაცემები მზად არის გადასაცემად/მისაღებად.
DS1302 მოითხოვს გარე 32.768KHz ბროლის ოსცილატორს ადექვატური წრიული ქცევისთვის. მიკროსქემის დათვლის სისტემაზე დიდი დრიფტის თავიდან ასაცილებლად (დრიფტის ფენომენები ამ ტიპის ინტეგრირებულ სქემებში უბრალოდ გარდაუვალია), საჭიროა თითოეულ კრისტალურ პინზე განთავსდეს ორი კალიბრაციული კონდენსატორი (იხ. ნაწილები X1, C8 და C9 სქემატში). 22pF იყო ოპტიმალური მნიშვნელობები ამ პროექტში დროის შენარჩუნების მრავალი ექსპერიმენტის შემდეგ, ასე რომ, როდესაც თქვენ აპირებთ მთლიანად შეაერთოთ წრე, დარწმუნდით, რომ არსებობს შესაძლებლობა შეცვალოთ ეს კონდენსატორები სხვა მნიშვნელობებით. მაგრამ 22pF მცირე ზომის დაფისთვის საკმაოდ კარგად მუშაობდა ძალიან მცირე დრიფტისთვის (თვეში 7 წამი).
ბოლო, მაგრამ არანაკლებ კომპონენტი ამ წრეში-3V მონეტა-უჯრედის ბატარეა უნდა განთავსდეს დაფაზე, რათა უზრუნველყოს საკმარისი ენერგია DS1302 IC- ზე, ასე რომ ის გააგრძელებს დროის დათვლის ოპერაციას.
4. 8 სიმბოლო LED მატრიცა:
მოწყობილობის ჩვენება ემყარება 2 x 4 სიმბოლოს LED მატრიცის ჩვენების IC- ებს, დაპროგრამებულია 3 მავთულის ინტერფეისით, RTC მიკროსქემის DS1302- ის მსგავსი, ერთი განსხვავებით, რომ მონაცემთა მომწოდებელი ხაზი (SDI) განისაზღვრება როგორც MCU გამომავალი (თუ არ გსურთ დამატება სტატუსის შემოწმების უნარი თქვენს ეკრანზე). ეკრანები გაერთიანებულია სერიის 3-Wire გაფართოებით, ამრიგად ორივე IC მოქმედებს როგორც ერთი ჩვენების მოწყობილობა, სადაც არის მისი პროგრამირების შესაძლებლობა ყველა ჩვენების სიმბოლოების განსაზღვრისათვის (იხილეთ SPI სერიის კომბინაცია). სქემის ყველა წმინდა სახელი ემთხვევა MCU შესაბამის კავშირებს - გაითვალისწინეთ, რომ არსებობს საერთო ბადეები, რომლებიც ამყარებენ კომუნიკაციას ჩვენებებს შორის და არ არის საჭირო ორივე ეკრანის კომუნიკაციის ინტერფეისის დაკავშირება MCU– სთან. პროგრამირება და პერსონაჟების შემუშავების თანმიმდევრობა განისაზღვრება შემდგომ საფეხურებში.5. მომხმარებლის ინტერფეისის წრე:
მომხმარებლის ინტერფეისი დაყოფილია ორ ქვეჯგუფად-შეყვანის და გამომავალი სისტემები: შეყვანის სისტემა: მოწყობილობამ თავად უზრუნველყო მომხმარებლის შეყვანა, რომელიც განსაზღვრულია სამი SPST ღილაკის გადამრთველით, დამატებითი გამწევ რეზისტენტებით, განსაზღვრული ლოგიკის მართვისთვის მაღალი ან დაბალი MCU. ეს გადამრთველები უზრუნველყოფენ კონტროლის სისტემას მთელი დაპროგრამებული ალგორითმისთვის, ვინაიდან საჭიროა დროის/თარიღის მნიშვნელობების, მენიუს კონტროლის და ა.შ.
6. გამოყვანის სისტემა:
A. Buzzer circuit უზრუნველყოფს ხმის გამოსვლას ორივე სახელმწიფოში, მენიუს გადართვა აღიარებს ხმის და განგაშის ალგორითმს. NPN ტრანზისტორი გამოიყენება როგორც გადამრთველი, რომელიც აწვდის საკმარის დენს ზუმერს, რაც მას ჟღერს სათანადო გამძლეობით. Buzzer კონტროლდება პირდაპირ MCU– ის პროგრამული უზრუნველყოფით. B. RGB LED გამოიყენება როგორც მოწყობილობის განათების ნაწილი. ის კონტროლდება უშუალოდ MCU– ს მიერ, შუქის არჩევის ოთხი ვარიანტით: წითელი, მწვანე, ლურჯი, ლურჯი, PWM ან გამორთული რეჟიმები. გაითვალისწინეთ, რომ რეზისტორებს, რომლებიც სერიულად უკავშირდება LED R, G და B ქინძისთავებს, აქვთ განსხვავებული მნიშვნელობები, რადგან თითოეულ ფერს აქვს განსხვავებული ინტენსივობა მუდმივ დენზე. მწვანე და ლურჯი LED- ებისთვის არის იგივე მახასიათებლები, როდესაც წითელს აქვს ოდნავ უფრო დიდი ინტენსივობა. ამდენად წითელი LED უკავშირდება უფრო დიდ წინააღმდეგობის მნიშვნელობას - ამ შემთხვევაში: 180Ohm (იხ. RGB LED განმარტება).7. კონექტორები:
კონექტორები მოთავსებულია მთავარ დაფაზე, რათა შესაძლებელი გახდეს გარე ინტერფეისის კომპონენტებს შორის კავშირის დამყარება, როგორიცაა: ეკრანი, RGB LED, დენის შეყვანის და ღილაკზე გადამრთველები და მთავარი დაფა. თითოეული კონექტორი ეძღვნება სხვადასხვა წრეს, შესაბამისად მოწყობილობის შეკრების სირთულე მკვეთრად ეცემა. როგორც სქემატურ სურათებში ხედავთ, თითოეული კონექტორის ბადის წესრიგი არჩევითია და მისი შეცვლა შესაძლებელია, თუ გაყვანილობის პროცესს ბევრად გაამარტივებს. მას შემდეგ, რაც ჩვენ განვიხილავთ ყველა სქემატურ კონცეფციას, მოდით გავაგრძელოთ შემდეგი ნაბიჯი.
ნაბიჯი 4: შედუღება
ალბათ ზოგიერთი ჩვენგანისთვის ეს არის ყველაზე რთული ნაბიჯი მთელ პროექტში. იმისათვის, რომ ბევრად უფრო გაადვილდეს მოწყობილობის მუშაობა რაც შეიძლება მალე, შედუღების პროცესი უნდა დასრულდეს შემდეგი თანმიმდევრობით:
1. MCU და პროგრამირების კონექტორი: მიზანშეწონილია შეავსოთ 28 პინიანი სათაური MCU– ს ნაცვლად, რათა წარუმატებლობის შემთხვევაში შეძლოთ MCU IC– ის ჩანაცვლება. დარწმუნდით, რომ მოწყობილობას შეუძლია პროგრამირება და ჩართვა. მიზანშეწონილია პროგრამის კონექტორზე განათავსოთ პინის აღწერის სტიკერი (იხილეთ მესამე სურათი).
2. RTC ჩართვა: ყველა საჭირო ნაწილის შედუღების შემდეგ, დარწმუნდით, რომ კონდენსატორების დაკალიბრება ადვილია შესაცვლელი. თუ გსურთ გამოიყენოთ 3V მონეტის ელემენტის ბატარეა - დარწმუნდით, რომ ის შეესაბამება მოწყობილობის გარსაცმის ზომებს.
3. ჩვენება: ორი ჩვენების IC უნდა იყოს შეკრული ცალკე მცირე ზომის დაფაზე (სურათი 1). ყველა საჭირო ბადის შედუღების შემდეგ, საჭიროა გამზადებული მავთულის მომზადება (სურათი 4): ეს მავთულები უნდა იყოს შეკრული და გაყვანილი ეკრანის გვერდზე, გაითვალისწინეთ, რომ დაძაბულობა და მექანიკური სტრესი მავთულხლართებზე არ იქნება იმოქმედებს solder სახსრების ჩვენების დაფაზე.
4. წინა საფეხურის მავთულხლართებზე უნდა იყოს განთავსებული ეტიკეტის სტიკერები - რაც შემდგომ საფეხურზე შეკრების პროცესს ბევრად გაადვილებს. არჩევითი ნაბიჯი: დაამატეთ მამრობითი ერთჯერადი კონექტორი თითოეულ მავთულს (არდუინოს სტილი).
5. შეაერთეთ დარჩენილი კონექტორები მთავარ დაფაზე, მათ შორის პერიფერიული კომპონენტები. კიდევ ერთხელ, მიზანშეწონილია სტიკერების განთავსება თითოეული აღმაშენებლისთვის pin აღწერილობით.
6. ბუზერის წრე: ზუზერი მდებარეობს მოწყობილობის შიგნით, ამიტომ ის უნდა იყოს შეკრული მთავარ დაფაზე, არ არის საჭირო ერთმანეთთან დამაკავშირებელი კონექტორი.
7. RGB LED: ძირითადი დაფის სივრცის დაზოგვის მიზნით, მე შევაერთე სერიის რეზისტორები LED ქინძისთავებზე, სადაც თითოეული რეზისტორი შეესაბამება მის შესაბამის ფერს და შესაბამის MCU პინს (სურათი 5).
ნაბიჯი 5: შეკრება
ეს ნაბიჯი განსაზღვრავს პროექტის გარეგნობას - ელექტრო და მექანიკურ. თუ ყველა რეკომენდაცია იქნა გათვალისწინებული, შეკრების პროცესი ძალიან ადვილი შესასრულებელი ხდება. შემდეგი ნაბიჯ-ნაბიჯ თანმიმდევრობა იძლევა სრულ ინფორმაციას პროცესის შესახებ:
ნაწილი A: დანართი
1. გაბურღეთ სამი ხვრელი, ღილაკის ღილაკის დიამეტრის მიხედვით (ამ შემთხვევაში 3 მმ).2. გაბურღეთ ერთი ზუზუნისადმი მიძღვნილი ხვრელი შიგთავსის მხარეს. ნებისმიერი სასურველი საბურღი დიამეტრის გამოყენება შესაძლებელია.3. გაბურღეთ პატარა ხვრელი, როგორც დაფქვის საფუძველი USB კონექტორის მიხედვით, რომელიც უნდა გამოიყენოთ (ამ შემთხვევაში მიკრო USB). ამის შემდეგ, შეასრულეთ სახეხი მცირე ზომის ფაილით, შესატყვისი კონექტორის ზომებისთვის. გაბურღეთ შედარებით დიდი ხვრელი, როგორც დაფქვის საფუძველი. შეასრულეთ სახეხი საშუალო ზომის ფაილით, ჩვენების ზომების მიხედვით. დარწმუნდით, რომ ჩვენების IC– ები წარმოდგენილია გარსაცმის გარე მხარეს. საბურღი საშუალო ზომის ხვრელი მოწყობილობის ქვედა ნაწილში, RGB LED დიამეტრის მიხედვით. ნაწილი B - დანართები:
1. შეაერთეთ ორი მავთული თითოეულ სამ ღილაკზე (GND და სიგნალი). რეკომენდირებულია ეტიკეტის სტიკერები და ერთი პინიანი კონექტორები მავთულხლართებზე. მიამაგრეთ ოთხი მომზადებული მავთული RGB LED ქინძისთავებზე. მოათავსეთ ეტიკეტის სტიკერები და შეკუმშვის მილები შედუღების სახსრებზე.3. მიამაგრეთ ოთხი რეზინის ფეხი მოწყობილობის ბოლოში. ნაწილი C - ნაწილების დაკავშირება:
1. განათავსეთ RGB LED დანართის ბოლოში, დაუკავშირეთ იგი მთავარ დაფაზე გამოყოფილ კონექტორთან. მიამაგრეთ ცხელი წებოთი.2. მოათავსეთ სამი ღილაკის გადამრთველი, დააკავშირეთ ისინი მთავარ დაფაზე გამოყოფილ კონექტორთან, მიამაგრეთ ცხელი წებოთი. მოათავსეთ USB კონექტორი, შეაერთეთ იგი პროგრამირების კონექტორის კვების ბლოკთან (VCC და GND). დარწმუნდით, რომ ელექტროენერგიის მიწოდების ხაზების პოლარობა ემთხვევა შედუღებულ ნაწილებს. მიამაგრეთ იგი ცხელი წებოთი.4. მოათავსეთ ჩვენების დაფა, დააკავშირეთ იგი გამოყოფილ კონექტორთან. მიამაგრეთ ცხელი წებოთი. შენიშვნები:
1. მიზანშეწონილია დაამატოთ ჭანჭიკი-თხილის წყვილი ძირითად დაფაზე და ზედა საფარში (როგორც ეს ნაჩვენებია ამ შემთხვევაში).2. იმისათვის, რომ თავიდან იქნას აცილებული გატეხილი მავთულები, მხედველობაში მიიღება ისინი გარეგნობის შიგნით.
ნაბიჯი 6: მოკლე პროგრამირების შესავალი
მას შემდეგ, რაც ყველა ნაწილი გაიყიდება, რეკომენდებულია მოწყობილობის პირველადი ტესტირების ჩატარება შეკრების საბოლოო საფეხურზე გადასვლამდე. MCU კოდი დაწერილია C და ATMEGA328P დაპროგრამებულია ნებისმიერი ISP პროგრამისტის საშუალებით (არსებობს სხვადასხვა ტიპის Atmel პროგრამირების მოწყობილობები: AVR MKII, AVR DRAGON და ა.შ. - მე გამოვიყენე იაფი USB ISP პროგრამისტი eBay– დან, რომელსაც აკონტროლებს ProgISP ან AVRDude პროგრამული უზრუნველყოფა). პროგრამირების გარემო უნდა იყოს Atmel Studio 4 და ზემოთ (მე გირჩევთ პროგრამული უზრუნველყოფის უახლეს ვერსიებს). თუ გარე, არა Atmel Studio– ს თანდაყოლილი პროგრამისტი გამოიყენება, საჭიროა. Hex ფაილის ბილიკი მიანიჭოთ პროგრამირების პროგრამულ უზრუნველყოფას (ჩვეულებრივ მდებარეობს პროექტის გამართვის ან გამოშვების საქაღალდეში). დარწმუნდით, რომ ასამბლეის საფეხურზე გადასვლამდე მოწყობილობის დაპროგრამება შესაძლებელია და ნებისმიერი ძირითადი AVR გამოყოფილი პროექტის აგება და შედგენის პროცესი ემყარება ATMEGA328P მიკროკონტროლერს (იხილეთ Atmel Studio– ს სახელმძღვანელო).
ნაბიჯი 7: კოდის აღწერა
დექსის კოდის ალგორითმი ორ ფენად იყოფა: 1. ძირითადი ფენა: ურთიერთობა პერიფერიულ სქემებთან, მოწყობილობის ოპერაციების განსაზღვრა, ინიციალიზაცია და კომპონენტის დეკლარაციები.2. ინტერფეისის ფენა: მომხმარებელი-მოწყობილობის ურთიერთქმედება, მენიუს ფუნქციონირება, საათი/ზარი/ფერი/სიგნალიზაცია. პროგრამის თანმიმდევრობა აღწერილია სურათზე. 1, სადაც თითოეული ბლოკი შეესაბამება MCU მდგომარეობას. აღწერილი პროგრამა მოქმედებს როგორც ძირითადი "ოპერაციული სისტემა", რომელიც უზრუნველყოფს ინტერფეისს ტექნიკასა და გარე სამყაროს შორის. შემდეგი ახსნა აღწერს პროგრამის არსებით ნაწილს ნაწილების მიხედვით: ნაწილი A: ძირითადი ფენა:
1. MCU I/O ინიციალიზაცია: უპირველეს ყოვლისა, საჭიროა აპარატურის კომპონენტების ინიციალიზაცია:- კოდით გამოყენებული მუდმივები.- პორტები I/O- ინტერფეისი.- პერიფერიული საკომუნიკაციო დეკლარაციები.
2. ძირითადი ზოგადი ფუნქციები: ზოგიერთი ფუნქცია გამოიყენება ცალკე კოდის ბლოკებით, განსაზღვრავს ოპერაციებს ქინძისთავებზე, რომლებსაც აკონტროლებს პროგრამული უზრუნველყოფა:- ჩართეთ/გამორთეთ RTC და აჩვენეთ დაფის კომუნიკაცია. up/Clock down ფუნქციები.- ჩვენების სიმბოლოების შექმნის ფუნქციები. პერიფერიული ინიციალიზაცია: I/O პორტების კონფიგურაციის შემდეგ ხდება სქემების ფუნქციების განსაზღვრა. დასრულებისთანავე - MCU იწყებს RTC– ის ინიციალიზაციას და სქემების ჩვენებას ზემოთ განსაზღვრული ფუნქციების გამოყენებით.
4. ძირითადი ფუნქციების განმარტება: ამ ეტაპზე მოწყობილობა დაყენებულია და მზად არის განახორციელოს კომუნიკაცია ზოგიერთ პერიფერიულ სქემასთან. ეს ფუნქციები განსაზღვრავს:- გადართვა გადართვა კონტროლს- RGB LED ოპერაცია (განსაკუთრებით PWM)- ბუზერის კვადრატული ტალღის გენერატორი
5. ჩვენების ფუნქციები: მე ინტერნეტში ბევრი ვერ ვიპოვე HSMS IC– ების შესახებ, რაც მე გამოვიყენე, ამიტომ მისი ბიბლიოთეკა მე თვითონ დავწერე. ეკრანის ფუნქციები უზრუნველყოფს ფუნქციონალური გამოსახულების სრულ გამოსახულებას, მათ შორის ASCII სიმბოლოების და ნებისმიერი მთელი რიცხვის ჩვენებას. ფუნქციები იწერება განზოგადებული ფორმით, ასე რომ, თუ საჭიროა კოდის ნებისმიერი ნაწილიდან გამოძახებული ფუნქციების გამოძახება, მათი გამოყენება ადვილია, ვინაიდან ისინი განზოგადებულია ოპერაციით (მაგალითად: სიმებიანი ჩვენება, ერთი სიმბოლოების ჩვენება და ა.შ.).
6. RTC ოპერაციის ფუნქციები: ყველა RTC ფუნქცია დაწერილია განზოგადებული ფორმით (ეკრანის ფუნქციების მსგავსი) DS1302 IC ოპერაციის შესაბამისად. კოდი ეფუძნება წერილობით ბიბლიოთეკას, რომელიც ხელმისაწვდომია მრავალი ვარიაციით gitHub– ზე. როგორც ხედავთ საბოლოო კოდში, ჩვენების და RTC ფუნქციების კომპლექტი შედის ცალკეულ.c და.h ფაილებში. ნაწილი B - ინტერფეისის ფენა:
1. ძირითადი ფუნქცია: void main () განყოფილებაში არის ყველა ძირითადი ინიციალიზაციის ფუნქციის დეკლარაცია. ყველა კომპონენტის ინიციალიზაციისთანავე, MCU შემოდის უსასრულო მარყუჟში, სადაც მოწყობილობის ფუნქციონირებას აკონტროლებს მომხმარებელი.
2. რეალურ დროში გადამრთველები, განათება და ეკრანის კონტროლი: უსასრულო მარყუჟში გაშვებისას, MCU ახორციელებს განახლებას მოწყობილობის თითოეულ ნაწილზე. ის ირჩევს რა მონაცემების ჩვენებას, რომელი ღილაკია დაჭერილი და რომელი განათების რეჟიმია არჩეული.
3. მომხმარებლის მენიუს ფუნქციები: ამ ფუნქციებს აქვთ ხის მსგავსი ფორმა (იხ. სურათი X), სადაც მენიუს სისტემა და იერარქია განსაზღვრულია როგორც სახელმწიფო მანქანა. თითოეული სახელმწიფო მანქანა კონტროლდება მომხმარებლის შეყვანის საშუალებით - ღილაკზე გადადის, შესაბამისად შესაბამისი ღილაკის დაჭერისას - სახელმწიფო მანქანა შეცვლის მის მნიშვნელობას. ის შექმნილია ისე, რომ მენიუში შესრულებული მოწყობილობის ნებისმიერი ცვლილება მყისიერად შეიცვალოს.
4მომხმარებლის მენიუს გადართვა: მომხმარებლის შეყვანისას, მენიუს მდგომარეობამ უნდა შეცვალოს თავისი მდგომარეობა. ამრიგად, ეს ფუნქციები უზრუნველყოფს მომხმარებელზე დამოკიდებულ კონტროლს სახელმწიფო აპარატზე. ამ კონკრეტულ შემთხვევაში: შემდეგი, წინა და კარგი.
ნაბიჯი 8: საბოლოო კოდი და სასარგებლო ფაილები
და ეს არის ის! ამ ნაბიჯში თქვენ შეგიძლიათ იპოვოთ ყველა ფაილი, რაც შეიძლება დაგჭირდეთ:- ელექტრო სქემა- სრული კოდის ჩვენება პერსონაჟების შემქმნელი სურვილისამებრ: არსებობს სხვადასხვა სიმბოლოები, რომლებიც ხელმისაწვდომია ეკრანის ICs ბიბლიოთეკაში გამოსაჩენად, მაგრამ ზოგი არ შედის რა თუ გსურთ პერსონაჟების შექმნა საკუთარი ხელით, დაამატეთ კაზუს მდგომარეობა ASCII მითითებით Print_Character ('') ფუნქციაში (იხილეთ display.c ფუნქციები). ვიმედოვნებ, რომ ეს ინსტრუქციულად სასარგებლო აღმოჩნდება:) მადლობა კითხვისთვის!
გირჩევთ:
მექანიკური შვიდი სეგმენტის ჩვენების საათი: 7 ნაბიჯი (სურათებით)
მექანიკური შვიდი სეგმენტის ჩვენების საათი: რამდენიმე თვის წინ მე ავაშენე ორნიშნა მექანიკური 7 სეგმენტიანი დისპლეი, რომელიც გადავაქციე ათვლის ტაიმრად. ის საკმაოდ კარგად გამოვიდა და ბევრმა ადამიანმა შესთავაზა გაორმაგება ეკრანზე საათის შესაქმნელად. პრობლემა ის იყო, რომ მე უკვე გარბოდა
ESP8266 LED მატრიცის საათი: 8 ნაბიჯი (სურათებით)
ESP8266 LED მატრიცის საათი: ESP8266 LED მატრიქსის საათი მარტივი LED მატრიცის საათი, რომელიც დაფუძნებულია პოპულარულ ESP8266– ზე რეალური დროის საათის მოდულთან და დროის სინქრონიზაციას WiFi– ზე NTP სერვერიდან. სიახლე! ასევე ხელმისაწვდომია ESP32 ვერსია
ციფრული საათი Arduino და Led Dot Matrix ჩვენების გამოყენებით: 6 ნაბიჯი
ციფრული საათი Arduino და Led Dot Matrix ჩვენების გამოყენებით: დღესდღეობით, შემქმნელები, დეველოპერები ამჯობინებენ Arduino– ს პროექტების პროტოტიპების სწრაფი განვითარებისათვის. Arduino არის ღია კოდის ელექტრონიკის პლატფორმა, რომელიც დაფუძნებულია ადვილად გამოსაყენებელ აპარატურასა და პროგრამულ უზრუნველყოფაზე. Arduino– ს აქვს ძალიან კარგი მომხმარებლის საზოგადოება. ამ პროექტში
ტარების LED მატრიცის ჩვენების ნიშანი: 8 ნაბიჯი (სურათებით)
ტარების LED მატრიცის ჩვენების სამკერდე ნიშანი: თქვენ ატარებთ ღონისძიებას, კონკურსს ან თუნდაც მასპინძლობთ დაბადების დღეზე? სამკერდე ნიშნები მრავალმხრივი ელემენტია, რომელსაც შეუძლია გაცნობა და დღესასწაულები გაცილებით ადვილი გახადოს. თქვენ არასოდეს დაიწყებდით საუბარს " გამარჯობა, მე მქვია .. ……….. " ს
ჩვენების ტემპერატურა P10 LED ჩვენების მოდულზე Arduino– ს გამოყენებით: 3 ნაბიჯი (სურათებით)
ტემპერატურის ჩვენება P10 LED ჩვენების მოდულზე Arduino– ს გამოყენებით: წინა გაკვეთილში ნათქვამია, თუ როგორ უნდა აჩვენოთ ტექსტი Dot Matrix LED Display P10 მოდულში Arduino და DMD კონექტორის გამოყენებით, რომლის შემოწმება შეგიძლიათ აქ. ამ გაკვეთილში ჩვენ მოგცემთ მარტივ პროექტის გაკვეთილს P10 მოდულის გამოყენებით, როგორც ჩვენების მედიცინა