Სარჩევი:

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

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

ვიდეო: მრავალჯერადი ელექტრონული სანთელი: 3 ნაბიჯი
ვიდეო: ეკჰარტ ტოლე - "აწმყოს ძალა" - აუდიო წიგნი - Audible Read Along 2024, ნოემბერი
Anonim
მრავალი ელექტრონული სანთელი
მრავალი ელექტრონული სანთელი

ელექტრონული სანთლები ბევრჯერ იყო განთავსებული Instructables– ზე, რატომ ეს ერთი?

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

მაშ, რა ხდის ამ ელექტრონულ სანთელს განსაკუთრებულს? PIC და Arduino– ს აქვს ბორტზე Pulse Width Modulation (PWM) აპარატურა, რომელიც შეიძლება გამოყენებულ იქნას სანთლის ეფექტის შესაქმნელად LED– ის გამოყენებით, მაგრამ ჩემს შემთხვევაში მინდოდა მქონოდა 5 დამოუკიდებელი ელექტრონული სანთელი ერთი კონტროლერის გამოყენებით და რომელიც არ არის, ყოველ შემთხვევაში არა რომ მე ვიცი off. გამოსავალი, რომელსაც მე ვიყენებ, არის პროგრამული უზრუნველყოფის ამ ხუთი დამოუკიდებელი PWM სიგნალის გაკეთება.

ნაბიჯი 1: პულსის სიგანის მოდულაცია პროგრამულ უზრუნველყოფაში

პულსის სიგანის მოდულაცია რამდენჯერმეა აღწერილი, მაგ. ამ არდუინოს სტატიაში:

PIC და Arduino– ს აქვთ სპეციალური PWM აპარატურა, რაც ამარტივებს ამ PWM სიგნალის გენერირებას. თუ ჩვენ გვსურს ერთი ან მეტი PWM სიგნალის გაკეთება პროგრამულ უზრუნველყოფაში, ჩვენ გვჭირდება ორი ტაიმერი:

  1. ერთი ტაიმერი, რომელიც გამოიყენება PWM სიხშირის შესაქმნელად
  2. ერთი ტაიმერი, რომელიც გამოიყენება PWM სამუშაო ციკლის შესაქმნელად

ორივე ქრონომეტრი გამოიმუშავებს და წყვეტს დასრულების შემდეგ და ამრიგად PWM სიგნალის დამუშავება ხდება მთლიანად შეფერხებით. PWM სიხშირისთვის ვიყენებ PIC- ის ტაიმერს 0 და გავუშვებ. 8 MHz შიდა ოსცილატორის საათის და 64 – ის წინასწარი მასშტაბის ფორმულა არის: Fosc / 4 /256 /64 = 2.000.000 / 256 /64 = 122 Hz ან 8, 2 ms. სიხშირე უნდა იყოს საკმარისად მაღალი, ისე რომ ადამიანის თვალი ვერ ამოიცნობს მას. ამისათვის საკმარისია 122 ჰც სიხშირე. ერთადერთი, რაც ამ ტაიმერის შეწყვეტის რუტინას აკეთებს, არის კოპირება სამუშაო ციკლის ახალი PWM ციკლისთვის და ყველა LED- ის ჩართვა. ის ამას აკეთებს 5 LED- ისთვის დამოუკიდებლად.

ტაიმერის მნიშვნელობა PWM სამუშაო ციკლის გასაკონტროლებლად დამოკიდებულია იმაზე, თუ როგორ ვაკეთებთ სანთლის ეფექტს. ჩემი მიდგომით, მე ვაკეთებ ამ ეფექტის სიმულაციას, სამუშაო ციკლის გაზრდით 3 -ით, რომ გავზარდოთ LED- ის სიკაშკაშე და 25 -ით შემცირდეს, რათა შემცირდეს LED- ის სიკაშკაშე. ამ გზით თქვენ მიიღებთ სანთლის მსგავს ეფექტს. ვინაიდან მე ვიყენებ მინიმალურ მნიშვნელობას 3, ნაბიჯების რაოდენობა ერთი ბაიტით სრული ციკლის გასაკონტროლებლად არის 255 /3 = 85. ეს ნიშნავს, რომ PWM სამუშაო ციკლის ქრონომეტრი უნდა მუშაობდეს სიხშირით 85 -ჯერ PWM სიხშირის ქრონომეტრი, რომელიც არის 85 * 122 = 10.370 ჰერცი.

PWM– ის სამუშაო ციკლისთვის ვიყენებ PIC– ის ტაიმერს 2. ეს არის ტაიმერი ავტომატური გადატვირთვით და იყენებს შემდეგ ფორმულას: პერიოდი = (გადატვირთვა + 1) * 4 * Tosc * ტაიმერი 2 წინასწარი მნიშვნელობა. 191 -ის გადატვირთვით და 1 -ის წინასწარი მასშტაბით ჩვენ ვიღებთ პერიოდს (191 + 1) * 4 * 1/8.000.000 * 1 = 96 აშშ ან 10.416 ჰერცი. PWM სამუშაო ციკლი წყვეტს რუტინულ შემოწმებას, არის თუ არა სამუშაო ციკლი გასული და გამორთავს LED- ს, რომლისთვისაც დასრულებულია სამუშაო ციკლი. თუ მოვალეობის ციკლი არ არის გავლილი, ის ამცირებს სამუშაო ციკლის მრიცხველს 3 -ით და ამთავრებს რუტინას. ის ამას აკეთებს ყველა LED- ისთვის დამოუკიდებლად. ჩემს შემთხვევაში, ამ შეწყვეტის რუტინას დაახლოებით 25 ჩვენ გვჭირდება და რადგან მას ყოველ 96 ამერიკელს ვუწოდებთ, პროცესორის უკვე 26% გამოიყენება პროგრამული უზრუნველყოფის PWM სამუშაო ციკლის სამართავად.

ნაბიჯი 2: აპარატურა და საჭირო კომპონენტები

აპარატურა და საჭირო კომპონენტები
აპარატურა და საჭირო კომპონენტები

სქემატური დიაგრამა გვიჩვენებს საბოლოო შედეგს. მიუხედავად იმისა, რომ მე მხოლოდ 5 LED- ს ვაკონტროლებ დამოუკიდებლად, მე დავამატე მე -6 LED, რომელიც მუშაობს ერთ სხვა 5 LED- თან ერთად. ვინაიდან PIC- ს არ შეუძლია ორი LED- ების მართვა ერთ პორტის პინზე დავამატე ტრანზისტორი. ელექტრონიკა იკვებება 6 ვოლტ / 100 mA DC გადამყვანით და იყენებს დაბალი ვარდნის ძაბვის რეგულატორს სტაბილური 5 ვოლტის შესაქმნელად.

ამ პროექტისთვის დაგჭირდებათ შემდეგი კომპონენტები:

  • 1 PIC მიკროკონტროლი 12F615
  • 2 კერამიკული კონდენსატორი: 2 * 100nF
  • რეზისტორები: 1 * 33k, 6 * 120 Ohm, 1 * 4k7
  • 6 ნარინჯისფერი ან ყვითელი LED, მაღალი სიკაშკაშე
  • 1 BC557 ტრანზისტორი ან ექვივალენტი
  • 1 ელექტროლიტური კონდენსატორი 100 uF / 16 V
  • 1 დაბალი ვარდნის ძაბვის რეგულატორი LP2950Z

თქვენ შეგიძლიათ ააწყოთ წრე პურის დაფაზე და არ საჭიროებს დიდ ადგილს, როგორც ეს სურათზე ჩანს.

ნაბიჯი 3: დარჩენილი პროგრამული უზრუნველყოფა და შედეგი

პროგრამული უზრუნველყოფის დარჩენილი ნაწილი არის მთავარი მარყუჟი. ძირითადი მარყუჟი ზრდის ან ამცირებს LED- ების სიკაშკაშეს შემთხვევითი სამუშაო ციკლის მორგებით. ვინაიდან ჩვენ მხოლოდ ვიმატებთ 3 -ით და ვამცირებთ 25 -ით, ჩვენ უნდა დავრწმუნდეთ, რომ შემცირება არ ხდება ისე ხშირად, როგორც ნამატი.

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

en.wikipedia.org/wiki/Linear-feedback_shif…

სანთლის ეფექტზე გავლენას ახდენს ის, თუ რამდენად სწრაფად იცვლება PWM სამუშაო ციკლი, ამიტომ ძირითადი მარყუჟი იყენებს დაგვიანებით დაახლოებით 10 ms. თქვენ შეგიძლიათ შეცვალოთ ეს დრო სანთლის ეფექტის შესაცვლელად თქვენს საჭიროებებზე.

თანდართული ვიდეო გვიჩვენებს საბოლოო შედეგს, სადაც ეფექტის გასაუმჯობესებლად ვიყენებ ქუდს LED- ზე.

მე გამოვიყენე JAL როგორც პროგრამირების ენა ამ პროექტისთვის და დავამატე წყაროს ფაილი.

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

გირჩევთ: