ჭკვიანი ინტერაქტიული შუქნიშანი: 5 ნაბიჯი (სურათებით)
ჭკვიანი ინტერაქტიული შუქნიშანი: 5 ნაბიჯი (სურათებით)
Anonim
ჭკვიანი ინტერაქტიული შუქნიშანი
ჭკვიანი ინტერაქტიული შუქნიშანი

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

საჭირო კომპონენტები:- Arduino (..duh)- LM317 Mosfet- 2x 60cm ანალოგური RGB LED ზოლები (12V)- PVC მილი (1 მ x 125 მმ)- კაბელები (წითელი და შავი)- ლითონის ფირფიტები სინათლის ქუდებისთვის- აკრილი სინათლისთვის - icons (შეამოწმეთ flaticon.com.svg ხატებისთვის)- Spraycan შავი და თეთრი საღებავი.

ნაბიჯი 1: ნაბიჯი 1: გააკეთეთ შუქურები

ნაბიჯი 1: გააკეთეთ შუქურები
ნაბიჯი 1: გააკეთეთ შუქურები

დიზაინი ნამდვილად თქვენზეა დამოკიდებული. ჩვენ გავაკეთეთ 15x15 სმ ქუდი განათების შესანახად. ჩვენ დავჭრათ ლითონის ფირფიტები სწორ ზომამდე და გამოვიყენეთ ლითონის დამჭერი (არა, არა ავატარისგან), რომ დავიხუროთ ქუდები სწორი ფორმებით. ზურგჩანთები დამზადებულია სხვადასხვა კომპონენტისგან.

ნაბიჯი 2: ნაბიჯი 2: PVC ბოძის მომზადება

ნაბიჯი 2: PVC ბოძის მომზადება
ნაბიჯი 2: PVC ბოძის მომზადება

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

ნაბიჯი 3: ნაბიჯი 3: RGB LED ზოლების შეკრება და აკრილის ფირფიტების ქვიშაქვა

ნაბიჯი 3: RGB LED ზოლების შეკრება და აკრილის ფირფიტების ქვიშაქვა
ნაბიჯი 3: RGB LED ზოლების შეკრება და აკრილის ფირფიტების ქვიშაქვა
ნაბიჯი 3: RGB LED ზოლების შეკრება და აკრილის ფირფიტების ქვიშაქვა
ნაბიჯი 3: RGB LED ზოლების შეკრება და აკრილის ფირფიტების ქვიშაქვა

შემდეგ თქვენ უნდა შეაგროვოთ RGB LED ზოლები შუქის თავსახურის შიგნით. მჭიდროდ მოათავსეთ ისინი თავსახურის გარშემო და განათავსეთ ისინი რაც შეიძლება ახლოს წინა მხარეს.

შემდეგ თქვენ დაგჭირდებათ აკრილის ფირფიტაზე შერჩეული სიმბოლოს ქვიშის ქვიშა. აიღეთ ფირზე და დაფარეთ მთელი აკრილის ფირფიტა. შემდეგ ამოჭერით თქვენთვის სასურველი ფორმა/ფიგურა. ამის შემდეგ, თქვენ შეგიძლიათ ქვიშის ფირფიტა დაფაროთ, რომ მიიღოთ შუშის მსგავსი ეფექტი.

ნაბიჯი 4: ნაბიჯი 4: შეაერთეთ RGB LED ზოლები არდუინოსთან

ნაბიჯი 4: შეაერთეთ RGB LED ზოლები არდუინოსთან
ნაბიჯი 4: შეაერთეთ RGB LED ზოლები არდუინოსთან

ახლა მოდის რთული ნაწილი: RGB LED ზოლების დაკავშირება არდუინოსთან. როდესაც თქვენ აკავშირებთ ქინძისთავებს, დარწმუნდით, რომ თქვენ დააყენეთ 12v თქვენი ზოლის 12v- ზე. თითოეულ ფერს შორის, ასე წითელ ან მწვანეს შორის, თქვენ უნდა მოათავსოთ mosfet. შეაერთეთ led ზოლის მონაცემები mosfet– ის შუა პინთან, ხოლო მარცხენა pin თქვენს Arduino– სთან. მარჯვენა პინი უნდა დაბრუნდეს არდუინოს მიწაზე.

ნაბიჯი 5: ნაბიჯი 5: ჩაწერეთ არდუინოს კოდი

ნაბიჯი 5: ჩაწერეთ არდუინოს კოდი
ნაბიჯი 5: ჩაწერეთ არდუინოს კოდი

Arduino– ს ეს კოდი კონტროლდება bluetooth– ით, რადგან ჩვენ არ გამოვიყენეთ შიდა ეკრანი. ასე რომ, კოდი კონტროლდება bluetooth შეტყობინებების საშუალებით loop () ფუნქციაში.

#განსაზღვრეთ r 6 #განსაზღვრეთ g 11 #ჩართეთ

პროგრამული უზრუნველყოფა სერიული mySerial (10, 11); // RX, TX

#განსაზღვრეთ გაბრაზებული სიგრძე 4

#განსაზღვრეთ დაცემა სიგრძე 3 #განსაზღვრეთ ბედნიერი სიგრძე 4 #განსაზღვრეთ ტელეფონზე სიგრძე 13 #განსაზღვრეთ ლაპარაკი სიგრძე 5 #განსაზღვრეთ სიარული სიგრძე 4 #განსაზღვრეთ სიარულიდან გარეთ 4 #განსაზღვრეთ ტალღა სიგრძე 6

bool ღილაკი დაპრესილი;

int მიმდინარემილისი; int წინამილისი;

int animation1 დაგვიანებით;

int animation2Delay; int animation3Dale; int animation4Dale;

bool animation1Done = false;

bool animation2Done = ყალბი; bool animation3Done = ყალბი; bool animation4Done = ყალბი; bool animation5Done = ყალბი;

bool blockLight = false;

bool lightRed = ჭეშმარიტი;

int currentAnimationDelay;

void setup () {

// განათავსეთ თქვენი კონფიგურაციის კოდი აქ, ერთხელ გასაშვებად: pinMode (r, OUTPUT); pinMode (g, OUTPUT);

სერიული.დაწყება (9600);

mySerial.begin (38400); Serial.setTimeout (25); buttonPressed = ყალბი; currentMillis = 0; წინამილის = 0;

ანიმაცია 1 დაგვიანებით = სიარული სიგრძე * 1000;

animation2Drelay = wavingLength * 1000; animation3Drelay = happyLength * 1000; animation4Drelay = walkingOutLength * 1000;

// currentAnimationDelay = animation1Drelay * 1000;

lightRed = ჭეშმარიტი; }

ბათილი მარყუჟი () {

// დაგვიანება (20);

// განათავსეთ თქვენი მთავარი კოდი აქ განმეორებით გასაშვებად: ხელმოუწერელი გრძელი მიმდინარე Millis = millis (); if (buttonPressed == true) {if (animation1Done == false) {if (currentMillis - previousMillis> animation1Delay) {Serial.println ("0"); previousMillis = მიმდინარე მილი; ანიმაცია 1 შესრულებულია = ჭეშმარიტი; }} else if (animation2Done == ყალბი და animation1Done == ჭეშმარიტი) {if (currentMillis - previousMillis> animation2Delay) {Serial.println ("1"); previousMillis = მიმდინარე მილი; animation2Done = ჭეშმარიტი; }} else if (animation3Done == ყალბი და animation2Done == ჭეშმარიტი) {if (currentMillis - previousMillis> animation3Delay) {Serial.println ("2"); //Serial.println(" sound:green "); previousMillis = მიმდინარე მილი; animation3Done = ჭეშმარიტი; lightRed = ყალბი; }} else if (animation4Done == ყალბი და animation3Done == ჭეშმარიტი) {if (currentMillis - previousMillis> animation4Delay) {previousMillis = currentMillis; animation4Done = ჭეშმარიტი; Serial.println ("FLSH"); }}}

if (Serial.available ()) {

სიმებიანი str = Serial.readString (); if (str == "CMD: BUTTON_PRESSED") {

ანიმაცია 1 შესრულებულია = ყალბი;

animation2Done = ყალბი; animation3Done = ყალბი; animation4Done = ყალბი; animation5Done = ყალბი;

ანიმაცია 1 დაგვიანებით = სიარული სიგრძე * 1000;

animation2Drelay = wavingLength * 1000; animation3Drelay = happyLength * 1000; animation4Drelay = walkingOutLength * 1000;

// currentAnimationDelay = animation1Drelay * 1000;

lightRed = ჭეშმარიტი; Serial.println ("3"); buttonPressed = ჭეშმარიტი; previousMillis = მიმდინარე მილი; }

if (str == "RED") {

blockLight = ყალბი; lightRed = ჭეშმარიტი; }

if (str == "GREEN") {

blockLight = ყალბი; lightRed = ყალბი; }

if (str == "LIGHT: GREEN: OFF") {

blockLight = ჭეშმარიტი; analogWrite (g, 255); } if (str == "LIGHT: GREEN: ON") {blockLight = true; analogWrite (g, 0); } //Serial.println(str); }

if (blockLight == false) {

თუ (lightRed == ჭეშმარიტი) {

analogWrite (r, 0); analogWrite (g, 255); } if (lightRed == false) {analogWrite (r, 255); analogWrite (g, 0); }}}

გირჩევთ: