Orodha ya maudhui:

Arduino RGB Mdhibiti wa Ukanda wa LED: Hatua 4
Arduino RGB Mdhibiti wa Ukanda wa LED: Hatua 4

Video: Arduino RGB Mdhibiti wa Ukanda wa LED: Hatua 4

Video: Arduino RGB Mdhibiti wa Ukanda wa LED: Hatua 4
Video: ESP32 Tutorial 54 - Set WS2812 LED Strip Color over Wifi | SunFounder's ESP32 IoT Learnig kit 2024, Novemba
Anonim
Mdhibiti wa Ukanda wa LED wa Arduino RGB
Mdhibiti wa Ukanda wa LED wa Arduino RGB

Mara nyingi wakati watu wanataka kudhibiti ukanda wao wa RGB LED na Arduino, potentiometers tatu hutumiwa kuchanganya rangi nyekundu, kijani na bluu. Hii inafanya kazi na inaweza kuwa sawa kabisa kwa mahitaji yako, lakini nilitaka kutengeneza kitu angavu zaidi, kitu kama gurudumu la rangi.

Mradi huu unaonekana kuwa programu kamili ya usimbuaji wa rotary. Hii ni kifaa ambacho hubadilisha mwendo wa shimoni lake kuwa pato la dijiti. Wakati shimoni limegeuzwa, encoder hutuma ishara (mapigo) ambayo inaweza kupimwa na Arduino. Kwa zaidi juu ya usimbuaji wa rotary, unaweza kutazama video hii ambayo inaielezea kwa kina zaidi.

Katika Agizo hili nitakuonyesha jinsi ya kutengeneza Arduino RGB LED strip strip kwa kutumia encoder ya rotary. Agizo hili linafunika ujenzi wa mzunguko kwenye ubao wa mkate. Unaweza hata hivyo kutoa PCB yako mwenyewe ili kuunda ngao ya Arduino!

Hatua ya 1: Sehemu

Sehemu
Sehemu
Sehemu
Sehemu

Kwa mtawala wa mkanda wa RGB LED utahitaji vifaa vifuatavyo:

  • 1x Arduino Nano
  • 3x IRLB8721PBF, kiwango chochote cha mantiki ya N-channel MOSFET itafanya muda mrefu ikiwa imekadiriwa kwa kiwango cha chini cha 12V na sasa ukanda wako wa LED unatumia.
  • Kisimbuaji cha Rotary 1x
  • Usambazaji wa umeme wa 1x 12V 2A, sasa usambazaji wa umeme unaoweza kutolewa inaweza kutegemea urefu wa mkanda wa LED uliotumika.
  • Kamba za kuruka kiume hadi kiume
  • Bodi ya mkate isiyo na sekunde 1x, ubao wowote wa mkate utafanya mradi tu ni mkubwa wa kutosha.

Hatua ya 2: Mzunguko

Mzunguko
Mzunguko
Mzunguko
Mzunguko

Unganisha Arduino kwa reli ya 12V na GND ya ubao wa mkate. Kisha unganisha sehemu zingine kama ifuatavyo:

Usimbuaji Rotary

Pini A - D4

Pini B - D3

GND - GND

MOSFET Nyekundu

Lango - GND

Futa - waya mwembamba wa waya wa LED

Chanzo - D11

MOSFET GreenGate - GND

Futa - waya wa kijani kibichi cha LED

Chanzo - D9

MOSFET BlueGate - GND

Futa - waya wa bluu wa waya wa LED

Chanzo - D6

Hatua ya 3: Kanuni

// pini za Arduino PWM

nyekundu nyekundu = 11; int greenPin = 6; bluu ya bluu = 9; // pini za encoder ya Arduino int encoderPinA = 3; encoderPinB = 4; // Vigezo vya rangi ndani ya rangi; int redVal; int kijaniVal; int bluuVal; // Vigeuzi vya Encoder int encoderPos; int encoderPinACurrent; encoderPinALast = JUU; // Nyingine int counter; kuanzisha batili () {pinMode (encoderPinA, INPUT_PULLUP); pinMode (encoderPinB, INPUT_PULLUP); } kitanzi batili () {readEncoder (); encoder2rgb (kaunta); AnalogWrite (nyekunduPin, nyekunduVal); Analog Andika (greenPin, greenVal); AnalogWrite (bluePin, blueVal); } int readEncoder () {encoderPinACurrent = digitalRead (encoderPinA); ikiwa ((encoderPinALast == LOW) && (encoderPinACurrent == HIGH)) {if (digitalRead (encoderPinB) == LOW) {encoderPos = encoderPos - 1; } mwingine {encoderPos = encoderPos + 1; }} encoderPinALast = encoderPinACurrent; kaunta = encoderPos * 8; ikiwa (kaunta 1535) {counter = 0; } kaunta ya kurudi; } int encoder2rgb (int counterVal) {// Nyekundu hadi manjano ikiwa (counterVal <= 255) {colorVal = counterVal; nyekunduVal = 255; kijaniVal = rangiVal; bluuVal = 0; } // Njano hadi kijani kibichi ikiwa (counterVal <= 511) {colorVal = counterVal - 256; nyekunduVal = 255 - rangiVal; kijaniVal = 255; bluuVal = 0; } // Green kwa cyan mwingine ikiwa (counterVal <= 767) {colorVal = counterVal - 512; nyekunduVal = 0; kijaniVal = 255; bluuVal = rangiVal; } // Cyan hadi bluu nyingine ikiwa (counterVal <= 1023) {colorVal = counterVal - 768; nyekunduVal = 0; kijaniVal = 255 - rangiVal; bluuVal = 255; } // Bluu kwa magenta nyingine ikiwa (counterVal <= 1279) {colorVal = counterVal - 1024; redVal = rangiVal; kijaniVal = 0; bluuVal = 255; } // Magenta hadi nyekundu nyingine {colorVal = counterVal - 1280; nyekunduVal = 255; kijaniVal = 0; bluuVal = 255 - rangiVal; } kurudi RedVal, GreenVal, blueVal; }

Ilipendekeza: