Բովանդակություն:

Խելացի ինտերակտիվ լուսացույց. 5 քայլ (նկարներով)
Խելացի ինտերակտիվ լուսացույց. 5 քայլ (նկարներով)

Video: Խելացի ինտերակտիվ լուսացույց. 5 քայլ (նկարներով)

Video: Խելացի ինտերակտիվ լուսացույց. 5 քայլ (նկարներով)
Video: Ծնողները, իրենք էլ չգիտակցելով, վնասում են իրենց երեխաներին 2024, Նոյեմբեր
Anonim
Խելացի ինտերակտիվ լուսացույց
Խելացի ինտերակտիվ լուսացույց

Պատրա՞ստ եք կառուցել աշխարհի լավագույն և ինտերակտիվ լուսացույցը: Լավ! Այս ձեռնարկում մենք կբացատրենք, թե ինչպես կարող եք ինքնուրույն կառուցել Arduino- ի միջոցով:

Պահանջվող բաղադրամասեր. - պատկերակներ (ստուգեք flaticon.com- ը.svg պատկերակների համար)- Spraycan սև և սպիտակ ներկ:- Էլեկտրական ժապավեն- requiredոդման բոլոր անհրաժեշտ բաղադրիչները.

Քայլ 1: Քայլ 1. Պատրաստեք լուսամփոփներ

Քայլ 1. Պատրաստեք լուսամփոփներ
Քայլ 1. Պատրաստեք լուսամփոփներ

Դիզայնը իսկապես ձերն է: Մենք պատրաստել ենք 15x15 սմ գլխարկ ՝ լույսերը պահելու համար: Մենք կտրեցինք մետաղական թիթեղները ճիշտ չափի և օգտագործեցինք մետաղական թեքություն (ոչ, ոչ Անձնանշանից), որպեսզի գլխարկները թեքենք ճիշտ ձևերով: Թիկնոցները պատրաստված էին այլ բաղադրիչից:

Քայլ 2: Քայլ 2. ՊՎՔ բևեռի պատրաստում

Քայլ 2: ՊՎՔ բևեռի պատրաստում
Քայլ 2: ՊՎՔ բևեռի պատրաստում

Կտրեք 2 անցք PVC բևեռում `լուսապարկերին համապատասխան: Այնուհետև օգտագործեք սև ներկի լակի `ամբողջը սև ներկելու համար: Եթե ցանկանում եք, կարող եք սպիտակ շերտեր ավելացնել ձողի ներքևում (տարածված է Նիդեռլանդներում):

Քայլ 3. Քայլ 3. RGB LED շերտերի հավաքում և ակրիլային թիթեղների ավազապատում

Քայլ 3. RGB LED շերտերի հավաքում և ակրիլային թիթեղների ավազապատում
Քայլ 3. RGB LED շերտերի հավաքում և ակրիլային թիթեղների ավազապատում
Քայլ 3. RGB LED շերտերի հավաքում և ակրիլային թիթեղների ավազապատում
Քայլ 3. RGB LED շերտերի հավաքում և ակրիլային թիթեղների ավազապատում

Հաջորդը դուք պետք է հավաքեք RGB LED շերտերը լուսամփոփի ներսում: Սերտորեն ամրացրեք դրանք կափարիչի շուրջ և տեղադրեք դրանք հնարավորինս առջևի մասում:

Հաջորդը, ձեզ հարկավոր է ավազով կպցնել ընտրված խորհրդանիշը ակրիլային ափսեի վրա: Ձեռք բերեք ժապավեն և ծածկեք ամբողջ ակրիլային ափսեը: Այնուհետեւ կտրեք ձեր ուզած ձեւը/պատկերը: Դրանից հետո դուք կարող եք ավազով փռել ափսեը `ցրտահարված ապակի նման ազդեցություն ստանալու համար:

Քայլ 4: Քայլ 4. Միացրեք RGB LED շերտերը Arduino- ին:

Քայլ 4. Միացրեք RGB LED շերտերը Arduino- ին
Քայլ 4. Միացրեք RGB LED շերտերը Arduino- ին

Այժմ գալիս է բարդ մասը. RGB LED շերտերը Arduino- ին միացնելը: Երբ կապում եք կապում, համոզվեք, որ 12v- ը դնում եք ձեր շերտի 12v- ի վրա: Յուրաքանչյուր գույնի միջև, այնքան կարմիր կամ կանաչ, պետք է մոսֆետ դնել: Միացրեք led շերտի տվյալները mosfet- ի միջին քորոցին, իսկ ձախը ՝ ձեր Arduino- ին: Աջ քորոցը պետք է վերադառնա Arduino- ի գետնին:

Քայլ 5. Քայլ 5. Գրեք Arduino ծածկագիրը

Քայլ 5: Գրեք Arduino ծածկագիրը
Քայլ 5: Գրեք Arduino ծածկագիրը

Այս Arduino կոդը վերահսկվում է bluetooth- ով, քանի որ մենք չենք օգտագործել ներքին էկրան: Այսպիսով, կոդը վերահսկվում է loop () գործառույթի bluetooth հաղորդագրությունների միջոցով:

#սահմանել r 6 #սահմանել g 11 #ներառել

SoftwareSerial mySerial (10, 11); // RX, TX

#սահմանեք զայրացածԼարություն 4

#սահմանել ընկնելՈր 3 -րդ #սահմանել երջանիկLength 4 #սահմանել հեռախոսով Երկարություն 13 #սահմանել խոսքԵրգեր 5 #սահմանել քայլել 4 -րդ #սահմանել քայլելՈւր երկարություն 4 #սահմանել ծածանումներ 6 -րդ

bool buttonPressed;

int ընթացիկ Միլիս; int նախորդ Միլիս;

int animation1 Հետաձգում;

int animation2Delay; int animation3Delay; int animation4Delay;

bool animation1Done = false;

bool animation2Done = false; bool animation3Done = false; bool animation4Done = false; bool animation5Done = false;

bool blockLight = կեղծ;

bool lightRed = ճշմարիտ;

int currentAnimationDelay;

void setup () {

// տեղադրեք ձեր տեղադրման կոդը այստեղ ՝ մեկ անգամ գործարկելու համար ՝ pinMode (r, OUTPUT); pinMode (g, OUTPUT);

Serial.begin (9600);

mySerial.begin (38400); Serial.setTimeout (25); buttonPressed = կեղծ; ընթացիկ Միլիս = 0; նախորդ Միլիս = 0;

animation1 Հետաձգում = քայլումԼարություն * 1000;

animation2Delay = wavingLength * 1000; animation3Delay = happyLength * 1000; animation4Delay = walkingOutLength * 1000;

// currentAnimationDelay = animation1Delay * 1000;

lightRed = ճշմարիտ; }

դատարկ շրջան () {

// ուշացում (20);

// տեղադրեք ձեր հիմնական կոդը այստեղ ՝ բազմիցս գործարկելու համար. unsigned long currentMillis = millis (); if (buttonPressed == true) {if (animation1Done == false) {if (currentMillis - previousMillis> animation1Delay) {Serial.println ("0"); նախորդ Միլիս = ընթացիկ Միլիս; animation1Done = true; }} else if (animation2Done == false և animation1Done == true) {if (currentMillis - previousMillis> animation2Delay) {Serial.println ("1"); նախորդ Միլիս = ընթացիկ Միլիս; animation2Done = ճշմարիտ; }} else if (animation3Done == false և animation2Done == true) {if (currentMillis - previousMillis> animation3Delay) {Serial.println ("2"); //Serial.println(" sound:green "); նախորդ Միլիս = ընթացիկ Միլիս; animation3Done = ճշմարիտ; lightRed = կեղծ; }} else if (animation4Done == false և animation3Done == true) {if (currentMillis - previousMillis> animation4Delay) {previousMillis = currentMillis; animation4Done = ճշմարիտ; Serial.println ("FLSH"); }}}

եթե (Serial.available ()) {

String str = Serial.readString (); if (str == "CMD: BUTTON_PRESSED") {

animation1Done = կեղծ;

animation2Done = կեղծ; animation3Done = կեղծ; animation4Done = կեղծ; animation5Done = կեղծ;

animation1 Հետաձգում = քայլումԼարություն * 1000;

animation2Delay = wavingLength * 1000; animation3Delay = happyLength * 1000; animation4Delay = walkingOutLength * 1000;

// currentAnimationDelay = animation1Delay * 1000;

lightRed = ճշմարիտ; Serial.println ("3"); buttonPressed = ճշմարիտ; նախորդ Միլիս = ընթացիկ Միլիս; }

եթե (str == "ԿԱՐՄԻՐ") {

blockLight = կեղծ; lightRed = ճշմարիտ; }

եթե (str == "Կանաչ") {

blockLight = կեղծ; lightRed = կեղծ; }

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

blockLight = ճշմարիտ; analogWrite (g, 255); } if (str == "LIGHT: GREEN: ON") {blockLight = true; analogWrite (g, 0); } //Serial.println(str); }

եթե (blockLight == կեղծ) {

եթե (lightRed == true) {

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

Խորհուրդ ենք տալիս: