ዝርዝር ሁኔታ:

ብልጥ በይነተገናኝ የትራፊክ መብራት 5 ደረጃዎች (ከስዕሎች ጋር)
ብልጥ በይነተገናኝ የትራፊክ መብራት 5 ደረጃዎች (ከስዕሎች ጋር)

ቪዲዮ: ብልጥ በይነተገናኝ የትራፊክ መብራት 5 ደረጃዎች (ከስዕሎች ጋር)

ቪዲዮ: ብልጥ በይነተገናኝ የትራፊክ መብራት 5 ደረጃዎች (ከስዕሎች ጋር)
ቪዲዮ: 🔴 የሐማስ ብልጠት ሂዝቦላ ፈንጂ በመትከል 40 የእስራኤልን ታንኮች በማፈንዳት ታጋቾችን አድኗል። 2024, ህዳር
Anonim
ብልጥ በይነተገናኝ የትራፊክ መብራት
ብልጥ በይነተገናኝ የትራፊክ መብራት

የዓለምን ምርጥ እና በጣም በይነተገናኝ የትራፊክ መብራት ለመገንባት ዝግጁ ነዎት? ጥሩ! በዚህ መማሪያ ውስጥ አርዱዲኖን በመጠቀም እንዴት አንድን እራስዎ መገንባት እንደሚችሉ እናብራራለን።

ተፈላጊ ክፍሎች-- አርዱinoኖ (..duh)- LM317 Mosfet- 2x 60cm አናሎግ RGB LED Strips (12V)- የ PVC ቱቦ (1 ሜ x 125 ሚሜ)- ኬብሎች (ቀይ እና ጥቁር)- ለብርሃን-ካፕ የብረት ሳህኖች- Acryl for the light -ኮኮዎች (ለ.svg አዶዎች flaticon.com ን ይመልከቱ)- ስፕሬካን ጥቁር እና ነጭ ቀለም- ኤሌክትሪክ ቴፕ- ሁሉም አስፈላጊ የሽያጭ ክፍሎች- ከሚያስፈልገው ጋሻ ጋር ማሳያ (በትምህርቱ ውስጥ ጥቅም ላይ ያልዋለ)

ደረጃ 1: ደረጃ 1: ቀላል-ካፕዎችን ያድርጉ

ደረጃ 1-የመብራት መያዣዎችን ያድርጉ
ደረጃ 1-የመብራት መያዣዎችን ያድርጉ

ንድፉ በእውነቱ በእርስዎ ላይ የተመሠረተ ነው። መብራቶቹን ለመያዝ 15x15 ሳ.ሜ. የብረት ሳህኖቹን በትክክለኛው መጠን ቆርጠናል እና በትክክለኛው ቅርጾች ላይ ካፖችን ለማጠፍ የብረት ማጠፊያ (የለም ፣ ከአቫታር አይደለም) ተጠቀምን። የጀርባ ሰሌዳዎች ከተለየ አካል የተሠሩ ናቸው።

ደረጃ 2 - ደረጃ 2 - የ PVC ምሰሶውን ማዘጋጀት

ደረጃ 2 የ PVC ምሰሶውን ማዘጋጀት
ደረጃ 2 የ PVC ምሰሶውን ማዘጋጀት

በፒ.ቪ.ዲ. ምሰሶ ውስጥ 2 ቀዳዳዎችን ከብርሃን-ካፕዎች ጋር ለመገጣጠም ይቁረጡ። ከዚያ መላውን ነገር በጥቁር ለመሳል ጥቁር ቀለም መርጫ ይጠቀሙ። ከፈለጉ በፖሊው የታችኛው ክፍል (በኔዘርላንድስ የተለመደ) ላይ ነጭ ጭረቶችን ማከል ይችላሉ።

ደረጃ 3: ደረጃ 3 - የ RGB LED Strips ን ማሰባሰብ እና አሲሪሊክ ሳህኖችን ማጠጣት

ደረጃ 3: የ RGB LED Strips ን ማሰባሰብ እና የአሲሪክ ሳህኖችን ማጠጣት
ደረጃ 3: የ RGB LED Strips ን ማሰባሰብ እና የአሲሪክ ሳህኖችን ማጠጣት
ደረጃ 3: የ RGB LED Strips ን ማሰባሰብ እና የአሲሪክ ሳህኖችን ማጠጣት
ደረጃ 3: የ RGB LED Strips ን ማሰባሰብ እና የአሲሪክ ሳህኖችን ማጠጣት

በመቀጠል በብርሃን-ካፕ ውስጥ የ RGB LED strips መሰብሰብ ያስፈልግዎታል። በመያዣው ዙሪያ በጥብቅ ያስገቧቸው ፣ እና በተቻለ መጠን ከፊት ለፊት ያድርጓቸው።

በመቀጠል የተመረጠውን ምልክት በአክሪሊክ ሳህን ላይ ማረም ያስፈልግዎታል። ጥቂት ቴፕ ያግኙ እና መላውን የ acrylic ሳህን ይሸፍኑ። ከዚያ የሚፈልጉትን ቅርፅ/ምስል ይቁረጡ። ከዚህ በኋላ እንደ በረዶ-መስታወት የሚመስል ውጤት ለማግኘት ሳህኑን በአሸዋ ማብረር ይችላሉ።

ደረጃ 4 ደረጃ 4 የ RGB LED Strips ን ከአርዲኖ ጋር ያገናኙ።

ደረጃ 4 የ RGB LED Strips ን ከአርዲኖ ጋር ያገናኙ።
ደረጃ 4 የ RGB LED Strips ን ከአርዲኖ ጋር ያገናኙ።

አሁን አስቸጋሪው ክፍል ይመጣል -የ RGB LED Strips ን ከአርዲኖ ጋር ማገናኘት። ካስማዎቹን በሚያገናኙበት ጊዜ 12 ቮዎን በ 12 ቮዎ በእርስዎ ጥብጣብ ላይ ማስቀመጥዎን ያረጋግጡ። በእያንዳንዱ ቀለም መካከል ፣ ስለዚህ ቀይ ወይም አረንጓዴ ፣ የትንኝ ማስቀመጫ ማስቀመጥ ያስፈልግዎታል። የመሪውን ስትሪፕ መረጃ ከትንፋሹ መካከለኛ ፒን ፣ እና የግራውን ፒን ከእርስዎ አርዱinoኖ ጋር ያገናኙ። ትክክለኛው ፒን ወደ አርዱዲኖ መሬት መመለስ አለበት።

ደረጃ 5 - ደረጃ 5 - የአርዱዲኖ ኮድ ይፃፉ

ደረጃ 5 የአርዲኖን ኮድ ይፃፉ
ደረጃ 5 የአርዲኖን ኮድ ይፃፉ

ይህ የአርዱዲኖ ኮድ በብሉቱዝ ቁጥጥር ይደረግበታል ፣ ምክንያቱም እኛ ውስጣዊ ማሳያ ስላልተጠቀምን። ስለዚህ ኮዱ በሉፕ () ተግባር ውስጥ በብሉቱዝ መልእክቶች በኩል ቁጥጥር ይደረግበታል።

#ገላጭ r 6 #ይግለጹ g 11 #ያካትቱ

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

#በቁጣ መለየት ርዝመት 4

#መግለፅ መውደቅ ርዝመት 3 #መግለፅ ደስተኛነት 4 ኛ #በስልክ ላይ መወሰን 13 ኛ #ማውራት መግለፅ ርዝመት 5 #የእግር ጉዞን መለየት 4 ኛ #የእግር ጉዞን መውጫ 4 #መግለፅን ማወዛወዝ ርዝመት 6

bool buttonPressed;

int currentMillis; int previousMillis;

int animation1Delay;

int animation2Delay; int animation3Delay; int animation4Delay;

bool animation1 ተከናውኗል = ሐሰት;

bool animation2Done = ሐሰት; bool animation3 ተከናውኗል = ሐሰት; bool animation4Done = ሐሰት; bool animation5 ተከናውኗል = ሐሰት;

bool blockLight = ሐሰት;

bool lightRed = እውነት;

int currentAnimationDelay;

ባዶነት ማዋቀር () {

// አንድ ጊዜ ለማሄድ የማዋቀሪያ ኮድዎን እዚህ ያስገቡ - pinMode (r ፣ OUTPUT) ፤ pinMode (g ፣ OUTPUT);

Serial.begin (9600);

mySerial.begin (38400); Serial.setTimeout (25); buttonPressed = ሐሰት; currentMillis = 0; previousMillis = 0;

animation1Delay = የእግር ጉዞ ርዝመት * 1000;

animation2Delay = ማወዛወዝ ርዝመት * 1000; animation3Delay = happyLength * 1000; animation4Delay = walkOutLength * 1000;

// currentAnimationDelay = animation1Dlay * 1000;

lightRed = እውነት; }

ባዶነት loop () {

// መዘግየት (20);

// በተደጋጋሚ ለማስኬድ ዋና ኮድዎን እዚህ ያስቀምጡ - ያልተፈረመ ረዥም የአሁኑ ሚሊስ = ሚሊስ (); ከሆነ (buttonPressed == true) {if (animation1Done == false) {if (currentMillis - previousMillis> animation1Delay) {Serial.println ("0"); previousMillis = currentMillis; animation1 ተከናውኗል = እውነት; }} ሌላ ከሆነ (animation2Done == ሐሰተኛ እና እነማ 1 ተከናውኗል == እውነት) {ከሆነ (የአሁኑ ሚሊስ - ቀዳሚ ሚሊስ> animation2Delay) {Serial.println ("1"); previousMillis = currentMillis; animation2 ተከናውኗል = እውነት; }} ሌላ ከሆነ (animation3Done == ሐሰት እና እነማ 2 ተከናውኗል == እውነት) {ከሆነ (currentMillis - previousMillis> animation3Delay) {Serial.println ("2"); //Serial.println("sound:green »); previousMillis = currentMillis; animation3 ተከናውኗል = እውነት; lightRed = ሐሰት; }} ሌላ ከሆነ (animation4Done == ሐሰት እና እነማ 3 ተከናውኗል == እውነት) {ከሆነ (currentMillis - previousMillis> animation4Delay) {previousMillis = currentMillis; animation4 ተከናውኗል = እውነት; Serial.println ("FLSH"); }}}

ከሆነ (Serial.available ()) {

ሕብረቁምፊ str = Serial.readString (); ከሆነ (str == "CMD: BUTTON_PRESSED") {

animation1 ተከናውኗል = ሐሰት;

animation2 ተከናውኗል = ሐሰት; animation3 ተከናውኗል = ሐሰት; animation4 ተከናውኗል = ሐሰት; animation5 ተከናውኗል = ሐሰት;

animation1Delay = የእግር ጉዞ ርዝመት * 1000;

animation2Delay = ማወዛወዝ ርዝመት * 1000; animation3Delay = happyLength * 1000; animation4Delay = walkOutLength * 1000;

// currentAnimationDelay = animation1Dlay * 1000;

lightRed = እውነት; Serial.println ("3"); buttonPressed = እውነት; previousMillis = currentMillis; }

ከሆነ (str == "RED") {

blockLight = ሐሰት; lightRed = እውነት; }

ከሆነ (str == "አረንጓዴ") {

blockLight = ሐሰት; lightRed = ሐሰት; }

ከሆነ (str == "LIGHT: GREEN: OFF") {

blockLight = እውነት; analogWrite (g, 255); } ከሆነ (str == "LIGHT: GREEN: ON") {blockLight = true; analogWrite (g, 0); } //Serial.println(str); }

ከሆነ (blockLight == ሐሰት) {

ከሆነ (lightRed == እውነት) {

analogWrite (r, 0); analogWrite (g, 255); } ከሆነ (lightRed == ሐሰት) {analogWrite (r, 255); analogWrite (g, 0); }}}

የሚመከር: