Სარჩევი:

Arduino ინტერაქტიული LED ყავის მაგიდა: 6 ნაბიჯი (სურათებით)
Arduino ინტერაქტიული LED ყავის მაგიდა: 6 ნაბიჯი (სურათებით)

ვიდეო: Arduino ინტერაქტიული LED ყავის მაგიდა: 6 ნაბიჯი (სურათებით)

ვიდეო: Arduino ინტერაქტიული LED ყავის მაგიდა: 6 ნაბიჯი (სურათებით)
ვიდეო: Blink an LED With Arduino in Tinkercad 2024, ივლისი
Anonim
Image
Image
Arduino ინტერაქტიული LED ყავის მაგიდა
Arduino ინტერაქტიული LED ყავის მაგიდა

მე გავაკეთე ინტერაქტიული ყავის მაგიდა, რომელიც აანთებს შუქს ობიექტის ქვეშ, როდესაც ობიექტი მაგიდაზეა განთავსებული. მხოლოდ leds, რომლებიც ქვეშ ობიექტი იქნება განათებული. ის ამას აკეთებს სიახლოვის სენსორების ეფექტურად გამოყენებით და როდესაც სიახლოვის სენსორი იგრძნობს, რომ ობიექტი საკმარისად ახლოს არის, ის აანთებს კვანძს ამ ობიექტის ქვეშ. ის ასევე იყენებს Arduino– ს ანიმაციის გადასაღებად, რომლებსაც არ სჭირდებათ სიახლოვის სენსორები, მაგრამ დაამატებენ მართლაც მაგარ ეფექტს, რომელიც მე უბრალოდ მიყვარს.

სიახლოვის სენსორები შედგება ფოტოდიოდებისა და IR გამოსხივებისგან. გამოსხივები იყენებენ ინფრაწითელ სინათლეს (რომელსაც ადამიანის თვალი ვერ ხედავს) მაგიდის სინათლის გასანათებლად, ხოლო ფოტოდიოდები იღებენ ობიექტიდან ასახულ ინფრაწითელ სინათლეს. რაც უფრო მეტი შუქი აისახება (რაც უფრო ახლოს არის ობიექტი), მით უფრო იცვლება ძაბვა, რომელიც მოდის ფოტოდიოდებიდან. ეს გამოიყენება როგორც ინდიკატორი იმის დასადგენად, თუ რომელი კვანძი უნდა განათდეს. კვანძები არის ws2812b led– ების კოლექცია და სიახლოვის სენსორი.

თანდართული ვიდეო აღწერს მშენებლობის მთელ პროცესს, ხოლო მე უფრო დეტალურად აღვწერ ქვემოთ.

მარაგები

  1. ws2812b LED ნათურები -
  2. 5V კვების ბლოკი -
  3. ნებისმიერი Arduino მე გამოვიყენე 2560 -
  4. ფოტოდიოდები
  5. IR გამცემი
  6. 10 Ohms რეზისტორები
  7. 1 MOhms რეზისტორები
  8. 47 pF კონდენსატორი
  9. CD4051B მულტიპლექსერები
  10. SN74HC595 Shift რეგისტრები
  11. ULN2803A დარლინგტონის მასივები
  12. ნებისმიერი სუბსტრატი რომ გამოვიყენო როგორც დიდი დაფა led– ებისთვის, მე გამოვიყენე ქაღალდის კომპოზიტური დაფა სახლის საცავიდან

ნაბიჯი 1: შექმენით დაფა და ჩადეთ LED- ები

შექმენით დაფა და ჩადეთ LED- ები
შექმენით დაფა და ჩადეთ LED- ები
შექმენით დაფა და ჩადეთ LED- ები
შექმენით დაფა და ჩადეთ LED- ები
შექმენით დაფა და ჩადეთ LED- ები
შექმენით დაფა და ჩადეთ LED- ები
შექმენით დაფა და ჩადეთ LED- ები
შექმენით დაფა და ჩადეთ LED- ები

პირველი რაც გავაკეთე იყო დაფის შექმნა, რომელიც შეიცავდა led- ებს, რომლებსაც ყავის მაგიდის შიგნით ჩავდებთ. სახლის დეპოდან გამოვიყენე ქაღალდის კომპოზიტური დაფის ნაჭერი და დავჭრა შესაბამისი ზომის ყავის მაგიდისთვის. დაფის ზომის მოჭრის შემდეგ, მე გავაღე ყველა ხვრელი, სადაც მიდიოდნენ ლიდერები. დაფას თავისთავად ჰქონდა 8 სტრიქონი და 12 სვეტი ws2812b ლიდერებით, რომლებიც გამოყოფილია 3 ინჩის მანძილზე და ისინი მიმაგრებულია გველისებური ნიმუშით. მე გამოვიყენე ცხელი წებო მათ ადგილზე დასაფიქსირებლად.

მე ასევე მომიწია ხვრელების გაბურღვა კვანძის ცენტრში: 4 ws2812b led, რომლებიც ქმნიან კვადრატს, 2 ფოტო დიოდს და 2 IR გამოსხივებას უფრო მცირე კვადრატში ამის ცენტრში. ეს 4 ხვრელი კვანძის ცენტრში იქნება ლაქები ფოტოდიოდებისა და ირმის გამავრცელებლებისთვის (თითოეულს 2). მე შევცვალე ისინი მაქსიმალური ექსპოზიციის უზრუნველსაყოფად და დავაყენე ისინი ერთმანეთისგან 1 სანტიმეტრით დაშორებით თითოეული კვანძის ცენტრში. მე არ მჭირდებოდა ამ ადგილების ცხელი წებო, მე უბრალოდ მოხრილი ლიდერობები მეორე მხარეს, რათა დავრწმუნებულიყავი, რომ ისინი მეორე მხარეს არ გამოვიდოდნენ. მე ასევე დავრწმუნდი, რომ დადებითი და უარყოფითი ბოლოები ვიხრი გარკვეული მიმართულებით, ისე რომ ისინი სწორად იყვნენ ორიენტირებული წრეში. ყველა დადებითი უპირატესობა იყო დაფის უკანა მხარეს მარცხენა მხარეს, ხოლო ყველა უარყოფითი უპირატესობა იყო დაფის მარჯვენა მხარეს.

ნაბიჯი 2: გაიგეთ წრე

გაიგე წრე
გაიგე წრე
გაიგე წრე
გაიგე წრე
გაიგე წრე
გაიგე წრე

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

PCB კოდი, რომელიც შეიცავს KiCad პროექტს და გერბერ ფაილებს, შეგიძლიათ იხილოთ აქ: https://github.com/tmckay1/interactive_coffee_tabl…, იმ შემთხვევაში, თუ თქვენ გსურთ შეუკვეთოთ PCB თავს და შექმნათ მსგავსი პროექტი. მე გამოვიყენე NextPCB დაფების შესაქმნელად.

ძირითადად არსებობს სამი განსხვავებული სქემა, რომლებიც ქმნიან ამ ცხრილს. პირველი ჩვენ დეტალურად არ განვიხილავთ და არის მარტივი წრე, რომელიც აძლიერებს ws2812b led- ებს. PWM მონაცემთა სიგნალი იგზავნება Arduino– დან ws2812b led ნათურებზე და აკონტროლებს რა ფერები ნაჩვენებია სად. ჩვენ ვიყენებთ ws2812b led– ებს, რადგან ისინი ინდივიდუალურად არის მიმართული, ასე რომ ჩვენ შევძლებთ გავაკონტროლოთ რომელი led ჩართოს და რომელი გამორთოს. Ws2812b led– ები იკვებება 5 ვ გარე კვების ენერგიით, ვინაიდან მხოლოდ არდუინოს არ გააჩნია საკმარისი ენერგია ყველა შუქის ჩასართავად. მიმაგრებულ ანიმაციურ დიაგრამაში ისინი იყენებენ 330 Ohms გამყვანი რეზისტორს, თუმცა მე ამას არ ვიყენებ ჩემს აღნაგობაში.

მეორე წრე ჩართავს IR გამცემებს. ეს წრე იყენებს ცვლის რეგისტრს დარლინგტონის მასივის გასაკონტროლებლად, რომელიც ენერგიას უგზავნის IR გამცემებს. ცვლის რეგისტრი არის ინტეგრირებული წრე, რომელსაც შეუძლია მცირე და მაღალი რაოდენობის ქინძისთავებიდან გაუგზავნოს მაღალი და დაბალი სიგნალები მრავალ ქინძისთავზე. ჩვენს შემთხვევაში ჩვენ ვიყენებთ SN74HC595 ცვლის რეგისტრს, რომლის კონტროლიც შესაძლებელია 3 შეყვანისგან, მაგრამ აკონტროლებს 8 -მდე გამოსვლას. არდუინოს გამოყენების უპირატესობა იმაში მდგომარეობს იმაში, რომ თქვენ შეგიძლიათ ზედიზედ შეუწყოთ ჯაჭვი 8 ცვლის რეგისტრატორს (arduino– ს შეუძლია გაუმკლავდეს მხოლოდ 8 მათგანს). ეს ნიშნავს, რომ თქვენ გჭირდებათ მხოლოდ 3 ქინძი არდუინოდან, რათა ჩართოთ და გამორთოთ 64 IR გამოსხივება. დარლინგტონის მასივი საშუალებას გაძლევთ ჩართოთ მოწყობილობა გარე წყაროდან, თუ შეყვანის სიგნალი არის მაღალი, ან გამორთოთ მოწყობილობა იმ შემთხვევაში, თუ შეყვანის სიგნალი არის დაბალი. ასე რომ, ჩვენს მაგალითში ჩვენ ვიყენებთ ULN2803A darlington მასივს, რომელიც საშუალებას აძლევს 5V გარე ენერგიის წყაროს ჩართოს და გამორთოს IR- ის გამცემი 8 -მდე. ჩვენ ვიყენებთ 10 Ohm რეზისტორს IR გამოსხივებით სერიულად, რათა მივიღოთ მაქსიმალური ამპერაჟი IR გამოსხივებისგან.

მესამე წრე იყენებს მულტიპლექსერს, რომ მიიღოს მრავალჯერადი შეყვანა ფოტოდიოდებიდან და აგზავნის გამომავალს მონაცემთა სიგნალში. მულტიპლექსერი არის მოწყობილობა, რომელიც გამოიყენება მრავალჯერადი შეყვანის ასაღებად, რომლის წაკითხვაც გსურთ და მხოლოდ რამდენიმე ქინძისთავს სჭირდება ამ შეყვანისგან წასაკითხად. მას ასევე შეუძლია გააკეთოს საპირისპირო (დემულტიპლექსი), მაგრამ ჩვენ არ ვიყენებთ მას ამ პროგრამისთვის აქ. ასე რომ, ჩვენს შემთხვევაში ჩვენ ვიყენებთ CD4051B მულტიპლექსერს, რომ მივიღოთ 8 -მდე სიგნალი ფოტოდიოდებიდან და ჩვენ გვჭირდება მხოლოდ 3 შეყვანა ამ სიგნალებიდან. გარდა ამისა, ჩვენ შეგვიძლია დავამყაროთ ჯაჭვი 8 მულტიპლექსერამდე (arduino– ს შეუძლია გაუმკლავდეს მხოლოდ 8 მათგანს). ეს ნიშნავს, რომ არდუინოს შეუძლია წაიკითხოს 64 დიოდური სიგნალიდან მხოლოდ 3 ციფრული ქინძისთავებიდან. ფოტოდიოდები ორიენტირებულია საპირისპირო მიკერძოებულობით, რაც ნიშნავს იმას, რომ ნაცვლად ნორმალური მიმართულებით ორიენტირებული პოზიტიური ძაბვის პოზიტიურ წყაროსთან მიმაგრებული პოზიტიური ძაბვისა, ჩვენ უარყოფით ტყვიას ვანიჭებთ დადებით ძაბვის წყაროს. ეს ეფექტურად აქცევს ფოტოდიოდებს ფოტო რეზისტენტებად, რომლებიც იცვლებიან წინააღმდეგობაში, სინათლის რაოდენობის მიხედვით. შემდეგ ჩვენ ვქმნით ძაბვის გამყოფს, რომ წავიკითხოთ ძაბვა, რომელიც დამოკიდებულია ფოტოდიოდების განსხვავებულ წინააღმდეგობაზე, მიწაზე უაღრესად გამძლე 1 MOhms რეზისტორის დამატებით. ეს გვაძლევს საშუალებას მივიღოთ უფრო მაღალი და დაბალი ძაბვები არდუინოზე, დამოკიდებულია იმაზე, თუ რამდენ IR შუქს იღებენ ფოტოდიოდები.

მე მივყვებოდი ამ დიზაინის უმეტესობას სხვა ადამიანისგან, ვინც ეს აქ გააკეთა: https://www.instructables.com/Infrared-Proximity-S… გამოიყენება ძაბვის გამყოფის შესაქმნელად ფოტოდიოდებით. მიზეზი, რის გამოც მან დაამატა ეს იყო, რადგან ის იცვლებოდა და ამცირებდა IR გამცემებს PWM სიგნალით და ამით მცირედი ძაბვის ვარდნა მოდიოდა ფოტოდიოდებიდან, როდესაც IR გამოსხივები მაშინვე ჩართეს. ამან აიძულა ფოტოდიოდები შეცვალონ წინააღმდეგობა მაშინაც კი, როდესაც ის არ იღებდა ობიექტისგან მეტ IR სინათლეს, რადგან IR გამოსხივები იზიარებდნენ იმავე 5V ენერგიის წყაროს, როგორც ფოტოდიოდები. კონდენსატორი გამოიყენეს იმის უზრუნველსაყოფად, რომ არ მომხდარიყო ძაბვის ვარდნა, როდესაც IR გამოსხივები ჩართული და გამორთული იყო. მე თავდაპირველად ვგეგმავდი იგივე სტრატეგიის გაკეთებას, მაგრამ დრო ამოიწურა მის შესამოწმებლად, ასე რომ, სამაგიეროდ მე ყოველთვის დავტოვე IR გამოსხივები. მინდა მომავალში შეცვალო ეს, მაგრამ სანამ კოდისა და სქემის ხელახლა დაპროექტებას შევძლებ, ახლა PCB შექმნილია იმისთვის, რომ IR განათება იყოს ყოველთვის ჩართული და კონდენსატორები მაინც შევინარჩუნე. თქვენ არ გჭირდებათ კონდენსატორი, თუ თქვენ იყენებთ ამ PCB დიზაინს, მაგრამ მე ვაპირებ წარმოგიდგინოთ PCB– ის სხვა ვერსია, რომელიც იღებს დამატებით შეყვანას ცვლის რეგისტრში, რომელიც საშუალებას მოგცემთ ჩართოთ და გამორთოთ IR გამოსხივები. ეს მნიშვნელოვნად დაზოგავს ენერგიის მოხმარებას.

თქვენ შეგიძლიათ შეამოწმოთ პროტოტიპის კონფიგურაციის ანიმაციური დიაგრამები თქვენს არდუინოზე შესამოწმებლად. ასევე არსებობს თითოეული სქემისთვის უფრო დეტალური ფერადი სქემა, რომელიც ასახავს ელექტრონული მოწყობილობების დაყენებასა და ორიენტაციას. თანდართულ PCB სქემაში ჩვენ გვაქვს 4 ჯამური სქემა, 2 წრე, რომელიც გამოიყენება IR გამოსხივების ჩასართავად და 2 სქემა ფოტოდიოდიდან წასაკითხად. ისინი ორიენტირებულნი არიან PCB 2 ჯგუფზე ერთმანეთის გვერდით, ჯგუფი, რომელიც შედგება 1 IR გამცემი წრისა და 1 ფოტოდიოდის წრისაგან, ასე რომ 8 კვანძის 2 სვეტი შეიძლება მოთავსდეს ერთ PCB- ში. ჩვენ ასევე ვამყარებთ ჯაჭვს ორ სქემას ერთად, ასე რომ, არდუინოს სამ ქინძისთავს შეუძლია გააკონტროლოს ორი ცვლის რეგისტრატორი, ხოლო 3 დამატებით ქინძისთავს შეუძლია მართოს დაფაზე არსებული ორი მულტიპლექსერი. არსებობს დამატებითი გამომავალი სათაური, რომლითაც შესაძლებელი იქნება დამატებითი PCB- ების ჯაჭვი.

აქ არის რამოდენიმე რესურსი, რომელსაც მივყვებოდი პროტოტიპისთვის:

  • https://lastminuteengineers.com/74hc595-shift-regi…
  • https://techtutorialsx.com/2016/02/08/using-a-uln2…
  • https://tok.hakynda.com/article/detail/144/cd4051be…

ნაბიჯი 3: შეაერთეთ მავთულები კვანძზე

Solder Wires to Node
Solder Wires to Node
Solder Wires to Node
Solder Wires to Node
Solder Wires to Node
Solder Wires to Node
Solder Wires to Node
Solder Wires to Node

ახლა, როდესაც გესმით, თუ როგორ კეთდება წრე, განაგრძეთ მავთულები თითოეულ კვანძზე. მე შევაერთე ფოტოდიოდები პარალელურად (ყვითელი და ნაცრისფერი მავთულები) და ir გამათბობლები სერიულად (ნარინჯისფერი მავთული). შემდეგ პარალელურად გავამაგრე უფრო გრძელი ყვითელი მავთული ფოტოდიოდებზე, რომელიც დაერთვება 5V დენის წყაროს და ლურჯ მავთულს, რომელიც დაერთვება pcb- ის ფოტოდიოდის შეყვანას. მე შევაერთე გრძელი წითელი მავთული IR გამცემი წრეზე, რომელიც გამოყენებული იქნება 5V დენის წყაროსთან დასაკავშირებლად და შავი მავთული, რომელიც დაუკავშირდება PCB- ის IR გამცემი შეყვანას. მე ფაქტიურად მოკლე დროში ამოვიღე მავთულები, ასე რომ ბოლოსდაბოლოს შევძელი თითოეულ კვანძში მხოლოდ 5 კვანძის დაკავშირება (7 -ის ნაცვლად). ამის გამოსწორებას მოგვიანებით ვგეგმავ.

ნაბიჯი 4: შეაერთეთ PCB კომპონენტები და მიამაგრეთ იგი დაფაზე

შეაერთეთ PCB კომპონენტები და მიამაგრეთ იგი დაფაზე
შეაერთეთ PCB კომპონენტები და მიამაგრეთ იგი დაფაზე
შეაერთეთ PCB კომპონენტები და მიამაგრეთ იგი დაფაზე
შეაერთეთ PCB კომპონენტები და მიამაგრეთ იგი დაფაზე
შეაერთეთ PCB კომპონენტები და მიამაგრეთ იგი დაფაზე
შეაერთეთ PCB კომპონენტები და მიამაგრეთ იგი დაფაზე

შენიშვნა: PCB თანდართულ სურათზე არის პირველი ვერსია, რომელიც მე გავაკეთე, რომელსაც არ გააჩნდა ენერგიის შეყვანა და გამოსავალი და ასევე გვირილის ჯაჭვი თითოეული შიდა წრისთვის. ახალი PCB დიზაინი ასწორებს ამ შეცდომას.

აქ თქვენ უბრალოდ უნდა დაიცვათ PCB სქემა, რომ შეაერთოთ კომპონენტები PCB– ზე და შემდეგ რაც კეთდება, შეაერთეთ PCB დაფაზე. მე გამოვიყენე გარე მიკროსქემის დაფები 5V დენის სიგნალის დასამაგრებლად, რომელიც გავავრცე ყველა ყვითელ და წითელ მავთულზე. შეხედულებისამებრ, მე არ მჭირდებოდა ასეთი გრძელი წითელი და ყვითელი მავთულები და შემეძლო კვანძების ერთმანეთთან დაკავშირება (ნაცვლად იმისა, რომ ისინი საერთო გარე მიკროსქემის დაფაზე დავკავშირებოდი). ამან ნამდვილად შეამცირა არეულობის რაოდენობა დაფის უკანა ნაწილში.

ვინაიდან მე მქონდა ws2812b led– ების 8 სტრიქონი და 12 სვეტი, მე დავამთავრე 7 სტრიქონი და 11 სვეტი კვანძებით (სულ 77 კვანძი). იდეა არის გამოიყენოთ PCB- ის ერთი მხარე კვანძების ერთი სვეტისთვის, ხოლო მეორე მხარე მეორე სვეტისთვის. ასე რომ, რადგან მე მქონდა 11 სვეტი, მე მჭირდებოდა 6 PCB (უკანასკნელი მხოლოდ კომპონენტების ერთ ჯგუფს საჭიროებდა). მას შემდეგ, რაც მე მავთულები ძალიან მოკლე გავაკეთე, შემეძლო მხოლოდ 55 კვანძის, 11 სვეტისა და 5 რიგის დაკავშირება. თქვენ ხედავთ სურათზე, მე დავუშვი შეცდომა და ნედლი მავთულები შევაერთე დაფაზე, რაც კარგი იქნებოდა, თუ მავთულები საკმარისად თხელი იყო, მაგრამ ჩემს შემთხვევაში ისინი ძალიან სქელი იყო. ეს იმას ნიშნავდა, რომ მე მქონდა დამტვრეული მავთულის ბოლოები ერთმანეთთან ძალიან ახლოს თითოეული IR გამცემი შეყვანისა და ფოტოდიოდის შეყვანისთვის, ამიტომ მავთულის ყველა შორტიდან ბევრი ხარვეზის გამოსწორება ხდებოდა. მომავალში მე ვაპირებ გამოვიყენო კონექტორები PCB– ის დასაკავშირებლად დაფაზე, რათა თავიდან ავიცილოთ შორტები და გავწმინდოთ ნივთები.

მას შემდეგ, რაც Arduino– ს შეუძლია მხოლოდ 8 ცვლის რეგისტრატორებისა და მულტიპლექსერების ჯაჭვი, მე შევქმენი ორი ცალკეული ჯაჭვი, ერთი პირველ 8 სვეტს იკავებდა და მეორე დანარჩენ 3 სვეტს. შემდეგ დავამატე თითოეული ჯაჭვი სხვა კომპიუტერზე, რომელსაც ჰქონდა მხოლოდ 2 მულტიპლექსერი, ასე რომ მე შემეძლო ამ ორი მულტიპლექსერის მულტიპლექსერის მონაცემთა სიგნალის წაკითხვა არდუინოში. ეს ორი მულტიპლექსერი ასევე იყო დეიზის ჯაჭვით. ეს ნიშნავს, რომ არდუინოში სულ იყო 16 გამომავალი სიგნალი და 2 ანალოგური შეყვანა: 1 გამომავალი სიგნალი ws2812b led– ების გასაკონტროლებლად, 3 გამომავალი სიგნალი ცვლის რეგისტრატორთა პირველი ჯაჭვისთვის, 3 გამომავალი სიგნალი მულტიპლექსერების პირველი ჯაჭვისთვის, 3 გამომავალი სიგნალი ცვლის რეგისტრატორების მეორე ჯაჭვისთვის, 3 გამომავალი სიგნალი მულტიპლექსერების მეორე ჯაჭვისთვის, 3 გამომავალი სიგნალი 2 მულტიპლექსერისთვის, რომელიც აერთიანებს თითოეულ PCB მონაცემთა სიგნალს და ბოლოს 2 ანალოგური შეყვანის თითოეული მონაცემის სიგნალისთვის 2 საერთო მულტიპლექსერისგან.

ნაბიჯი 5: გადახედეთ კოდს

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

თქვენ შეგიძლიათ იპოვოთ კოდი, რომელიც მე გამოვიყენე აქ:

ზედა ნაწილში მე განვსაზღვრე arduino ქინძისთავები, რომლებიც დაუკავშირდება PCB– ს თითოეულ ნაწილს. კონფიგურაციის მეთოდით, მე ვაყენებ მულტიპლექსერებისთვის გამომავალ ქინძისთავებს, ვრთავ IR გამცემებს, ვაყენებ baseVal მასივს, რომელიც თვალყურს ადევნებს გარე შუქის კითხვას თითოეული ფოტოდიოდისთვის და ვიწყებ FastLED- ს, რომელიც წერს ws2812b led- ებს. მარყუჟის მეთოდით, ჩვენ აღვადგინეთ led- ების სია, რომლებიც მინიჭებულია ws2812b ზოლში. შემდეგ ჩვენ ვკითხულობთ ფოტოდიოდების მნიშვნელობებს მულტიპლექსერულ ჯაჭვებში და ვაყენებთ ws2812b ლედებს, რომლებიც უნდა იყოს ჩართული, თუ კვანძში ფოტოდიოდის კითხვა აღემატება განსაზღვრულ ზღურბლს გარემოს სინათლის კითხვის საბაზისო მნიშვნელობიდან. შემდეგ ჩვენ ვაძლევთ LED- ებს, თუ რაიმე ცვლილებაა კვანძში, რომელიც უნდა იყოს ჩართული. წინააღმდეგ შემთხვევაში, ის აგრძელებს მარყუჟს მანამ, სანამ რაღაც არ შეიცვლება დაჩქარდება საქმეები.

კოდის გაუმჯობესება შესაძლებელია და მე ვაპირებ ამის გაკეთებას, მაგრამ დაახლოებით 1-2 წამიანი შეფერხებაა, როდესაც განათება ირთვება მას შემდეგ, რაც ობიექტი განთავსდება მაგიდაზე. მე მჯერა, რომ ძირითადი პრობლემა ის არის, რომ FastLED– ს გარკვეული დრო სჭირდება მაგიდაზე 96 ლიდერის გამოსატანად და კოდი უნდა შემოიფარგლოს და წაიკითხოს ცხრილიდან 77 შეყვანა. მე შევეცადე ეს კოდი 8 led- ით და აღმოვაჩინე რომ ის იყო მყისიერი, მაგრამ მე ვეძებ LED- ების ტკბილ ადგილს, რომელიც იმუშავებს ამ კოდთან და იქნება თითქმის მყისიერი, ასევე გააუმჯობესებს კოდს.

ნაბიჯი 6: ჩართეთ Arduino

ჩართეთ არდუინო!
ჩართეთ არდუინო!
ჩართეთ არდუინო!
ჩართეთ არდუინო!
ჩართეთ არდუინო!
ჩართეთ არდუინო!

ახლა თქვენ მხოლოდ უნდა ჩართოთ arduino და ნახოთ ცხრილის ფუნქცია! ანიმაციების ბიბლიოთეკის გამოყენებით, რომელიც ზემოთ იყო ნახსენები, შეგიძლიათ ჩაწეროთ ws2812b- ის მაგარი ანიმაციები, ან ჩაიცვიოთ ყავის მაგიდის კოდი და ნახოთ, თუ როგორ ანათებს თითოეულ განყოფილებაში. მოგერიდებათ კომენტარის გაკეთება ნებისმიერ კითხვაზე ან მოსაზრებაზე და მე შევეცდები დროულად დაგიბრუნოთ. Გაუმარჯოს!

გირჩევთ: