Мазмұны:

Arduino RGB жарық диодты жолақ контроллері: 4 қадам
Arduino RGB жарық диодты жолақ контроллері: 4 қадам

Бейне: Arduino RGB жарық диодты жолақ контроллері: 4 қадам

Бейне: Arduino RGB жарық диодты жолақ контроллері: 4 қадам
Бейне: How to use MOSFET Button IRF540 to control 5A to 20A DC Motor or LED light strip 2024, Қараша
Anonim
Arduino RGB жарық диодты жолақ контроллері
Arduino RGB жарық диодты жолақ контроллері

Көбінесе адамдар RGB светодиодты жолағын Arduino көмегімен басқарғысы келсе, қызыл, жасыл және көк түстерді араластыру үшін үш потенциометр қолданылады. Бұл жұмыс істейді және сіздің қажеттіліктеріңізге сәйкес келуі мүмкін, бірақ мен интуитивті нәрсе жасағым келді, мысалы, түсті дөңгелек.

Бұл жоба айналмалы кодер үшін тамаша бағдарлама болып көрінеді. Бұл біліктің қозғалысын сандық шығысқа түрлендіретін құрылғы. Білік айналған кезде кодер Arduino көмегімен өлшеуге болатын сигналды (импульсті) жібереді. Айналмалы кодерлер туралы көбірек білу үшін сіз бұл бейнені қарай аласыз, ол оны тереңірек түсіндіреді.

Бұл нұсқаулықта мен сізге айналмалы кодер көмегімен Arduino RGB светодиодты жолақ контроллерін қалай жасау керектігін көрсетемін. Бұл нұсқаулық тақтадағы контурдың құрылысын қамтиды. Сіз Arduino қалқанын жасау үшін өзіңіздің ПХД шығара аласыз!

1 -қадам: бөлшектер

Бөлшектер
Бөлшектер
Бөлшектер
Бөлшектер

RGB жарықдиодты жолақ контроллері үшін сізге келесі материалдар қажет:

  • 1x Arduino Nano
  • 3x IRLB8721PBF, кез келген N-арналы логикалық деңгей MOSFET, егер ол кемінде 12В кернеуге бағаланса және сіздің жарық диодты жолағыңыз тұтынады.
  • 1x айналмалы кодер
  • 1х 12В 2А қуат көзі, қоректену көзі беруі керек жарықдиодты жолақтың ұзындығына байланысты болуы мүмкін.
  • 16x Еркек пен еркек арасындағы сым
  • 1x дәнекерлемейтін тақта, кез келген нан тақтасы жеткілікті үлкен болғанша жұмыс істейді.

2 -қадам: Схема

Схема
Схема
Схема
Схема

Arduino -ны 12V және GND рельсіне қосыңыз. Содан кейін басқа бөліктерді келесідей жалғаңыз:

Айналмалы кодер

A - D4 түйреуіші

В - D3 түйреуіші

GND - GND

MOSFET Қызыл

Қақпа - GND

Дренаж - жарықдиодты жолақ қызыл сым

Дереккөз - D11

MOSFET GreenGate - GND

Дренаж - жасыл түсті светодиодты жолақ

Дереккөз - D9

MOSFET BlueGate - GND

Дренаж - жарықдиодты жолақ көк сым

Дереккөз - 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; // enc encoderPos айнымалы кодтаушысы; int encoderPinACurrent; int encoderPinALast = HIGH; // Басқа int есептегіші; void setup () {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; } басқа {encoderPos = encoderPos + 1; }} encoderPinALast = encoderPinACurrent; санауыш = encoderPos*8; if (есептегіш 1535) {санауыш = 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; } // Жасылдан басқа көкке дейін, егер (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; }

Ұсынылған: