Sisällysluettelo:

Arduino RGB LED -nauhaohjain: 4 vaihetta
Arduino RGB LED -nauhaohjain: 4 vaihetta

Video: Arduino RGB LED -nauhaohjain: 4 vaihetta

Video: Arduino RGB LED -nauhaohjain: 4 vaihetta
Video: ESP32 Tutorial 12 - WS2812 RGB Srip 4 Project with SunFounder's ESP32 IoT Learnig kit 2024, Heinäkuu
Anonim
Arduino RGB LED -nauhaohjain
Arduino RGB LED -nauhaohjain

Usein, kun ihmiset haluavat ohjata RGB -LED -nauhaansa Arduinolla, kolme potentiometriä käytetään punaisen, vihreän ja sinisen värin sekoittamiseen. Tämä toimii ja voisi sopia täydellisesti tarpeisiisi, mutta halusin tehdä jotain intuitiivisempaa, jotain väripyörää.

Tämä projekti näyttää olevan täydellinen sovellus pyörivälle anturille. Tämä on laite, joka muuntaa akselinsa liikkeen digitaaliseksi lähdöksi. Kun akselia käännetään, anturi lähettää signaalin (pulssin), jonka Arduino voi mitata. Jos haluat lisätietoja pyörivistä enkoodereista, katso tämä video, joka selittää sen syvällisemmin.

Tässä ohjeessa näytän sinulle, kuinka tehdä Arduino RGB LED -kaistaohjain kiertokooderin avulla. Tämä opas kattaa piirin rakentamisen leipälevylle. Voit kuitenkin valmistaa oman piirilevyn Arduino -kilven luomiseksi!

Vaihe 1: Osat

Osat
Osat
Osat
Osat

RGB -LED -nauhaohjaimelle tarvitset seuraavat materiaalit:

  • 1x Arduino Nano
  • 3x IRLB8721PBF, mikä tahansa N-kanavainen logiikkataso MOSFET toimii niin kauan kuin se on mitoitettu vähintään 12 V: lle ja LED-nauhan kuluttama virta.
  • 1x pyörivä anturi
  • 1x 12V 2A virtalähde, virtalähteen toimittama virta voi riippua käytetyn LED -nauhan pituudesta.
  • 16x Uros -uros -hyppyjohdot
  • 1x Juoton leipälauta, mikä tahansa leipälauta toimii niin kauan kuin se on riittävän suuri.

Vaihe 2: Piiri

Piiri
Piiri
Piiri
Piiri

Liitä Arduino leipälevyn 12V- ja GND -kiskoon. Liitä sitten muut osat seuraavasti:

Pyörivä anturi

Nasta A - D4

Nasta B - D3

GND - GND

MOSFET Punainen

Portti - GND

Tyhjennys - LED -nauha punainen lanka

Lähde - D11

MOSFET GreenGate - GND

Tyhjennys - LED -nauha vihreä lanka

Lähde - D9

MOSFET BlueGate - GND

Tyhjennys - LED -nauha sininen johto

Lähde - D6

Vaihe 3: Koodi

// Arduino PWM -nastat

int redPin = 11; int greenPin = 6; int bluePin = 9; // Arduino -kooderin nastat int encoderPinA = 3; int -kooderiPinB = 4; // Värimuuttujat int colorVal; int redVal; int greenVal; int blueVal; // Encoder -muuttujat int encoderPos; int encoderPinACurrent; int encoderPinALast = HIGH; // muu int -laskuri; void setup () {pinMode (encoderPinA, INPUT_PULLUP); pinMode (encoderPinB, INPUT_PULLUP); } void loop () {readEncoder (); kooderi2rgb (laskuri); analogWrite (redPin, redVal); analogWrite (vihreäPin, vihreäVal); 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; laskuri = kooderiPos*8; jos (laskuri 1535) {laskuri = 0; } palautuslaskuri; } int encoder2rgb (int counterVal) {// Punaisesta keltaiseksi, jos (counterVal <= 255) {colorVal = counterVal; redVal = 255; greenVal = colorVal; blueVal = 0; } // Keltaisesta vihreään muuten if (counterVal <= 511) {colorVal = counterVal - 256; redVal = 255 - colorVal; vihreäVal = 255; blueVal = 0; } // Vihreästä syaaniin muuhun if (counterVal <= 767) {colorVal = counterVal - 512; redVal = 0; vihreäVal = 255; blueVal = colorVal; } // Syaani siniseksi muuten if (counterVal <= 1023) {colorVal = counterVal - 768; redVal = 0; greenVal = 255 - colorVal; blueVal = 255; } // Sininen purppuraan muuhun if (counterVal <= 1279) {colorVal = counterVal - 1024; redVal = colorVal; vihreäVal = 0; blueVal = 255; } // Magenta punaiseksi else {colorVal = counterVal - 1280; redVal = 255; vihreäVal = 0; blueVal = 255 - colorVal; } palauta redVal, greenVal, blueVal; }

Suositeltava: