Სარჩევი:

მინიდოტი 2 - ჰოლოლოკი: 6 ნაბიჯი
მინიდოტი 2 - ჰოლოლოკი: 6 ნაბიჯი

ვიდეო: მინიდოტი 2 - ჰოლოლოკი: 6 ნაბიჯი

ვიდეო: მინიდოტი 2 - ჰოლოლოკი: 6 ნაბიჯი
ვიდეო: Rate mom’s flexibility 1-10 ❤️‍🔥🔥🦴 2024, ნოემბერი
Anonim
მინიდოტი 2 - ჰოლოლოკი
მინიდოტი 2 - ჰოლოლოკი
მინიდოტი 2 - ჰოლოლოკი
მინიდოტი 2 - ჰოლოლოკი

ალბათ ჰოლოლოკი არის ცოტა არაზუსტი…. ის იყენებს ჰოლოგრაფიულ დისპერსიულ ფილმს წინა მხარეს, რათა ცოტა სიღრმე მისცეს. ძირითადად ეს ინსტრუქცია არის განახლება ჩემი წინა Minidot– ის აქ, რომელიც მდებარეობს აქ: https://www.instructables.com/id /EEGLXQCSKIEP2876EE/და ხელახლა ვიყენებ ბევრ კოდს და სქემას ჩემი Microdot– დან აქ: https://www.instructables.com/id/EWM2OIT78OERWHR38Z/EagleCAD ფაილები და Sourceboost კოდი ჩართულია zip ფაილებში. რატომ? წინა Minidot იყო ზედმეტად რთული, Microdot– დან ვისწავლე როგორ გავაკეთო RTC PIC– ზე მხოლოდ 32.768 ბროლის გამოყენებით და არ მჭირდება სპეციალური RTC ჩიპის გამოყენება. ასევე მინდოდა მოვიშორო ეკრანის ჩიპები წინა Minidot– დან. ასე რომ, ახლა არის მხოლოდ დენის მარეგულირებელი ჩიპი და PIC16F88…. მხოლოდ ორი ჩიპი. განახლების სხვა მიზეზები იყო ის, რომ ჩემი Minidot იყო ოდნავ არასაიმედო ცალკეული გადართვის დაფის გამო და მინდოდა რბილი ქრებოდა წერტილოვან შაბლონებს შორის ასევე გარემოს შუქის სენსორი ღამით ეკრანის დაბინდვის მიზნით. მეორე Minidot იყო დაფიქსირებული სიკაშკაშე და განათებული ოთახი ღამით. მოწყობილობა აშენდა EagleCad პროგრამული პაკეტისა და Sourceboost შემდგენლის დახმარებით. თქვენ დაგჭირდებათ გარკვეული გამოცდილება ელექტრონიკაში და PIC კონტროლერების პროგრამირებაში ამ პროექტის დასაწყებად. გთხოვთ გაითვალისწინოთ, რომ ეს არ არის სასწავლო ელექტრონიკის ან PIC პროგრამირების საკითხებში, ასე რომ გთხოვთ შეინახეთ Miniclock დიზაინის შესაბამისი კითხვები. მიმართეთ ზემოთ მოცემულ ინსტრუქციებს ან ამ საიტის სხვა ბევრ ინსტრუქციას EagleCad– ის ან პროგრამირების PIC– ების გამოყენების შესახებ რჩევისთვის. ასე რომ, აქ არის…..მინიდოტი 2, ჰოლოლოკი …… ან მინიდოტი შემდეგი თაობა ………….

ნაბიჯი 1: წრე

წრე
წრე
წრე
წრე
წრე
წრე

ეს წრე ძალიან ჰგავს Microdot– ს. შენიშვნა charlieplex მასივი პრაქტიკულად იდენტურია … მხოლოდ რამდენიმე ქინძისთავები არის გადატანილი.

Microdot მიკროსქემს დაემატა 20Mhz კრისტალი, რომელიც PIC– ს უფრო სწრაფად აკრიფებს, რაც მასივის უფრო სწრაფად სკანირების საშუალებას იძლევა და დაბნელების ალგორითმის განხორციელების საშუალებას იძლევა. ჩამუქების ალგორითმი ძალიან მნიშვნელოვანი იყო იმისთვის, რომ ჯვრის ნიმუში გამქრალიყო და გარემოს შუქის ფუნქცია ემუშავა. Microdot– ით ეს შეუძლებელი იქნებოდა, საათის ნელი სიჩქარის გამო, რადგან სკანირების ზოგიერთი ციკლი საჭიროებდა დაბნელებას. იხილეთ მომდევნო ნაწილი დაბნელების ფუნქციის აღწერისთვის. სხვა საკითხები, რომლებიც უნდა აღინიშნოს, არის MCP1252 დამუხტვის ტუმბოს მარეგულირებლის გამოყენება 5V, ჩემი საყვარელი ჩიპის მომწოდებლად. თუ თქვენ შეცვლით მიკროსქემს, შეგიძლიათ გამოიყენოთ ჩვეულებრივი ძველი 7805 …… მე მხოლოდ რამდენიმე მოსახერხებელი ჩიპი მაქვს ჩამოკიდებული. მე ახლა გადავიყვანე კონცენტრატორები წინ, ზოგავს ძაბვას საათის უკან, ენერგიის შეწყვეტის შემდეგ დროის გადატვირთვისთვის და ახლა ყველაფერი მხოლოდ ერთი PCB…. არ არის საკაბელო პრობლემები. ასევე აღსანიშნავია LDR- ის ჩართვა. ეს გამოიყენება ძაბვის გამყოფში, რომელიც იგრძნობა PIC– ზე A/D pin– ით. როდესაც PIC გრძნობს, რომ გარე განათების დონე დაბალია (ანუ ღამის საათები) დაბინდვის ალგორითმი შარლიპლექსის მასივს უფრო მუქად ინარჩუნებს ვიდრე ციკლის სინათლის მაღალი დონე. Eaglecad ბიბლიოთეკაში ვერ ვიპოვე LDR სიმბოლო, ასე რომ, მე მხოლოდ LED სიმბოლო გამოვიყენე ….. ნუ მოგატყუებთ, ეს არის LDR. იხილეთ PCB– ის რეალური სურათი ქვემოთ. შარლიპლექსის მასივში მრავალფუნქციური ფერადი LED- ების გამოყენებისას უნდა აღინიშნოს ერთი რამ. თქვენ უნდა დარწმუნდეთ, რომ LED- ების წინა ძაბვა მეტნაკლებად იგივეა. თუ არა, მაშინ შეიძლება მოხდეს მაწანწალა მიმდინარე ბილიკები და მრავალი LED განათდება. ამრიგად, ამ კონფიგურაციისთვის 5 მმ ან მეტი სიმძლავრის LED- ების გამოყენება არ იმუშავებს, რადგან, როგორც წესი, საკმაოდ დიდი განსხვავებაა მწვანე/ლურჯ LED- ებსა და წითელ/ყვითელ LED- ებს შორის. ამ შემთხვევაში მე გამოვიყენე 1206 SMD led და განსაკუთრებით მაღალი ეფექტურობის მწვანე/ლურჯი LED- ები. თუმცა წინა ძაბვები აქ არ იყო პრობლემა. თუ თქვენ გინდათ გამოიყენოთ მწვანე/ლურჯი და წითელი/ყვითელი უმაღლესი სიმძლავრის LED- ები შარლიპლექსის მასივში, დაგჭირდებათ სხვადასხვა ფერის გამოყოფა ორ შარლიპლექსის მასივში. არსებობს უამრავი ახსნა ჩარლიპლექსის შესახებ, რომლის გუგლში ჩაწერაც შემიძლია …… აქ დეტალებში არ შევალ. მე დაგტოვებთ თქვენ რაიმე კვლევის ჩატარებას. (დააწკაპუნეთ პატარა 'i' ხატზე ქვემოთ სურათის კუთხეში უფრო დიდი ვერსიის სანახავად)

ნაბიჯი 2: დაბინდვის ალგორითმი - შარლიპლექსური პულსის სიგანის მოდულაცია

დაბინდვის ალგორითმი - შარლიპლექსური პულსის სიგანის მოდულაცია
დაბინდვის ალგორითმი - შარლიპლექსური პულსის სიგანის მოდულაცია

როგორც უკვე აღვნიშნეთ, მე მინდოდა, რომ დროთა განმავლობაში განსხვავებული წერტილების შაბლონები შეუფერხებლად გამქრალიყო და არა ერთი ნიმუშიდან მეორეზე. იხილეთ ვიდეო სადემონსტრაციოდ. შუაგულში არის ახალი მინიდოტის საათი, მარჯვნივ არის ძველი მინიდოტი. დააკვირდით რამდენად ლამაზია ახალი. (FYI სხვა ეკრანები ფონზე არის ჩემი Minicray სუპერკომპიუტერის სტატუსი და ჩემი დაჭერილი ნებულონის ნაწილაკი, რომელიც Minicray- ს აძლიერებს ანტიმატერიის მაგნიტური შეზღუდვის ველში. იხილეთ აქ: https://www.youtube.com/watch? V = bRupDulR4ME დემონსტრაციისთვის ნებულის ჩაკეტვის პალატის) თუ გადახედავთ კოდს, გახსენით display.c ფაილი. გაითვალისწინეთ, რომ არსებობს ოთხი მასივი tris/port მნიშვნელობების გამოსახატავად რაიმე კონკრეტული მასივის გასანათებლად და ორი მასივი (ერთი მეტი ვიდრე Microdot კოდი) იმის დასადგენად, რომელი LED- ები უნდა იყოს განათებული LED– ების რომელიმე კონკრეტული ნიმუშისთვის. მაგ:

// LED1 LED2 LED3… ხელმოუწერელი char LEDS_PORTA [31] = {0x10, 0x00, 0x00,… ხელმოუწერელი char LEDS_TRISA [31] = {0xef, 0xff, 0xff,… ხელმოუწერელი charS LEDS_PORTB [31] = {0x00, 0x02, 0x04, … ხელმოუწერელი char LEDS_TRISB [31] = {0xfd, 0xf9, 0xf9,… ხელმოუწერელი char nLedsA [30]; ხელმოუწერელი char nLedsB [30];მაგალითად, LED1- ის გასანათებლად, თქვენ უნდა დააყენოთ TRIS რეგისტრები TRISA: B = 0xef: 0xfd და PORT რეგისტრები PORTA: B = 0x10: 0x00 და ასე შემდეგ. თუ თქვენ დაწერთ tris მნიშვნელობებს ორობითი სახით, თქვენ შეამჩნევთ, რომ ნებისმიერ დროს, მხოლოდ ორი გამოსავალია ჩართული. დანარჩენები დაყენებულია სამ სახელმწიფოს (შესაბამისად TRIS რეგისტრი). ეს არის ცენტრალური ჩარლიპლექსი. თქვენ ასევე შეამჩნევთ, რომ ერთი გამომავალი ყოველთვის არის ლოგიკური '1' და მეორე ყოველთვის ლოგიკური '0'…. რომლის მიმართულებაც ჩართულია რომელი LED არის ამ ორ გამომავალ ხაზს შორის. ბოლო მნიშვნელობა პორტში/tris მასივები არის null მნიშვნელობა, რომ საერთოდ არ ჩართოთ LED. Microdot– ში update_display ფუნქცია განუწყვეტლივ ციკლდება სხვა მასივის საშუალებით (nLeds ) იმის გასარკვევად, რომ კონკრეტული LED უნდა იყოს განათებული. თუ ეს იყო, მაშინ შესაბამისი tris/port მნიშვნელობები დადგენილია და LED განათებულია გარკვეული პერიოდის განმავლობაში. წინააღმდეგ შემთხვევაში, ნულოვანი მნიშვნელობა გადაეგზავნა PICs TRIS/PORT რეგისტრებს და LED არ იყო განათებული გარკვეული პერიოდის განმავლობაში. როდესაც საკმარისად სწრაფად გაკეთდა, ეს მისცა ნიმუში. პროგრამის დანარჩენი ნაწილი პერიოდულად წაიკითხავდა RTC მნიშვნელობებს და ქმნიდა მშვენიერ შემთხვევით ნიმუშს ამ მასივში…. და ასე შეიცვალა ეკრანი. დაბინდვის ფუნქციის შესასრულებლად, ეს ოდნავ გაფართოვდა ისე, რომ 30 LED- ის ან განათების შემდეგ (ან არა) მაშინ დამატებითი პერიოდები დაიხარჯება null მნიშვნელობების გაგზავნაზე, თუ ეკრანი დაბნელდება….. სრული სიკაშკაშისათვის, დამატებითი პერიოდები არ დაიხარჯება. როდესაც განმეორდება, თუ განათებული LED- ები იქნება ბევრი ნული პერიოდი, ეკრანი დაბნელდება. ფაქტობრივად, ეს არის მულტიპლექსური პულსის სიგანის მოდულაცია….. ან იმიტომ, რომ აპარატურა არის კონფიგურირებული ჩარლიპლექსის მასივში, შემდეგ ჩარლიპლექსიანი პულსის სიგანის მოდულაცია. ქვემოთ მოცემული მეორე დიაგრამა აჩვენებს ამის ძირითად კონფიგურაციას. მე ამას სკანირების ჩარჩოს ვუწოდებ. ჩარჩოს პირველი 30 პერიოდი გამოიყენება LED- ების გასავლელად … და დამატებითი პერიოდების ცვლადი რაოდენობა განსაზღვრავს რამდენად დაბინდული იქნება ეკრანი. ეს ციკლი მეორდება. მეტი ნულოვანი პერიოდი ნიშნავს ნაკლებ დროს LED- ის ჩართვაზე ერთ ჩარჩოზე (რადგან პერიოდების რაოდენობა გაიზარდა). გაითვალისწინეთ, რომ ვერტიკალური ღერძი არ ნიშნავს ძაბვის დონეს. LED- ებისკენ მიმავალი ქინძისთავების მდგომარეობა დამოკიდებულია Charlieplex მასივში მისი პოზიციის მიხედვით….. დიაგრამაში ეს მხოლოდ ჩართვას ან გამორთვას ნიშნავს. ეს იმას ნიშნავდა, რომ დროთა განმავლობაში ჩარჩოს მთლიანი სიგრძეც გაიზარდა, რითაც შემცირდა განახლება განაკვეთი. როდესაც LED- ები დაბნელდა, ისინი დაიწყებენ ციმციმს სხვა სიტყვებით. ასე რომ, ეს მეთოდი მხოლოდ გარკვეულწილად სასარგებლოა. საათის განმავლობაში, ეს ნორმალურია. ფუნქცია ეწოდება წყვეტილად, რომელიც კითხულობს A/D კონვერტორს PIC- ზე და ადგენს ამ სიკაშკაშის დონეს. თუ თქვენ კითხულობთ კოდს, ის ასევე ამოწმებს, არის თუ არა LED უახლოესი LDR ჩართული და არ აკეთებს რაიმე დონის პარამეტრს, თუ ასეა, ეს აჩერებს ეკრანის მოულოდნელად განათებას, როდესაც შეიცვლება ნიმუში. შემდეგ ჯვრის ქრებოდა ფუნქცია.

ნაბიჯი 3: დაბნევის ალგორითმი - ჯვარედინი ქრებოდა ეფექტი და ორმაგი ბუფერი

დაბინდვის ალგორითმი - ჯვარედინი ქრებოდა ეფექტი და ორმაგი ბუფერი
დაბინდვის ალგორითმი - ჯვარედინი ქრებოდა ეფექტი და ორმაგი ბუფერი

ერთ ნიმუშსა და მეორეს შორის გადასვლა ადრე მყისიერად ხდებოდა. ამ საათისათვის მინდოდა მეჩვენებინა ერთი ნიმუში, რომელიც თანდათან მცირდებოდა სიკაშკაშეში და შემდეგი ნიმუში თანდათან იზრდებოდა … ანუ ჯვარი ქრებოდა.

მე არ მჭირდება ინდივიდუალური LED- ების კონტროლი ცალკეულ სიკაშკაშის დონეზე, რათა ჯვრის ქრებოდა. უბრალოდ საჭიროა პირველი ნიმუში ერთი სიკაშკაშე და მეორე დაბალი სიკაშკაშე. შემდეგ მოკლე პერიოდში მე ოდნავ შევამცირებ პირველის სიკაშკაშეს და გავზრდი მეორეს….. ეს გაგრძელდება მეორე ნიმუშამდე სრულად. შემდეგ საათი დაელოდებოდა სანამ მომავალი ნიმუში გამოჩნდებოდა და სხვა გადასვლა იქნებოდა. ამრიგად, მე მჭირდებოდა ორი შაბლონის შენახვა. ერთი, რომელიც ამჟამად არის ნაჩვენები და მეორე ნიმუში, რომლის ჩვენებაც იგეგმებოდა. ეს არის nLedsA და nLedsB მასივებში. (გაითვალისწინეთ, რომ ამ შემთხვევაში არაფერი აქვს საერთო პორტებთან). ეს არის ორმაგი ბუფერი. Update_display () ფუნქცია შეიცვალა რვა ჩარჩოში და აჩვენებს რიგ კადრებს ჯერ ერთი მასივიდან, შემდეგ მეორედან. რვა ციკლის განმავლობაში თითოეულ ბუფერზე გამოყოფილი ჩარჩოების რაოდენობის შეცვლამ განსაზღვრა, თუ რამდენად ნათელი იქნებოდა თითოეული ნიმუში. ბუფერებს შორის ველოსიპედის დამთავრებისას ჩვენ გადავიტანეთ ბუფერები "ჩვენება" და "შემდეგი ჩვენება", ასე რომ, ნიმუშის გამომუშავების ფუნქცია მხოლოდ "მომდევნო ჩვენების" ბუფერზე იწერება. ქვემოთ მოყვანილი დიაგრამა ამას იმედია აჩვენებს. თქვენ უნდა ნახოთ, რომ გადასვლას დასჭირდება 64 სკანირების ჩარჩო. სურათზე პატარა ჩანართი გვიჩვენებს წინა გვერდის სკანირების სქემას, რომელიც ოსტატურად შემცირდა. სიტყვა ხელახლა ახალი განაკვეთის შესახებ. ეს ყველაფერი ძალიან სწრაფად უნდა გაკეთდეს. ახლა ჩვენ გვაქვს ორი დონის დამატებითი გამოთვლა, ერთი გარემოს ეკრანის დაბინდულობისთვის და ერთი რვა კადრიანი ციკლისთვის, რომელიც გატარებულია ორ ბუფერს შორის. ამრიგად, ეს კოდი უნდა დაიწეროს ასამბლეაში, მაგრამ საკმარისად კარგია "C" - ში.

ნაბიჯი 4: მშენებლობა - PCB

კონსტრუქცია - PCB
კონსტრუქცია - PCB
კონსტრუქცია - PCB
კონსტრუქცია - PCB

ეს არის საკმაოდ პირდაპირი. მხოლოდ ორმხრივი PCB, SMD კომპონენტებით, თავზე. უკაცრავად, თუ თქვენ ხვრელი ხართ, მაგრამ SMD პროექტების გაკეთება ბევრად უფრო ადვილია…. საბურღი ხვრელების გარეშე. თქვენ უნდა გქონდეთ სტაბილური ხელი, ტემპერატურის კონტროლირებადი შედუღების სადგური და ბევრი შუქი და გადიდება, რათა საქმეები გაადვილოთ.

PCB- ის კონსტრუქციაში ერთადერთი რაც აღსანიშნავია არის PIC- ის პროგრამირების კონექტორის ჩართვა. ეს უკავშირდება PIC– ის ICSP პინებს და დაგჭირდებათ ICSP პროგრამისტი. ისევ გამოვიყენე მოსახერხებელი ჩემი junkbox კონექტორი. თქვენ შეგიძლიათ გამოტოვოთ ეს და უბრალოდ შეაერთეთ მავთულები ბალიშებზე, თუ გნებავთ. ალტერნატიულად, თუ თქვენ გაქვთ მხოლოდ სოკეტირებული პროგრამისტი, შეგიძლიათ გააკეთოთ სათაური, რომელიც შეაერთებს თქვენს სოკეტს და შემდეგ შეაერთოთ იგი ICSP ბალიშებზე. თუ ამას აკეთებთ, მაშინ გათიშეთ Rx და შეაერთეთ Ry, რომლებიც მხოლოდ ნულოვანი ომის ბმულია (მე უბრალოდ ვიყენებ solder blob- ს). ეს გათიშავს მიკროსქემის დანარჩენ სიმძლავრეს PIC– დან, ასე რომ არ ერევა პროგრამირებაში. სოკეტირებული პროგრამისტი უბრალოდ იყენებს ICSP ქინძისთავებს, როგორც ICSP პროგრამისტი, ჯადოქრობა ნამდვილად არ არის ჩართული. თქვენ ასევე უნდა გააკეთოთ ეს, თუ შეცდომით დაგავიწყდათ კოდის გადადება RTC– ის დაწყებამდე. 16F88– ისთვის ICSP პროგრამირების ქინძისთავები იგივეა, რაც RTC– ისთვის გამოყენებული 32.768 kHz ბროლისთვის საჭირო ქინძისთავები …… თუ T1 გარე ოსცილატორი (ანუ RTC) მუშაობს ICSP– ის მუშაობის დაწყებამდე, მაშინ პროგრამირება ჩავარდება რა ჩვეულებრივ, თუ ხდება MCLR პინზე გადატვირთვა და არის შეფერხება, მაშინ ICSP მონაცემების გაგზავნა შესაძლებელია ამ ქინძისთავებში და პროგრამირების სწორად დაწყება. თუმცა, PIC– ის ენერგიის იზოლირებით ICSP პროგრამისტს (ან პროგრამისტი სათაურით) შეუძლია აკონტროლოს მოწყობილობის სიმძლავრე და აიძულოს პროგრამა. სხვა საგნებია ის, რომ PCB– ის ბროლის ბალიშები თავდაპირველად განკუთვნილი იყო SMD კრისტალებისთვის. მე ვერ დაველოდები ზოგიერთის მიწოდებას, ასე რომ 32.768kHz საათის ბროლი დაიხურა ზევით, როგორც ნაჩვენებია, ხოლო 20MHz კრისტალი მიამაგრეს ბალიშებში რამდენიმე ხვრელის გაბურღვით, კრისტალს ქვედა მხრიდან და შედუღებით ზედა თქვენ შეგიძლიათ ნახოთ ქინძისთავები PIC16F88– ის მარჯვნივ.

ნაბიჯი 5: ჰოლოგრაფიული ფილმი და საცხოვრებელი

ჰოლოგრაფიული ფილმი და საცხოვრებელი
ჰოლოგრაფიული ფილმი და საცხოვრებელი
ჰოლოგრაფიული ფილმი და საცხოვრებელი
ჰოლოგრაფიული ფილმი და საცხოვრებელი
ჰოლოგრაფიული ფილმი და საცხოვრებელი
ჰოლოგრაფიული ფილმი და საცხოვრებელი

საბოლოო კონსტრუქცია უბრალოდ აყენებს PCB- ს საქმეს და პროგრამირების შემდეგ აფიქსირებს მას ცხელი წებოთი. სამი ხვრელი იძლევა წვდომას მიკროსქემებზე წინა მხრიდან.

ამ საათის საყურადღებო ნაწილია ჰოლოგრაფიული დიფუზორული ფილმის გამოყენება. ეს არის სპეციალური ფილმი, რომლის გარშემოც მე ვიწექი და უზრუნველყოფს მოწყობილობის სიღრმეს. თქვენ შეგიძლიათ გამოიყენოთ ჩვეულებრივი საჩვენებელი ქაღალდი (რომელშიც მე გადავიტანდი PCB წინა მხარეს), ან ნებისმიერი სხვა დიფუზორი, როგორიც არის ფლუორესცენტური ნათურების მოწყობილობებში. გამოცდილების შესახებ, ერთადერთი რაც მას სჭირდება არის ის, რომ მოგცეთ საშუალება განასხვავოთ განათებული LED- ების რიცხვი, წინააღმდეგ შემთხვევაში ძნელი იქნება წერტილების დათვლა დროის გასაგებად. მე გამოვიყენე ფიზიოლოგიური ოპტიკის თანამშრომლობის ჰოლოგრაფიული დისპერსიული მასალა (www.poc.com) 30 გრადუსიანი წრიული დისპერსიით, სუპერკომპიუტერის სტატუსის ჩვენება, რომელიც სხვაგან არის ნაჩვენები ინსტრუქციებში, გამოიყენა ფილმი 15x60 გრადუსიანი ელიფსური დისპერსიით. თქვენ შეგიძლიათ გამოიყენოთ გამანათებელი ლენტი დღის განმავლობაში ბრწყინვალე შიგნითა დასამალად, რომ მიიღოთ უფრო იდუმალი სახე. თქვენ კი შეგიძლიათ ეკრანი ნათლად დატოვოთ და ხალხს დაენახათ შინაგანი, როგორც მე. სადგამი იყო ორი ბიტიანი ალუმინის 'L' ბარი, ოდნავ დაჭრილი ბოლოში მოსახვევის დასაშვებად. გაითვალისწინეთ, რომ ამ სურათებზე დამატებით განათება დაემატა, ასე რომ თქვენ შეგიძლიათ ნახოთ ეკრანის გადასაფარებლები და ა.შ. ჩვეულებრივი მისაღები ოთახის განათებისას, LED- ები უფრო მნიშვნელოვანია, თუნდაც დღის შუქზე.

ნაბიჯი 6: პროგრამული უზრუნველყოფა და მომხმარებლის ინტერფეისი

მოწყობილობის მოქმედება ძალიან მარტივია, არ არსებობს სპეციალური ნიმუშის რეჟიმები ან მოციმციმე ნივთები. ერთადერთი რასაც აკეთებს არის დროის ჩვენება.

დროის დასადგენად ჯერ დააჭირეთ SW1. მოწყობილობა რამდენჯერმე აანთებს ყველა LED- ს და შემდეგ 10 საათიანი ჯგუფის LED- ები SW3 გაზრდის შერჩეულ ჯგუფს SW2 გადავა LED- ების მომდევნო ჯგუფში, ყოველ ჯერზე მოკლედ აანთებს ჯგუფის ყველა LED- ს. კოდი დაწერილია Sourceboost 'C' შემდგენლის ვერსიისთვის 6.70. RTC კოდი არის t1rtc.c/h ფაილში და აქვს შეწყვეტის ფუნქცია PIC– ის T1 ტაიმერზე. T1 ტაიმერი დაყენებულია ყოველ 1 წამში. ყოველ წამს, დროის ცვლადი იზრდება. ასევე ტკიპის ქრონომეტრი ითვლის ყოველ წამს დროსთან ერთად. ეს გამოიყენება იმის დასადგენად, თუ როდის უნდა გადავიდეს ეკრანი. შეწყვეტის ფუნქცია ასევე იყენებს T0 ტაიმერის შეწყვეტას ეკრანის განახლებისთვის, ეკრანზე ფუნქციის გამოძახებით. C ფაილები display.h/display.c შეიცავს ფუნქციებს ეკრანის განახლებისთვის და დროის ჩვენებისათვის ფაილების control.c/h შეიცავს ფუნქციები დროის დასადგენად და გადამრთველების წასაკითხად ფაილები holoclock.c/h არის ძირითადი მარყუჟები და ინიციალიზაცია.

გირჩევთ: