ዝርዝር ሁኔታ:

ቀላል DIY የቀለም ዳሳሽ ከአስማትቢት 5 ደረጃዎች
ቀላል DIY የቀለም ዳሳሽ ከአስማትቢት 5 ደረጃዎች

ቪዲዮ: ቀላል DIY የቀለም ዳሳሽ ከአስማትቢት 5 ደረጃዎች

ቪዲዮ: ቀላል DIY የቀለም ዳሳሽ ከአስማትቢት 5 ደረጃዎች
ቪዲዮ: አምፖሉን ከ PVC የአየር ማስገቢያ ቱቦ እንዴት ቀላል ማድረግ እንደሚቻል - እራስዎ ያድርጉት / DIY / PVC Pipe Lamp 2024, ህዳር
Anonim
Image
Image

በዚህ መማሪያ ውስጥ Magicbit ን ከአርዱዲኖ ጋር በመጠቀም ቀለል ያለ የቀለም ዳሳሽ እንዴት እንደሚሠራ እንማራለን።

አቅርቦቶች

  • Magicbit
  • ዩኤስቢ-ኤ ወደ ማይክሮ-ዩኤስቢ ገመድ

ደረጃ 1 - ታሪክ

የሃርድዌር ማዋቀር
የሃርድዌር ማዋቀር

ሠላም ወንዶች ፣ አንዳንድ ጊዜ የቀለም ዓላማዎችን ለአንዳንድ ዓላማዎች መጠቀም አለብዎት። ግን እንዴት እንደሚሠሩ አታውቁ ይሆናል። ስለዚህ በዚህ መማሪያ ውስጥ Magicbit ን ከአርዱዲኖ ጋር በመጠቀም ቀላል የ DIY ቀለም ዳሳሽ እንዴት እንደሚሠሩ ይማራሉ። እንጀምር።

ደረጃ 2 - ጽንሰ -ሀሳብ እና ዘዴ

በዚህ ፕሮጀክት ውስጥ ቀይ ፣ አረንጓዴ እና ሰማያዊ ቀለሞችን መለየት የሚችል የቀለም ዳሳሽ እንዲገነቡ እናስተምራለን ብለን እንጠብቃለን። ይህ በጣም መሠረታዊ ምሳሌ ነው። ስለዚህ ይህንን እንዴት ማድረግ እንደሚቻል። ለዚሁ ዓላማ የ MagicGB እና አብሮገነብ LDR የ RGB ሞጁልን እንጠቀማለን። በመጀመሪያ ስለ አንዳንድ ጽንሰ -ሀሳብ መማር አለብዎት። ያ ማለት ስለ ብርሃን ነፀብራቅ መጠን። አሁን ከአንተ ጥያቄ እጠይቃለሁ። አብዛኛው ቀይ ቀለም ብርሃንን የሚያንፀባርቀው ምን ዓይነት ባለቀለም ገጽ ፣ እንዲሁም አረንጓዴ እና ሰማያዊ መብራቶችን በአብዛኛው የሚያንፀባርቁ ምን ዓይነት ገጽታዎች? ትንሽ አስብ። መልሱ ግን ቀላል ነው። ቀይ ቀለም ያለው ወለል በአብዛኛው ቀይ ቀለም ብርሃንን ያንፀባርቃል። እንዲሁም አረንጓዴ እና ሰማያዊ ገጽታዎች አረንጓዴ እና ሰማያዊ መብራቶችን ያንፀባርቃሉ። ስለዚህ በዚህ ፕሮጀክት ውስጥ ያንን ጽንሰ -ሀሳብ እንጠቀማለን። ቀለምን ለመለየት ቀይ ፣ አረንጓዴ እና ሰማያዊ መብራቶችን አንድ በአንድ እናወጣለን። የ LDR ዋጋን በመጠቀም የማንፀባረቅ መጠንን በምንለካበት ጊዜ ሁሉ።አንዳንድ ብርሃን ከሌሎቹ ሁለት መብራቶች የበለጠ ነፀብራቅ የሚሰጥ ከሆነ ያኛው ገጽታ በአብዛኛው ባለቀለም ወለል ሊንፀባረቅ ይገባል።

ደረጃ 3 የሃርድዌር ማዋቀር

ይህ በጣም ቀላል። የ RGB ሞዱልዎን ወደ Magicbit የላይኛው ቀኝ ወደብ ይሰኩ። ይህ ሞጁል WS2812B Neopixel LED አላቸው። ይህ LED 4 ፒኖች አሉት። ሁለት ለኃይል እና ሁለት ለውሂብ ወደ ውስጥ እና ወደ ውጭ። አንድ መሪን ስለምንጠቀም የኃይል ፒኖችን እና መረጃን በፒን ውስጥ ብቻ እንፈልጋለን። ያ ሞጁል ከሌለዎት እና ኒዮፒክስል ሞዱል መግዛት ይችላሉ። እንዲህ ዓይነቱን ሞጁል ከገዙ የኃይል ፒኖችን እና መረጃን በፒን ውስጥ ከአስማትቢት ጋር ማገናኘት አለብዎት። ያ በጣም ቀላል ነው። የ RGB ሞዱል እና የ D33 ፒን ወደ የውሂብ ፒን የኃይል ማያያዣዎች VCC እና GND of Magicbit ን ያገናኙ።

ደረጃ 4 የሶፍትዌር ማዋቀር

በፕሮግራሙ የተከናወነው አብዛኛው ክፍል። የእኛን Magicbit ፕሮግራም ለማዘጋጀት አርዱዲኖ አይዲኢን እንጠቀማለን። በኮዱ ውስጥ ሁለት ቤተ -መጽሐፍትን እንጠቀማለን። እነሱ ለቁጥጥር Neopixel LED እና Adafruit OLED ቤተ -መጽሐፍት ለ OLED እጀታ Adafruit Neopixel ቤተ -መጽሐፍት ናቸው። በማዋቀሩ ውስጥ የእኛን ግብዓቶች እና ውፅዓት እናዋቅራለን። እንዲሁም በ Magicbit ላይ አብሮ የተሰራውን የ OLED ማሳያ ያዋቅሩ። በሉፕው ውስጥ የግራ እጅ የግፊት ቁልፍ ተጭኖ ወይም አስማት ቢት አለመሆኑን እናረጋግጣለን። እሱ ከተጫነ ፣ የግብዓት ምልክቱ 0. ነው ምክንያቱም እሱ ቀድሞውኑ በቦርዱ ተጎትቷል። እሱ ከተጫነ ከዚያ የቀለም ምርመራ እናደርጋለን። ካልሆነ ከዚያ ማያ ገጹ “ቀለም የለም” የሚለውን መግለጫ ያሳያል። አዝራሩ ሲጫን ከዚያ ቀይ ፣ አረንጓዴ እና ሰማያዊ መብራቶችን በራስ -ሰር ያብሩ እና የቀለሞቹን ነፀብራቅ መጠን ወደ ሶስት ተለዋዋጮች ያከማቹ። በመቀጠል እነዚያን እሴቶች አነፃፅረን እና እንደ የውጤት ቀለም ለማሳየት ከፍተኛውን የእሴት ቀለም እንመርጣለን።

ስለዚህ የማይክሮ ዩኤስቢ ገመድን ከአስማትቢት ጋር ያገናኙ እና የቦርድ ዓይነት እና ኮም ወደቦችን በትክክል ይምረጡ። አሁን ኮዱን ይስቀሉ። ከዚያ የእኛን ዳሳሽ ለመፈተሽ ጊዜው አሁን ነው። ያንን ለመፈተሽ በ LDR እና RGB ሞዱል ላይ ቀይ ፣ አረንጓዴ ወይም ሰማያዊ የወለል ወረቀት ወይም የሉህ የላይኛው ክፍል ይያዙ እና የግራ ግፊት ቁልፍን ይጫኑ። ከዚያ የ OLED ማሳያ የወለሉ ቀለም ምን እንደሆነ ያሳያል። ያ የተሳሳተ ከሆነ ምክንያቱ አንዳንድ ቀለሞች ከፍተኛ የብርሃን ጥንካሬ አላቸው። በእያንዳንዱ አረንጓዴ ወለል ላይ እንደ ምሳሌ ፣ ውጤቱ ቀይ ነው ፣ ከዚያ ከተወሰነ መጠን ቀይ የብርሃን ብሩህነት መቀነስ አለብዎት። ምክንያቱም ቀይ መብራት በዚያ ሁኔታ ውስጥ በጣም ከፍተኛ ብሩህነት አለው። ስለዚህ ከፍተኛ ነፀብራቅ አለው። ብሩህነትን እንዴት እንደሚቆጣጠሩ የማያውቁ ከሆነ ከዚህ በታች ባለው አገናኝ ውስጥ አጋዥ ስልጠናን ይመልከቱ።

magicbit-arduino.readthedocs.io/en/latest/

በዚህ አገናኝ ውስጥ ያንን የ RGB ሞዱል ከአስማትቢት እንዴት እንደሚቆጣጠር ማግኘት ይችላሉ። እንዲሁም Magicbit ን በመጠቀም ከ LDR ጋር እንዴት እንደሚሠሩ እና የግፊት ቁልፍን ያገኛሉ። ያንን ሰነድ ያንብቡ እና የቀለም ዳሳሽ እንዴት እንደሚሻሻል የበለጠ ያጠናሉ። ምክንያቱም ይህ የቀለም ዳሳሾች እንዴት እንደሚሠሩ በጣም መሠረታዊ ምሳሌ ነው። አብዛኛዎቹ ዓይነት የቀለም ዳሳሾች በዚህ መንገድ ይሰራሉ። ስለዚህ የአካባቢውን የብርሃን ጫጫታ እና ሌሎች ድምጾችን በማስወገድ ይህንን ለማሻሻል ይሞክሩ።

ደረጃ 5: የአርዱዲኖ የቀለም ዳሳሽ ኮድ

#ያካትቱ

#ጥራት LED_PIN 33

#ጥራት LED_COUNT 1 Adafruit_NeoPixel LED (LED_COUNT ፣ LED_PIN ፣ NEO_RGB + NEO_KHZ800); #ያካትቱ #ያካትቱ #ያካትቱ #ገላጭ OLED_RESET 4 Adafruit_SSD1306 ማሳያ (128 ፣ 64) ፤ #መግለፅ LDR 36 #ገላጭ አዝራር 35 int R_value ፣ G_value ፣ B_value; ባዶነት ማዋቀር () {LED.begin (); LED.show (); pinMode (LDR ፣ ማስገቢያ); pinMode (አዝራር ፣ ግቤት); display.begin (SSD1306_SWITCHCAPVCC ፣ 0x3C); display.display (); መዘግየት (1000); display.clearDisplay (); Serial.begin (9600); } ባዶነት loop () {ከሆነ (digitalRead (አዝራር) == 0) {// አዝራሩ ከተጫነ LED.setPixelColor (0 ፣ LED. Color (0 ፣ 50 ፣ 0)) ፤ // በ redcolour LED.show () ላይ; መዘግየት (100); R_value = analogRead (LDR); // ቀይ ተራራ LED.setPixelColor (0 ፣ LED. Color (150 ፣ 0 ፣ 0)) ያግኙ ፤ መዘግየት (100); G_value = analogRead (LDR); // አረንጓዴ ተራራ LED.setPixelColor (0 ፣ LED. Color (0 ፣ 0 ፣ 255)) ያግኙ ፤ // በ bluecolour LED.show () ላይ; መዘግየት (100); B_value = analogRead (LDR) ፤ // (R_value> G_value && R_value> B_value) {// ቀይ በጣም የሚያንፀባርቅ ማሳያ (“ቀይ” ፣ 3) ከሆነ ሰማያዊ ተራራ ያግኙ። } ሌላ ከሆነ (G_value> R_value && G_value> B_value) {// አረንጓዴ በጣም የሚያንፀባርቅ ማሳያ ("አረንጓዴ" ፣ 3) ፤ } ሌላ ከሆነ (B_value> R_value && B_value> G_value) {// ሰማያዊ በጣም የሚያንፀባርቅ ማሳያ ("BLUE" ፣ 3); } Serial.print ("RED ="); Serial.print (R_value); Serial.print ("GREEN ="); Serial.print (G_value); Serial.print ("BLUE ="); Serial.println (B_value); } ሌላ {LED.setPixelColor (0 ፣ LED. Color (0 ፣ 0 ፣ 0)) ፤ // ጠፍቷል RGB LED.show (); ማሳያ ("ቀለም የለም" ፣ 2); } ባዶነት ማሳያ (String commond, int size) {// የማሳያ ውሂብ ማሳያ። display.setTextSize (መጠን); // መደበኛ 1: 1 የፒክሰል ልኬት ማሳያ.setTextColor (ነጭ); // ነጭ የጽሑፍ ማሳያ ይሳሉ። ቅንጅት ጠቋሚ (0 ፣ 20) // ከላይ-ግራ ጥግ display.println (commond) ላይ ይጀምሩ; display.display (); }

የሚመከር: