ዝርዝር ሁኔታ:

Arduino RGB LED Strip Controller: 4 ደረጃዎች
Arduino RGB LED Strip Controller: 4 ደረጃዎች

ቪዲዮ: Arduino RGB LED Strip Controller: 4 ደረጃዎች

ቪዲዮ: Arduino RGB LED Strip Controller: 4 ደረጃዎች
ቪዲዮ: {721} LED Bar Graph Arduino Uno Code Using if else || Arduino Project 2024, ህዳር
Anonim
አርዱዲኖ አርጂቢ ኤል ኤልዲ ስትሪፕ መቆጣጠሪያ
አርዱዲኖ አርጂቢ ኤል ኤልዲ ስትሪፕ መቆጣጠሪያ

ብዙውን ጊዜ ሰዎች የ RGB LED strip ን በአርዲኖ ለመቆጣጠር ሲፈልጉ ፣ ሶስት ፖታቲሞሜትሮች ቀይ ፣ አረንጓዴ እና ሰማያዊ ቀለሞችን ለማደባለቅ ያገለግላሉ። ይህ ይሠራል እና ለፍላጎቶችዎ ፍጹም ጥሩ ሊሆን ይችላል ፣ ግን የበለጠ አስተዋይ የሆነ ነገር ፣ እንደ ቀለም ጎማ ያለ ነገር ለማድረግ ፈልጌ ነበር።

ይህ ፕሮጀክት ለ rotary encoder ፍጹም ትግበራ ይመስላል። ይህ የዘንባባውን እንቅስቃሴ ወደ ዲጂታል ውፅዓት የሚቀይር መሣሪያ ነው። ዘንግ ሲዞር ኢንኮደሩ በአርዱዲኖ ሊለካ የሚችል ምልክት (ምት) ይልካል። በ rotary encoders ላይ ለበለጠ ፣ ይህንን በጥልቀት የሚያብራራውን ይህንን ቪዲዮ ማየት ይችላሉ።

በዚህ አስተማሪ ውስጥ የ rotary encoder ን በመጠቀም የአርዱዲኖ አርጂቢ ኤል ኤልዲ ስትሪፕ መቆጣጠሪያን እንዴት እንደሚያደርጉ አሳያችኋለሁ። ይህ Instructable የዳቦ ግንባታን በዳቦ ሰሌዳ ላይ ይሸፍናል። የአርዱዲኖ ጋሻ ለመፍጠር ግን የራስዎን ፒሲቢ ማምረት ይችላሉ!

ደረጃ 1: ክፍሎች

ክፍሎች
ክፍሎች
ክፍሎች
ክፍሎች

ለ RGB LED ስትሪፕ መቆጣጠሪያ የሚከተሉትን ቁሳቁሶች ያስፈልግዎታል

  • 1x አርዱዲኖ ናኖ
  • 3x IRLB8721PBF ፣ ማንኛውም የኤን-ሰርጥ አመክንዮ ደረጃ MOSFET ቢያንስ በ 12 ቮ እስከተገመተ እና የአሁኑ የእርስዎ የ LED ስትሪፕ እስኪያጠፋ ድረስ ይሠራል።
  • 1x ሮታሪ ኢንኮደር
  • 1x 12V 2A የኃይል አቅርቦት ፣ የአሁኑ የኃይል አቅርቦቱ ማድረስ ያለበት በተጠቀመው የ LED ስትሪፕ ርዝመት ላይ ሊሆን ይችላል።
  • 16x ወንድ ከወንድ ዝላይ ሽቦዎች
  • 1x Solderless የዳቦ ሰሌዳ ፣ ማንኛውም የዳቦ ሰሌዳ በቂ እስከሆነ ድረስ ይሠራል።

ደረጃ 2 - ወረዳ

ወረዳ
ወረዳ
ወረዳ
ወረዳ

አርዱዲኖን ከዳቦ ቦርድ 12V እና GND ባቡር ጋር ያገናኙ። ከዚያ ሌሎቹን ክፍሎች እንደሚከተለው ያገናኙ

ሮታሪ ኢንኮደር

ፒን ሀ - D4

ፒን ቢ - D3

GND - GND

MOSFET ቀይ

በር - GND

የፍሳሽ ማስወገጃ - የ LED ንጣፍ ቀይ ሽቦ

ምንጭ - D11

MOSFET GreenGate - GND

የፍሳሽ ማስወገጃ - LED ስትሪፕ አረንጓዴ ሽቦ

ምንጭ - D9

MOSFET BlueGate - GND

የፍሳሽ ማስወገጃ - LED ስትሪፕ ሰማያዊ ሽቦ

ምንጭ - D6

ደረጃ 3 ኮድ

// Arduino PWM ፒኖች

int redPin = 11; int greenPin = 6; int bluePin = 9; // አርዱinoኖ ኢንኮደር ፒን int encoderPinA = 3; int encoderPinB = 4; // የቀለም ተለዋዋጮች int colorVal; int redVal; int greenVal; int blueVal; // ኢንኮደር ተለዋዋጮች int encoderPos; int encoderPinACurrent; int encoderPinALast = ከፍተኛ; // ሌላ int ቆጣሪ; ባዶነት ማዋቀር () {pinMode (encoderPinA ፣ INPUT_PULLUP); pinMode (ኢንኮደር ፒንቢ ፣ INPUT_PULLUP); } ባዶነት loop () {readEncoder (); encoder2rgb (ቆጣሪ); analogWrite (redPin ፣ redVal); አናሎግ ፃፍ (አረንጓዴ ፒን ፣ አረንጓዴ ቫል); አናሎግ ፃፍ (ሰማያዊ ፒን ፣ ሰማያዊ ቫል); } int readEncoder () {encoderPinACurrent = digitalRead (encoderPinA); ከሆነ ((encoderPinALast == LOW) && (encoderPinACurrent == HIGH)) {if (digitalRead (encoderPinB) == LOW) {encoderPos = encoderPos - 1; } ሌላ {encoderPos = encoderPos + 1; }} encoderPinALast = encoderPinACurrent; ቆጣሪ = encoderPos*8; ከሆነ (ቆጣሪ 1535) {ቆጣሪ = 0; } የመመለሻ ቆጣሪ; } int encoder2rgb (int counterVal) {// ቀይ ከሆነ ወደ ቢጫ (counterVal <= 255) {colorVal = counterVal; redVal = 255; greenVal = colorVal; blueVal = 0; } // ቢጫ ወደ አረንጓዴ ሌላ ከሆነ (ተቃራኒ ቫል <= 511) {colorVal = counterVal - 256; redVal = 255 - colorVal; greenVal = 255; blueVal = 0; } // አረንጓዴ ለሲያን (counterVal <= 767) {colorVal = counterVal - 512; redVal = 0; greenVal = 255; blueVal = colorVal; } // ሲያን ወደ ሰማያዊ ሌላ (counterVal <= 1023) {colorVal = counterVal - 768; redVal = 0; greenVal = 255 - colorVal; blueVal = 255; } // ሰማያዊ (ለምሳሌ - ቫል = = 1279) {colorVal = counterVal - 1024; redVal = colorVal; greenVal = 0; blueVal = 255; } // ማጌንታ ወደ ቀይ ሌላ {colorVal = counterVal - 1280; redVal = 255; greenVal = 0; blueVal = 255 - colorVal; } ቀይ ቫል ፣ አረንጓዴ ቫል ፣ ሰማያዊ ቫል ይመለሱ ፤ }

የሚመከር: