Мазмуну:

Arduino RGB LED Strip Controller: 4 кадам
Arduino RGB LED Strip Controller: 4 кадам

Video: Arduino RGB LED Strip Controller: 4 кадам

Video: Arduino RGB LED Strip Controller: 4 кадам
Video: Управляемая адресная светодиодная лента. Бегущий огонь. Как подключить контроллер. Address LED Strip 2024, Июль
Anonim
Arduino RGB LED Strip Controller
Arduino RGB LED Strip Controller

Көп учурда адамдар RGB LED тилкесин Arduino менен башкаргысы келгенде, кызыл, жашыл жана көк түстөрдү аралаштыруу үчүн үч потенциометр колдонулат. Бул иштейт жана сиздин муктаждыктарыңыз үчүн эң сонун болушу мүмкүн, бирок мен түстүү дөңгөлөк сыяктуу интуитивдүү нерсени жасагым келди.

Бул долбоор айлануучу коддогуч үчүн эң сонун колдонмо окшойт. Бул өз огунун кыймылын санариптик чыгууга айландыруучу түзүлүш. Билик бурулганда, коддогуч Arduino тарабынан өлчөнө турган сигналды (импульсту) жөнөтөт. Ротари коддогучтар жөнүндө көбүрөөк билүү үчүн, аны тереңирээк түшүндүргөн бул видеону көрө аласыз.

Бул Нускамада мен сизге роутердик коддогучту колдонуу менен Arduino RGB LED тилкесинин контроллерин кантип жасоону көрсөтөм. Бул Нускамада нан тактасындагы схеманын курулушу камтылган. Сиз Arduino калканчын түзүү үчүн өзүңүздүн ПХБны өндүрө аласыз!

1 -кадам: Бөлүктөр

Бөлүктөр
Бөлүктөр
Бөлүктөр
Бөлүктөр

RGB LED тилкеси контроллери үчүн сизге төмөнкү материалдар керек болот:

  • 1x Arduino Nano
  • 3x IRLB8721PBF, ар кандай N-канал логикалык деңгээли MOSFET, эң аз дегенде 12В деп бааланган жана сиздин LED тилкесиңиз керектеген учурда жасайт.
  • 1x Ротари коддоочу
  • 1x 12V 2A электр менен камсыздоо, электр менен камсыз кылуу учурдагы токтун колдонулган LED тилкесинин узундугуна жараша болушу мүмкүн.
  • 16x Эркектен эркекке секирүүчү зымдар
  • 1x Solderless нан, каалаган нан, эгер ал жетишерлик чоң болсо, ошону кылат.

2 -кадам: Circuit

Circuit
Circuit
Circuit
Circuit

Ардуинону нан тактасынын 12V жана GND темир жолуна туташтырыңыз. Андан кийин башка бөлүктөрдү төмөнкүдөй туташтырыңыз:

бюрократия коддогуч

Pin A - D4

Pin B - 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; // Arduino коддогуч казыктары int encoderPinA = 3; int encoderPinB = 4; // Түс өзгөрмөлөрү int colorVal; int redVal; int greenVal; int blueVal; // Encoder өзгөрмөлөрү int encoderPos; int encoderPinACurrent; int encoderPinALast = HIGH; // Башка int counter; жараксыз орнотуу () {pinMode (encoderPinA, INPUT_PULLUP); pinMode (encoderPinB, INPUT_PULLUP); } void loop () {readEncoder (); encoder2rgb (эсептегич); analogWrite (redPin, redVal); analogWrite (greenPin, greenVal); analogWrite (bluePin, blueVal); } int readEncoder () {encoderPinACurrent = digitalRead (encoderPinA); if ((encoderPinALast == LOW) && (encoderPinACurrent == HIGH)) {if (digitalRead (encoderPinB) == LOW) {encoderPos = encoderPos - 1; } else {encoderPos = encoderPos + 1; }} encoderPinALast = encoderPinACurrent; counter = encoderPos*8; if (counter 1535) {counter = 0; } кайра эсептегич; } int encoder2rgb (int counterVal) {// Кызылдан сарыга чейин (counterVal <= 255) {colorVal = counterVal; redVal = 255; greenVal = colorVal; blueVal = 0; } // Сарыдан жашылга башка, эгерде (counterVal <= 511) {colorVal = counterVal - 256; redVal = 255 - colorVal; greenVal = 255; blueVal = 0; } // Green to cyan else if if (counterVal <= 767) {colorVal = counterVal - 512; redVal = 0; greenVal = 255; blueVal = colorVal; } // Көгүштөн башка түскө чейин, эгерде (counterVal <= 1023) {colorVal = counterVal - 768; redVal = 0; greenVal = 255 - colorVal; blueVal = 255; } // Көгүлтүрдөн кызгылт түскө башка болсо (counterVal <= 1279) {colorVal = counterVal - 1024; redVal = colorVal; greenVal = 0; blueVal = 255; } // Кызгылт кызылдан башкага {colorVal = counterVal - 1280; redVal = 255; greenVal = 0; blueVal = 255 - colorVal; } redVal, greenVal, blueVal; }

Сунушталууда: