Სარჩევი:

Starry Sky Led Tie: 9 ნაბიჯი (სურათებით)
Starry Sky Led Tie: 9 ნაბიჯი (სურათებით)

ვიდეო: Starry Sky Led Tie: 9 ნაბიჯი (სურათებით)

ვიდეო: Starry Sky Led Tie: 9 ნაბიჯი (სურათებით)
ვიდეო: Днестр- от истока до моря Часть 9 Начало каньона Дворец Бадени Коропец Возиловский водопад Сплав 2024, ნოემბერი
Anonim
Image
Image
ონლაინ თამაში Starry Sky Led Tie
ონლაინ თამაში Starry Sky Led Tie
ონლაინ თამაში Starry Sky Led Tie
ონლაინ თამაში Starry Sky Led Tie

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

ერთ -ერთი გიჟური იდეა მქონდა, იყო ჰალსტუხის გაკეთება ვარსკვლავური ცის ეფექტით.

მე ჯერ კიდევ მქონდა arduino pro mini- ს, adafruit დაფები და ბატარეები, რომლებიც ალბათ მოერგებოდა ამ პროექტს.

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

ეს ინსტრუქცია გიჩვენებთ როგორ გავაკეთე ეს.

ის მუშაობს arduino pro mini, adafruit powerboost 500 დამტენზე, emmerich icr 18650nh-sp და 5 თეთრი LED- ით. კოდი შემთხვევით ხდის LED- ის შეცვლის სიკაშკაშეს. (ვიდეოს პირველი 40 წამი 3x სიჩქარეა)

ნაბიჯი 1: სქემა და აპარატურა

სქემა და აპარატურა
სქემა და აპარატურა
სქემა და აპარატურა
სქემა და აპარატურა

მე ვიყენებ შემდეგ ტექნიკას:

- PCB ყინულის თეთრი LED- ებით და 220 Ohm რეზისტენტებით.

-Arduino pro mini (მე knockoff გამოვიყენე)

-Adafruit Powerboost 500 დამტენი

-Emmerich Li-ion accu ICR-18650NH-SP

- ოპტიკური ბოჭკოები (სხვადასხვა ზომის)

ნაბიჯი 2: მიღების PCB მასპინძლობს LED- ები

PCB ჰოსტინგის LED- ების დამზადება
PCB ჰოსტინგის LED- ების დამზადება
PCB ჰოსტინგის LED- ების დამზადება
PCB ჰოსტინგის LED- ების დამზადება
PCB ჰოსტინგის LED- ების დამზადება
PCB ჰოსტინგის LED- ების დამზადება

მე დავჭრა PCB– ის ზოლები LED– ების ჩასატარებლად და გამოვიყენე LED ქინძისთავები, რომ შევაერთო იგი ძირითად PCB– ზე.

შეაერთეთ ყველა კათოდი (-) GND– სთან და გამოიყენეთ ქინძისთავების ნახევარი, რათა ის გამყარებულიყო მთავარ PCB– ზე.

ყველა ანოდი (+) დაუკავშირა რეზისტორებს და კაბელებით არდუინოს.

LED- ები თითოეული უნდა იყოს დაკავშირებული ერთ -ერთ შემდეგ PWM პორტებთან: 3, 5, 6, 9, 10, 11

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

მე დავიწყე 7 LED- ით, მაგრამ იყო მხოლოდ 6 PWM პორტი და ერთი LED- ის მე გადამყიდველი გარდაიცვალა. მე მხოლოდ 5 სამუშაო LED შევინახე და მეექვსეს არ ვიყენებ.

ნაბიჯი 3: ყუთის დამზადება

ყუთის დამზადება
ყუთის დამზადება
ყუთის დამზადება
ყუთის დამზადება
ყუთის დამზადება
ყუთის დამზადება
ყუთის დამზადება
ყუთის დამზადება

გამოვიყენე Bosch GRO (დრემელის მსგავსად) და საბურღი ბატარეის ფორმის, ღილაკის, მიკრო USB პორტის, არდუინოს სათაურები და ოპტიკური ბოჭკოები. (გამოიყენეთ მტვრის ნიღაბი!)

ბატარეა შეაერთეთ კორპუსში 2 ზოლით.

გამოიყენება ხრახნები ადაფრუტის დაფისა და PCB- ის დასაყენებლად.

გახსნისა და დახურვის ხახუნმა დააზიანა ზოგიერთი მავთული. მომიწია მათი გადაყიდვა და წებოს გამოყენება, რომ ეს აღარ განმეორდეს.

ნაბიჯი 4: ჰალსტუხის მომზადება

ჰალსტუხის მომზადება
ჰალსტუხის მომზადება
ჰალსტუხის მომზადება
ჰალსტუხის მომზადება
ჰალსტუხის მომზადება
ჰალსტუხის მომზადება

ამოღებული stitching საწყისი ქვედა ნაწილში ჰალსტუხი მოერგოს რეზინის ფურცელი.

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

მე არ ვარ კარგი სამკერვალო მანქანით, ასე რომ ჩემმა ტკბილმა დედამ ჰალსტუხის უკანა მხარეს დაადო zipper.

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

ყუთი და ჰალსტუხი ახლა დასრულებულია. დროა წებოვანა ბოჭკოვანი საშუალებები!

ნაბიჯი 5: ფიბროპტიკების წებო

ფიბროპტიკების წებო
ფიბროპტიკების წებო
ფიბროპტიკების წებო
ფიბროპტიკების წებო
ფიბროპტიკების წებო
ფიბროპტიკების წებო
ფიბროპტიკების წებო
ფიბროპტიკების წებო

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

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

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

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

ნაბიჯი 6: Fiberoptics მეშვეობით ჰალსტუხი

Fiberoptics მეშვეობით ჰალსტუხი
Fiberoptics მეშვეობით ჰალსტუხი
Fiberoptics მეშვეობით ჰალსტუხი
Fiberoptics მეშვეობით ჰალსტუხი
Fiberoptics მეშვეობით ჰალსტუხი
Fiberoptics მეშვეობით ჰალსტუხი

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

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

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

ნაბიჯი 7: ფიბროპტიკების დამაგრება ჰალსტუხზე

Fiberoptics წებოთი ჰალსტუხი
Fiberoptics წებოთი ჰალსტუხი
Fiberoptics წებოთი ჰალსტუხი
Fiberoptics წებოთი ჰალსტუხი
Fiberoptics წებოთი ჰალსტუხი
Fiberoptics წებოთი ჰალსტუხი
Fiberoptics წებოთი ჰალსტუხი
Fiberoptics წებოთი ჰალსტუხი

ოპტიკურ ბოჭკოს ყველა მავთულს რეზინის ფურცელზე ვამაგრებდი, რათა მავთულები არ გამხდარიყო რეზინის ფურცლიდან და ჰალსტუხი გამხდარიყო.

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

მას შემდეგ, რაც წებო გაშრა, მე შევაწყვე მავთულები წინა მხარეს და ოდნავ მოვაცილე რეზინის ფურცელი ყველაზე მაღალი მავთულის ზემოთ, რადგან ჰალსტუხი იყო ძალიან გრძელი.

თეთრი პერანგით გადაღებული ფოტოები გადაღებულია მანამ, სანამ რეზინის ბოლო ნაწილს არ მოვჭრი.

ნაბიჯი 8: კოდი

კოდის ქვემოთ დავწერე ჰალსტუხისთვის.

ყველა LED- ს აქვს მითითებული "საშუალო" (არა სინამდვილეში საშუალო, არამედ საშუალო სიკაშკაშე).

როგორც კი მიაღწევს ამ საშუალო მაჩვენებელს, ის გადაწყვეტს 3/4 შანსით გადავიდეს დაბალ სიკაშკაშეს. ის ასევე შემთხვევით ადგენს ახალ მინიმალურ სიკაშკაშეს, მაქსიმალურ სიკაშკაშეს, მინიმალური და მაქსიმალური სიკაშკაშის ლოდინის დროს და სიჩქარე იზრდება ან მცირდება ყოველ რაუნდში (1-255) 5 წინასწარ განსაზღვრული მნიშვნელობიდან. შემდეგ ის გააკეთებს ციკლს, სანამ კვლავ არ მიაღწევს საშუალოს. მხოლოდ 2 LED შეიძლება იყოს მაღალ ციკლში ერთდროულად.

თითოეული მდგომარეობა წარმოდგენილია მთელი მნიშვნელობით (1-7), რომელიც განსაზღვრავს თუ არა ის საშუალო-დაბალი, დაბალი საშუალო, დაბალი ლოდინი, განახლება და ა.

Arduino– ზე კოდის ატვირთვის შესახებ ინფორმაციისათვის გთხოვთ გადახედოთ www.arduino.cc– ს

/ * ვარსკვლავური ცის ჰალსტუხი * * ეს არის სკრიპტი, რომელიც შემთხვევით აქრობს 5 LED- ს საშუალოდან ქვედა * ან უფრო მაღალ სიკაშკაშეს შემთხვევითი ქვედა, უფრო მაღალი და დროული პარამეტრებით *, რათა გამოიყურებოდეს ვარსკვლავურ ცაზე ბოჭკოვანი საშუალებების გამოყენებისას. * ამ შემთხვევაში ეს განხორციელდება ჰალსტუხი. * * ზემოთ/ქვემოთ შანსი = 1/4 ზემოთ, 3/4 ქვემოთ, მაქსიმუმ 2 * იზრდება მაქსიმუმამდე ერთდროულად. * * საშუალო უცვლელი რჩება. * მინიმალური, მაქსიმალური და დროის პარამეტრები იცვლება შემთხვევით * 5 ვარიანტიდან ყოველ ჯერზე, როდესაც LED კვლავ აღწევს საშუალოს. * * შექმნილია ბილი ჯასპერსის მიერ, 2019 წლის მაისი. *

/ გამოაცხადეთ ქინძისთავები

int LED01 = 3; int LED02 = 5; int LED03 = 6; int LED04 = 9; int LED05 = 11;

// დროის ცვლადი

ხელმოუწერელი long currentTime; ხელმოუწერელი ლოდინის დრო [5]; ხელმოუწერელი long lastRound;

// LED ცვლადები

int brightMin [5] = {10, 10, 10, 10, 10}; // მინიმალური სიკაშკაშე int brightAvg [5] = {200, 200, 200, 200, 200}; // საშუალო სიკაშკაშე int brightMax [5] = {240, 240, 240, 240, 240}; // მაქსიმალური სიკაშკაშე int timeWaitLow [5] = {1000, 1000, 1000, 1000, 1000}; // ლოდინის დრო int timeWaitAvg [5] = {5000, 5000, 5000, 5000, 5000}; // ლოდინის დრო int timeWaitMax [5] = {4000, 3000, 3000, 3000, 3000}; // ლოდინის დრო int

// LED ცვლადების შესაძლებლობები

int brightMinPos [5] = {5, 20, 40, 5, 20}; // მინიმალური სიკაშკაშის შესაძლებლობები int brightMaxPos [5] = {240, 245, 230, 225, 245}; // მაქსიმალური სიკაშკაშის შესაძლებლობები int timeLowPos [5] = {3000, 5000, 4000, 2000, 1000}; // ლოდინის დრო დაბალი სიკაშკაშის შესაძლებლობებზე int timeHighPos [5] = {3000, 1000, 500, 2000, 4000}; // ლოდინის დრო მაღალი სიკაშკაშის შესაძლებლობებზე int timeAvgPos [5] = {3000, 5000, 4000, 7000, 8000}; // ლოდინის დრო საშუალო სიკაშკაშის შესაძლებლობებში int incrementPos [5] = {2, 4, 5, 3, 1}; // სიკაშკაშის შესაძლებლობების გაზრდა

// ცვლადები

bool startup = true; // საჭიროა დაწყების პარამეტრების დაწყება?

// მიმართულების ცვლადები

/* 0 = ლოდინი საშუალოდ 1 = საშუალოზე დაბალზე გადასვლა 2 = ლოდინი დაბალი 3 = დაბალიდან საშუალოზე 4 = საშუალოზე გადასვლა მაქსიმუმ 5 = ლოდინი მაქსიმუმზე 6 = მაღალი დონის მომატება 7 = ცვლადების განახლება*/ int სტატუსი LED [5] = {0, 0, 0, 0, 0}; int თანხა HighLED = 0; int refreshRate = 50; bool statusWaiting [5] = {ყალბი, ყალბი, ყალბი, ყალბი, ყალბი}; // ელოდება ლედი?

// შემთხვევითი ცვლადები

გრძელი შემთხვევითი რიცხვი; // გრძელი შემთხვევითი რიცხვის შესანახად long randomNumberTwo; // დიდხანს ინახება მეორე შემთხვევითი რიცხვი

// მთვლელები

int i = 0; // მთვლელი მთავარი მარყუჟისთვის

void setup () {

Serial.begin (115200); // სერიული randomSeed დაწყება (analogRead (A0)); // შემთხვევითი თესლის დაყენება

// გამოაცხადოს შედეგები

pinMode (LED01, OUTPUT); pinMode (LED02, OUTPUT); pinMode (LED03, OUTPUT); pinMode (LED04, OUTPUT); pinMode (LED05, OUTPUT); }

// ჩაწერეთ მონაცემები LED- ებზე

void writeToLED () {analogWrite (LED01, currentBright [0]); analogWrite (LED02, currentBright [1]); analogWrite (LED03, currentBright [2]); analogWrite (LED04, currentBright [3]); analogWrite (LED05, currentBright [4]); }

// მთავარი მარყუჟი

void loop () {if (გაშვება) {// გაშვების პარამეტრები lastRound = millis (); // ჩატვირთვის lastRound ჩატვირთვისათვის writeToLED (); // ჩაწერეთ დაწყების მონაცემები LED გაშვება = false; // გათიშვის გათიშვა} currentTime = millis (); // დააყენეთ მიმდინარე დრო

if (currentTime - lastRound> = refreshRate) {

for (i = 0; i <5; i ++) {if (statusLED == 7) {// -7- განახლებული Led randomNumber = შემთხვევითი (5); brightMin = brightMinPos [შემთხვევითი რიცხვი]; // დააყენეთ შემთხვევითი მნიშვნელობა მინიმალური სიკაშკაშისათვის randomNumber = შემთხვევითი (5); brightMax = brightMaxPos [შემთხვევითი რიცხვი]; // დააყენეთ შემთხვევითი მნიშვნელობა მაქსიმალური სიკაშკაშისათვის randomNumber = შემთხვევითი (5); timeWaitLow = timeLowPos [შემთხვევითი რიცხვი]; // ლოდინის დაბალი დროის შემთხვევითი მნიშვნელობის დადგენა randomNumber = შემთხვევითი (5); timeWaitMax = timeHighPos [შემთხვევითი რიცხვი]; // ლოდინის მაღალი დროის შემთხვევითი მნიშვნელობის დადგენა randomNumber = შემთხვევითი (5); timeWaitAvg = timeAvgPos [შემთხვევითი რიცხვი]; // ლოდინის საშუალო დროის შემთხვევითი მნიშვნელობის დადგენა randomNumber = შემთხვევითი (5); ნამატი = მატება დადებითი [შემთხვევითი რიცხვი]; // დააყენეთ შემთხვევითი მნიშვნელობა დამატებითი მნიშვნელობისათვის randomNumber = შემთხვევითი (2); // შემთხვევითი მნიშვნელობის მითითება randomNumberTwo = შემთხვევითი (2); // მითითებული შემთხვევითი მნიშვნელობა მიმართულებისათვის თუ (randomNumber == 1 && randomNumberTwo == 0 && amountHighLED = brightAvg ) {statusLED = 0; // თუ ყველაზე დაბალ წერტილშია: გადადით ლოდინის საშუალო} სხვაზე {currentBright = currentBright +მატება ; // სხვა: უმაღლესი სიკაშკაშე}} სხვა შემთხვევაში (statusLED == 2) {// -2- დაბალი ლოდინი თუ (! StatusWaiting ) {// თუ არ ელოდება: ელოდება დრო = millis (); // ლოდინის დროის დაყენება statusWaiting = true; // დაიწყეთ ლოდინი} სხვაგან თუ (statusWaiting && currentTime-waitTime > = timeWaitLow ) {// თუ ლოდინი და დრო გავიდაWaitAvg გავიდა: statusWaiting = false; // ლოდინის სტატუსის შეწყვეტა LED = 3; // დააყენეთ statusLed to ელოდება განახლებას}} სხვაგან თუ (statusLED == 1) {// -1- საშუალოზე დაბალია თუ (currentBright <= brightMin ) {statusLED = 2; // თუ ყველაზე დაბალ წერტილშია: გადადით Waiting Low} სხვაზე {currentBright = currentBright -გადიდება ; // სხვა: დაბალი სიკაშკაშე}} სხვა შემთხვევაში: statusWaiting = false; // შეაჩერე ლოდინის სტატუსი LED = 6; // დააყენეთ statusLed to ელოდება განახლებას}} სხვა შემთხვევაში (statusLED == 4) {// -4- საშუალოდ გადადის მაქსიმუმზე (currentBright > = brightMax ) {statusLED = 5; // თუ ყველაზე დაბალ წერტილშია: გადადით Waiting High} სხვაზე {currentBright = currentBright +მატება ; // სხვა: უმაღლესი სიკაშკაშე}} სხვაგან თუ (სტატუსიLED == 0) {// -0- საშუალოდ ლოდინი); // ლოდინის დროის დაყენება statusWaiting = true; // დაიწყეთ ლოდინი} სხვა შემთხვევაში // შეაჩერე ლოდინის სტატუსი LED = 7; // დააყენეთ statusLed to ელოდება განახლებას}}} i = 0; lastRound = მილი (); // დააყენეთ, როდესაც ბოლო რაუნდი დასრულდება. writeToLED (); // ჩაწერეთ ყველა მონაცემი LED- ებზე}}

ნაბიჯი 9: საბოლოო პროდუქტი

Image
Image
Საბოლოო პროდუქტი
Საბოლოო პროდუქტი
Საბოლოო პროდუქტი
Საბოლოო პროდუქტი

მე ვფიქრობ, რომ კარგად გამოვიდა. ჰალსტუხი არ არის ძალიან სქელი, მკაცრი, გრძელი ან მძიმე და ვარსკვლავის ეფექტი საოცრად გამოიყურება.

გირჩევთ: