INHOUDSOPGAWE:

Arduino RGB LED Strip Controller: 4 stappe
Arduino RGB LED Strip Controller: 4 stappe

Video: Arduino RGB LED Strip Controller: 4 stappe

Video: Arduino RGB LED Strip Controller: 4 stappe
Video: ESP32 Tutorial 12 - WS2812 RGB Srip 4 Project with SunFounder's ESP32 IoT Learnig kit 2024, November
Anonim
Arduino RGB LED Strip Controller
Arduino RGB LED Strip Controller

As mense gereeld hul RGB LED -strook met 'n Arduino wil beheer, word drie potensiometers gebruik om die rooi, groen en blou kleure te meng. Dit werk en kan perfek vir u behoeftes pas, maar ek wou iets meer intuïtief maak, soos 'n kleurwiel.

Dit lyk asof hierdie projek 'n perfekte toepassing vir 'n roterende encoder is. Dit is 'n toestel wat die beweging van sy as na 'n digitale uitset omskakel. As die as gedraai word, stuur die encoder 'n sein (pols) uit wat deur 'n Arduino gemeet kan word. Vir meer inligting oor roterende enkoders, kan u hierdie video kyk wat dit meer in diepte verduidelik.

In hierdie instruksies sal ek u wys hoe u 'n Arduino RGB LED -strookbeheerder kan maak deur 'n draaikodeerder te gebruik. Hierdie instruksie dek die konstruksie van die kring op 'n broodbord. U kan egter u eie PCB vervaardig om 'n Arduino -skild te skep!

Stap 1: Onderdele

Dele
Dele
Dele
Dele

Vir die RGB LED -strookbeheerder benodig u die volgende materiale:

  • 1x Arduino Nano
  • 3x IRLB8721PBF, sal enige N-kanaal logiese vlak MOSFET doen solank dit 'n minimum van 12V het en die stroom wat u LED-strook verbruik.
  • 1x Rotary encoder
  • 1x 12V 2A kragtoevoer, die stroom wat die kragtoevoer moet lewer, kan afhang van die lengte van die gebruikte LED -strook.
  • 16x manlike tot manlike draaddrade
  • 1x soldeerlose broodbord, enige broodbord sal dit doen solank dit voldoende groot is.

Stap 2: Skakel

Kring
Kring
Kring
Kring

Koppel die Arduino aan die 12V- en GND -spoor van die broodbord. Koppel dan die ander dele soos volg:

Rotary encoder

Speld A - D4

Speld B - D3

GND - GND

MOSFET Rooi

Hek - GND

Dreineer - LED strook rooi draad

Bron - D11

MOSFET GreenGate - GND

Dreineer - LED -strook groen draad

Bron - D9

MOSFET BlueGate - GND

Dreineer - LED -strook blou draad

Bron - D6

Stap 3: Kodeer

// Arduino PWM -penne

int redPin = 11; int greenPin = 6; int bluePin = 9; // Arduino encoder pins int encoderPinA = 3; int encoderPinB = 4; // Kleurveranderlikes int colorVal; int redVal; int greenVal; int blueVal; // Encoder veranderlikes int encoderPos; int encoderPinACurrent; int encoderPinALast = HOOG; // Ander inteller; ongeldige opstelling () {pinMode (encoderPinA, INPUT_PULLUP); pinMode (encoderPinB, INPUT_PULLUP); } leemte -lus () {readEncoder (); encoder2rgb (teller); 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; } anders {encoderPos = encoderPos + 1; }} encoderPinALast = encoderPinACurrent; teller = encoderPos*8; as (teller 1535) {teller = 0; } retourteller; } int encoder2rgb (int counterVal) {// Rooi na geel as (counterVal <= 255) {colorVal = counterVal; redVal = 255; greenVal = colorVal; blouval = 0; } // Geel tot groen anders as (counterVal <= 511) {colorVal = counterVal - 256; redVal = 255 - colorVal; greenVal = 255; blouval = 0; } // Groen tot siaan anders as (counterVal <= 767) {colorVal = counterVal - 512; redVal = 0; greenVal = 255; blueVal = colorVal; } // Siaan in blou anders as (counterVal <= 1023) {colorVal = counterVal - 768; redVal = 0; greenVal = 255 - colorVal; blouval = 255; } // Blou tot magenta anders as (counterVal <= 1279) {colorVal = counterVal - 1024; redVal = colorVal; greenVal = 0; blouval = 255; } // Magenta na rooi anders {colorVal = counterVal - 1280; redVal = 255; greenVal = 0; blueVal = 255 - colorVal; } gee terug redVal, greenVal, blueVal; }

Aanbeveel: