ዝርዝር ሁኔታ:

የቀለም መቀላቀያ ከአርዱዲኖ ጋር - 9 ደረጃዎች (ከስዕሎች ጋር)
የቀለም መቀላቀያ ከአርዱዲኖ ጋር - 9 ደረጃዎች (ከስዕሎች ጋር)

ቪዲዮ: የቀለም መቀላቀያ ከአርዱዲኖ ጋር - 9 ደረጃዎች (ከስዕሎች ጋር)

ቪዲዮ: የቀለም መቀላቀያ ከአርዱዲኖ ጋር - 9 ደረጃዎች (ከስዕሎች ጋር)
ቪዲዮ: ለመኝታ ቤት የሚሆኑ የግርግዳ ቀለም(wall colour combination for bed room) 2024, ሀምሌ
Anonim
Image
Image

በደራሲው ተጨማሪ ይከተሉ -

የቀለም ሉል ከአርዱዲኖ ጋር
የቀለም ሉል ከአርዱዲኖ ጋር
Doodle Bot ከዲዛይን ሂደት ጋር
Doodle Bot ከዲዛይን ሂደት ጋር
Doodle Bot ከዲዛይን ሂደት ጋር
Doodle Bot ከዲዛይን ሂደት ጋር
አርዱዲኖ ንካ ፒያኖ
አርዱዲኖ ንካ ፒያኖ
አርዱዲኖ ንካ ፒያኖ
አርዱዲኖ ንካ ፒያኖ

ስለ: ሁል ጊዜ መማር….. ተጨማሪ ስለ tliguori330 »

የቀለም መቀላቀያ ከአርዱዲኖ ጋር ለሚሠራ እና ለማደግ ለማንኛውም ሰው ታላቅ ፕሮጀክት ነው። በዚህ አስተማሪ መጨረሻ 3 ቀለበቶችን በማዞር ሊታሰብ ከሚችል እያንዳንዱ ቀለም ማለት ይቻላል መቀላቀል እና ማዛመድ ይችላሉ። የተሟላ ጀማሪ እንኳን በተሳካ ሁኔታ ሊያጠናቅቀው የሚችል የክህሎት ደረጃ ዝቅተኛ ነው ፣ ግን ደግሞ ልምድ ላለው የእንስሳት ሐኪም ለመደሰት የሚያስደስት ነው። የዚህ ፕሮጀክት ዋጋ ከምንም ቀጥሎ ነው እና አብዛኛዎቹ የአርዱዲኖ ዕቃዎች ከሚያስፈልጉት ቁሳቁሶች ጋር ይመጣሉ። በዚህ ኮድ ዋና ላይ አርዱዲኖን የሚጠቀም ማንኛውም ሰው ሊረዳው የሚፈልገው አንዳንድ አዝናኝ የአርዲኖ ተግባራት አሉ። እኛ እንደ ሌላ የተለመደ ተግባር ካርታ () ብለን ስለ አናሎግ አንባቢ () እና የአናሎግ ጻፍ () ተግባራት በጥልቀት እንገባለን። እነዚህ አገናኞች ለእነዚህ ተግባራት ወደ አርዱዲኖ ማጣቀሻ ገጾች ያመጣዎታል።

ደረጃ 1: ክፍሎች እና ተጓዳኞች

ክፍሎች እና Componets
ክፍሎች እና Componets
ክፍሎች እና Componets
ክፍሎች እና Componets
ክፍሎች እና Componets
ክፍሎች እና Componets
ክፍሎች እና Componets
ክፍሎች እና Componets

አርዱዲኖ ኡኖ

ፖታቲሞሜትር (x3)

RGB LED

220 ohm resistor (x3)

ዝላይ ሽቦዎች (x12)

የዳቦ ሰሌዳ

ደረጃ 2 - እድገትዎን ያቅዱ

እድገትዎን ያቅዱ
እድገትዎን ያቅዱ

ፕሮጀክትዎን እንዴት እንደሚጨርሱ ማቀድ በጣም ጠቃሚ ሊሆን ይችላል። ኮድ ማድረጉ ስለ ሎጂካዊ እድገት ከአንድ ደረጃ ወደ ሌላው ነው። የእኔ ንድፍ እንዴት እንደሚሰራ የሚገልጽ የፍሰት ገበታ ሠርቻለሁ። አጠቃላይ ግቡ እያንዳንዱን የ RGB LED ሶስት ቀለሞችን መቆጣጠር (3 potentsiometers) እንዲኖራቸው ማድረግ ነው። ይህንን ለማሳካት ከወራጅ ገበታ ጋር የሚስማማ ንድፍ መፍጠር አለብን። እንፈልጋለን….

1) 3 የተለያዩ ፖታቲዮሜትሮችን ያንብቡ እና እሴቶቻቸውን በተለዋዋጮች ውስጥ ያስቀምጡ።

2) እነዚያን እሴቶች ከ RGB LED ክልል ጋር እንዲዛመዱ እናደርጋቸዋለን።

3) ከዚያ እነዚያን የተለወጡ እሴቶችን ለእያንዳንዱ የ RGB ቀለሞች እንጽፋለን።

ደረጃ 3 - Potentiometers ን እንዴት እንደሚጠቀሙ

Potentiometers ን እንዴት እንደሚጠቀሙ
Potentiometers ን እንዴት እንደሚጠቀሙ
Potentiometers ን እንዴት እንደሚጠቀሙ
Potentiometers ን እንዴት እንደሚጠቀሙ

በኤሌክትሮኒክስ ዕቃዎች ውስጥ በጣም መሠረታዊ ከሆኑት ክፍሎች አንዱ ፣ ፖታቲሞሜትር በብዙ የተለያዩ ፕሮጄክቶች ውስጥ ሊያገለግል ይችላል። ተጠቃሚው የወረዳውን ተቃውሞ በአካል እንዲለውጥ በመፍቀድ የ potentiometers ተግባር። የ “ፖታቲሞሜትር” በጣም እርሻ ምሳሌው ቀለል ያለ ዲሜመር ነው። ማንሸራተት ወይም ማንኳኳት የወረዳውን ርዝመት ይለውጣል። ረዘም ያለ መንገድ የበለጠ ተቃውሞ ያስከትላል። የጨመረው ተቃውሞ በተገላቢጦሽ የአሁኑን እና ብርሃኑ ይደበዝዛል። እነዚህ በሁሉም የተለያዩ ቅርፅ እና መጠን ሊመጡ ይችላሉ ፣ ግን አብዛኛዎቹ ተመሳሳይ መሠረታዊ ቅንብር አላቸው። አንድ ተማሪ ጊታሩን ለማስተካከል እርዳታ ጠየቀ እና በላዩ ላይ ያሉት ጉብታዎች ልክ እንደ ፖታቲሞሜትሮች ተመሳሳይ መሆናቸውን አወቅን። በአጠቃላይ እርስዎ ከ 5 ቮልት እና ከመሬት ጋር የተገናኙ የውጭ እግሮች ነበሩ እና መካከለኛው እግሩ እንደ A0 ወደ አናሎግ ፒን ይሄዳል

ደረጃ 4: የወልና መርሃግብር ለ (3x) ፖታቲሞሜትር

ለ (3x) Potentiometer የሽቦ መርሃግብር
ለ (3x) Potentiometer የሽቦ መርሃግብር
ለ (3x) Potentiometer የሽቦ መርሃግብር
ለ (3x) Potentiometer የሽቦ መርሃግብር
ለ (3x) Potentiometer የሽቦ መርሃግብር
ለ (3x) Potentiometer የሽቦ መርሃግብር

የግራ አብዛኛው እግር ከ 5 ቪ ጋር ይገናኛል እና የቀኝ እግሩ ከ GND ጋር ይገናኛል። በእርግጥ እነዚህን ሁለት ደረጃዎች መቀልበስ ይችላሉ እና ፕሮጀክቱን በጣም አይጎዳውም። የሚለወጠው ነገር ቢኖር ከመንገዱ ፋንታ ቁልፉን ወደ ግራ ማዞር ብቻ ነው። መካከለኛው እግሩ በአርዱዲኖ ከሚገኙት የአናሎግ ፒኖች አንዱ ጋር ይገናኛል። ሦስት ጉልበቶች ስለሚኖሩን ፣ አሁን በሠራነው ሥራ ላይ በሦስት እጥፍ ማሳደግ እንፈልጋለን። የዳቦ ሰሌዳ በመጠቀም እነዚያ እንዲጋሩ እያንዳንዱ ጉብታ 5v እና GND ይፈልጋል። በዳቦ ሰሌዳው ላይ ያለው ቀይ ክር ከ 5 ቮልት ጋር የተገናኘ እና ሰማያዊው ንጣፍ ከመሬት ጋር የተገናኘ ነው። እያንዳንዱ አንጓዎች የራሱ የአናሎግ ፒን ያስፈልጋቸዋል ስለዚህ ከ A0 ፣ A1 ፣ A2 ጋር ተገናኝተዋል።

ደረጃ 5: AnalogRead () እና ተለዋዋጮችን በመጠቀም

Potentiometer ከእርስዎ ጋር በትክክል ከተዘጋጀ እኛ እነዚያን እሴቶች ለማንበብ ዝግጁ ነን። እኛ ይህንን ለማድረግ ስንፈልግ የአናሎግ አንባቢ () ተግባርን እንጠቀማለን። ትክክለኛው አገባብ አናሎግ አንብብ (ፒን#); ስለዚህ የእኛን መካከለኛ ፖታቲሞሜትር ለማንበብ እኛ አናሎግ አንብብ (A1) ፣ ከቁጥጥሩ ወደ አርዱዲኖ ከሚላኩ ቁጥሮች ጋር ለመስራት ፣ እነዚያን ቁጥሮች በተለዋዋጭ ውስጥ ማስቀመጥም እንፈልጋለን። ፖታቲሞሜትርን ስናነብ እና የአሁኑን ቁጥር በኢንቲጀር ተለዋዋጭ “ቫል” ውስጥ ስናስቀምጥ የኮዱ መስመር ይህንን ተግባር ያከናውናል።

int val = analogRead (A0);

ደረጃ 6: ተከታታይ መቆጣጠሪያን በ 1 ቁልፍ በመጠቀም

Image
Image

በአሁኑ ጊዜ እያንኳኳን ከእቃዎቹ ማግኘት እና በተለዋዋጭ ውስጥ ማከማቸት እንችላለን ፣ ግን እነዚህን እሴቶች ብናይ ጠቃሚ ይሆናል። ይህንን ለማድረግ በተከታታይ መቆጣጠሪያ ውስጥ የተሰራውን መጠቀም አለብን። ከዚህ በታች ያለው ኮድ በእውነቱ በ Arduino IDE ውስጥ የምናካሂደው የመጀመሪያው ንድፍ ነው ፣ ይህም በጣቢያቸው ላይ ማውረድ ይችላል። በባዶ ማዋቀር () ከእያንዳንዱ መካከለኛ እግር ጋር የተገናኙትን የአናሎግ ፒኖችን እንደ INPUT እናነቃለን እና Serial.begin (9600) ን በመጠቀም ተከታታይ መቆጣጠሪያውን እናነቃለን። በመቀጠልም አንዱን አንጓዎች ብቻ እናነባለን እና እንደበፊቱ በተለዋዋጭ ውስጥ እናስቀምጠዋለን። ለውጡ አሁን በተለዋጩ ውስጥ የተከማቸበትን ቁጥር የሚያተም መስመር እንጨምራለን። ንድፉን ካጠናቀሩ እና ካሄዱ ከዚያ ተከታታይ ማሳያዎን መክፈት እና በማያ ገጹ ላይ የሚንሸራተቱ ቁጥሮችን ማየት ይችላሉ። እኛ እያነበብን እና ሌላ ቁጥር በማተም ኮዱ በሚሽከረከርበት እያንዳንዱ ጊዜ። ከ A0 ጋር የተገናኘውን አንጓ ከዞሩት ከ 0-1023 የሚደርሱ እሴቶችን ማየት አለብዎት። በኋላ ላይ ግቡ ለማስቀመጥ እና ለማተም 2 ተጨማሪ የአናሎግ ንባቦችን እና 2 የተለያዩ ተለዋጮችን የሚጠይቁትን ሁሉንም 3 potntiometers ማንበብ ነው።

ባዶነት ማዋቀር () {

pinMode (A0 ፣ ግቤት); pinMode (A1 ፣ ግቤት); pinMode (A2 ፣ ግቤት); Serial.begin (9600); } ባዶ ክፍተት () {int val = analogRead (A0); Serial.println (val); }

ደረጃ 7 የ RGB LED ን በመጠቀም

የ RGB LED ን በመጠቀም
የ RGB LED ን በመጠቀም
የ RGB LED ን በመጠቀም
የ RGB LED ን በመጠቀም
የ RGB LED ን በመጠቀም
የ RGB LED ን በመጠቀም

የ 4 እግሩ አርጂቢኤል ኤል i ለአርዱዲኖ ከምወዳቸው ክፍሎች አንዱ። አገኘዋለሁ ከ 3 መሠረታዊ ቀለሞች 3 ውህዶች ማለቂያ የሌለው ቀለሞችን መፍጠር የሚችልበት አስደናቂ። ቅንብሩ ከማንኛውም መደበኛ LED ጋር ይመሳሰላል ግን እዚህ እኛ በመሠረቱ ቀይ ፣ ሰማያዊ እና አረንጓዴ LED ዎች አንድ ላይ ተጣምረዋል። አጭር እግሮች እያንዳንዳቸው በአርዱዲኖ ላይ ባለው የ PWM ፒኖች በአንዱ ቁጥጥር ይደረግባቸዋል። ረጅሙ እግር ከ 5 ቮልት ወይም ከመሬት ጋር ይገናኛል ፣ የእርስዎ በተለመደው አኖዶድ ወይም በተለመደው ካቶዴ LED ውስጥ ከሆነ። ይህንን ችግር ለመፍታት ሁለቱንም መንገዶች መሞከር ያስፈልግዎታል። ለመለወጥ ቀላል መሆን ካለበት ቀድሞውኑ 5v እና GND ከዳቦ ሰሌዳው ጋር ተገናኝተናል። ከዚህ በላይ ያለው ሥዕላዊ መግለጫ እንዲሁ 3 ተቃዋሚዎችን በመጠቀም ያሳያል። እኔ ባላገኘሁት እና ብዙውን ጊዜ ይህንን እርምጃ እዘለለዋለሁ እና LED በእኔ ላይ ይነፋል።

ቀለሞችን ለመሥራት ምን ያህል ቀይ ፣ ሰማያዊ ወይም አረንጓዴ እንደሚጨምር ለመቆጣጠር የአናሎግ ፃፍ () ተግባርን እንጠቀማለን። ይህንን ተግባር ለመጠቀም የትኛው ፒን# እንነጋገራለን እና ከ 0-255 መካከል ያለውን ቁጥር መናገር ያስፈልግዎታል። 0 ሙሉ በሙሉ ጠፍቷል እና 255 የአንድ ቀለም ከፍተኛው መጠን ነው። ቀይ እግርን ከፒን 9 ፣ አረንጓዴ ከ 10 እና ሰማያዊ ከፒን 11 ጋር እናገናኘው። ይህ የትኛው ቀለም የትኛው ቀለም እንደሆነ ለማወቅ አንዳንድ ሙከራዎችን እና ስህተቶችን ሊወስድ ይችላል። ሐምራዊ ቀለም ለመሥራት ከፈለግኩ ብዙ ቀይ ፣ አረንጓዴ እና ምናልባትም ሰማያዊ ጥንካሬ ግማሽ ማድረግ እችላለሁ። በእነዚህ ቁጥሮች እንዲያስቡበት እመክርዎታለሁ ፣ በእውነቱ አስደሳች ነው። አንዳንድ የተለመዱ ምሳሌዎች ከላይ ባሉት ሥዕሎች ውስጥ አሉ

ባዶነት ማዋቀር () {

pinMode (9 ፣ ውፅዓት); pinMode (10 ፣ ውፅዓት); pinMode (11 ፣ ውፅዓት); } ባዶነት loop () {analogWrite (9, 255); አናሎግ ፃፍ (10 ፣ 0); አናሎግ ፃፍ (11 ፣ 125)}

ደረጃ 8: RGB LED ን ለመቆጣጠር በአንድ ፖንቲቲሜትር በመጠቀም (በአንድ ሳንካ)

RGB LED ን ለመቆጣጠር (በአንድ ሳንካ) ለመቆጣጠር Potentiometers ን በመጠቀም
RGB LED ን ለመቆጣጠር (በአንድ ሳንካ) ለመቆጣጠር Potentiometers ን በመጠቀም
RGB LED ን ለመቆጣጠር (በአንድ ሳንካ) ለመቆጣጠር Potentiometers ን በመጠቀም
RGB LED ን ለመቆጣጠር (በአንድ ሳንካ) ለመቆጣጠር Potentiometers ን በመጠቀም
RGB LED ን ለመቆጣጠር (በአንድ ሳንካ) ለመቆጣጠር Potentiometers ን በመጠቀም
RGB LED ን ለመቆጣጠር (በአንድ ሳንካ) ለመቆጣጠር Potentiometers ን በመጠቀም

ሁለቱን ኮዶቻችንን በአንድ ላይ ማዋሃድ ለመጀመር ጊዜው አሁን ነው። ሁሉንም 3 ኩርባዎች እና የ RGB LED ን ለማሟላት በመደበኛ የዳቦ ሰሌዳ ላይ በቂ ቦታ ሊኖርዎት ይገባል። ሀሳቡ ለቀይ ሰማያዊ እና አረንጓዴ እሴቶችን ከመተየብ ይልቅ ቀለሞችን ያለማቋረጥ ለመቀየር ከእያንዳንዱ ፖቲኖሜትር የተቀመጡ እሴቶችን እንጠቀማለን። በዚህ ሁኔታ 3 ተለዋዋጮች ያስፈልጉናል። ቀይ ፣ አረንጓዴ ፣ ሰማያዊ (ቫልቫል) ሁሉም የተለያዩ ተለዋዋጮች ናቸው። የፈለጉትን ሁሉ እነዚህን ተለዋዋጮች መሰየም እንደሚችሉ ያስታውሱ። “አረንጓዴ” ቁልፍን ካዞሩ እና ቀይ መጠኑ ከተቀየረ ፣ ስሞቹን በትክክል ለማዛመድ መለወጥ ይችላሉ። አሁን እያንዳንዱን አንጓ ማዞር እና ቀለሞችን መቆጣጠር ይችላሉ !!

ባዶነት ማዋቀር () {

pinMode (A0 ፣ ግቤት); pinMode (A1 ፣ ግቤት); pinMode (A2 ፣ ግቤት); pinMode (9 ፣ ውፅዓት); pinMode (10 ፣ ውፅዓት); pinMode (11 ፣ ውፅዓት); } ባዶነት ማዋቀር () {int redVal = analogRead (A0); int greenVal = analogRead (A1); int blueVal = analogRead (A2); አናሎግ ፃፍ (9 ፣ redVal); አናሎግ ፃፍ (10 ፣ አረንጓዴ ቫል); አናሎግ ፃፍ (11 ፣ ሰማያዊ ቫል); }

ደረጃ 9: ጉርሻ: ካርታ () ተግባር እና ጽዳት ኮድ

ለአንዱ ቀለም ጉብታውን ማዞር ሲጀምሩ እንደሚያድግ እና በድንገት ወደ ታች እንደሚወድቅ ያስተውሉ ይሆናል። ይህ የማደግ እና ከዚያ በፍጥነት መዘጋት ቁልፉን ሙሉ በሙሉ ወደ ላይ ሲያዞሩ 4 ጊዜ ይደግማል። እርስዎ ካስታወሱ ፖታቲዮሜትሮች በ 0 እና በ 1023 መካከል እሴቶችን ማንበብ ይችላሉ ብለዋል። የአናሎግዋይት () ተግባር እሴቶችን በ 0 እና በ 255 መካከል ብቻ ይቀበላል። አንዴ potentiometer ከ 255 በላይ ከሄደ በመሠረቱ በ 0. ላይ ይጀምራል። ሳንካ ካርታ ()። በአንድ ደረጃ አንድ የቁጥሮችን ክልል ወደ ሌላ የቁጥር ክልል መለወጥ ይችላሉ። ቁጥሮችን ከ 0-1023 ወደ ቁጥሮች ከ 0-255 እንለውጣለን። ለምሳሌ ፣ ጉልበቱ በግማሽ መንገድ ከተዘጋጀ 512 ገደማ ማንበብ አለበት። ያ ቁጥር ወደ 126 ይቀየራል ፣ ይህም ለ LED ግማሽ ጥንካሬ ነው። በዚህ የመጨረሻ ረቂቅ ውስጥ ለእኔ ምቾት ሲባል በተለዋዋጭ ስሞች ፒኖችን ሰየሙ። አሁን ለመሞከር የተጠናቀቀ የቀለም መቀየሪያ አለዎት !!!

// ለፖታቲሞሜትር ፒኖች ተለዋዋጭ ስሞች

int redPot = A0; int greenPot = A1; int bluePot = A2 // ተለዋዋጭ ስሞች ለ RGB ፒኖች int redLED = 9; int greenLED = 10; int blueLED = 11; ባዶነት ማዋቀር () {pinMode (redPot ፣ INPUT); pinMode (greenPOT ፣ ግቤት); pinMode (bluePot ፣ ማስገቢያ); pinMode (redLED ፣ ውፅዓት); pinMode (greenLED ፣ ውፅዓት); pinMode (blueLED ፣ ውፅዓት); ተከታታይ ፣ ጀምር (9600); } ባዶነት loop () {// እሴቶችን ከ potentiometers int redVal = analogRead (redPot) ያንብቡ እና ያስቀምጡ። int greenVal = analogRead (greenPot); int blueVal - analogRead (bluePot); // እሴቶቹን ከ 0-1023 ወደ 0-255 ለ RGB LED redVal = map (redVal ፣ 0 ፣ 1023 ፣ 0 ፣ 255) ይለውጡ ፤ greenVal = ካርታ (greenVal, 0, 1023, 0, 255); blueVal = ካርታ (blueVal, 0, 1023, 0, 255); // እነዚህን የተለወጡ እሴቶችን ወደ እያንዳንዱ የ RGB LED analogWrite (redLED ፣ redVal) ቀለም ይፃፉ ፤ anaogWrite (greenLED ፣ greenVal); አናሎግ ፃፍ (ሰማያዊ ኤልኢዲ ፣ ሰማያዊ ቫል); // እሴቶችን በ Serial.print (“ቀይ:”) ላይ ያሳዩ። Serial.print (redVal); Serial.print ("አረንጓዴ:"); Serial.print (greenVal); Serial.print ("ሰማያዊ:"); Serial.println (blueVal); }

የሚመከር: