Satura rādītājs:

Arduino RGB LED sloksnes kontrolieris: 4 soļi
Arduino RGB LED sloksnes kontrolieris: 4 soļi

Video: Arduino RGB LED sloksnes kontrolieris: 4 soļi

Video: Arduino RGB LED sloksnes kontrolieris: 4 soļi
Video: ESP32 Tutorial 12 - WS2812 RGB Srip 4 Project with SunFounder's ESP32 IoT Learnig kit 2024, Jūlijs
Anonim
Arduino RGB LED sloksnes kontrolieris
Arduino RGB LED sloksnes kontrolieris

Bieži vien, kad cilvēki vēlas kontrolēt savu RGB LED sloksni ar Arduino, tiek izmantoti trīs potenciometri, lai sajauktu sarkano, zaļo un zilo krāsu. Tas darbojas un varētu būt pilnīgi piemērots jūsu vajadzībām, bet es gribēju izveidot kaut ko intuitīvāku, kaut ko līdzīgu krāsu ritenim.

Šis projekts, šķiet, ir ideāls rotācijas kodētāja pielietojums. Šī ir ierīce, kas pārveido vārpstas kustību uz digitālo izeju. Kad vārpsta ir pagriezta, kodētājs izsūta signālu (impulsu), ko var izmērīt ar Arduino. Lai uzzinātu vairāk par rotējošajiem kodētājiem, varat noskatīties šo videoklipu, kas to izskaidro padziļināti.

Šajā pamācībā es jums parādīšu, kā izveidot Arduino RGB LED sloksnes kontrolieri, izmantojot rotējošu kodētāju. Šī pamācība attiecas uz shēmas uzbūvi uz maizes dēļa. Tomēr jūs varētu izveidot savu PCB, lai izveidotu Arduino vairogu!

1. darbība: detaļas

Daļas
Daļas
Daļas
Daļas

RGB LED sloksnes kontrolierim jums būs nepieciešami šādi materiāli:

  • 1x Arduino Nano
  • 3x IRLB8721PBF, jebkurš N-kanālu loģikas līmenis MOSFET darbosies, ja vien tas būs novērtēts ar vismaz 12 V spriegumu un strāvu, ko patērē jūsu LED sloksne.
  • 1x rotējošais kodētājs
  • 1x 12V 2A barošanas avots, strāvas padevei jāpiegādā strāva var būt atkarīga no izmantotās LED sloksnes garuma.
  • 16x Džemperi no tērauda līdz vīrietim
  • 1x bez lodēšanas maizes dēlis, jebkurš maizes dēlis derēs, kamēr tas ir pietiekami liels.

2. solis: ķēde

Ķēde
Ķēde
Ķēde
Ķēde

Savienojiet Arduino ar maizes dēļa 12V un GND sliedi. Pēc tam pievienojiet pārējās detaļas šādi:

Rotējošais kodētājs

Tapas A - D4

Piespraude B - D3

GND - GND

MOSFET Sarkans

Vārti - GND

Drenāža - LED sloksne sarkanais vads

Avots - D11

MOSFET GreenGate - GND

Drenāža - LED sloksnes zaļais vads

Avots - D9

MOSFET BlueGate - GND

Drenāža - LED sloksnes zils vads

Avots - D6

3. darbība: kods

// Arduino PWM tapas

int redPin = 11; int greenPin = 6; int bluePin = 9; // Arduino kodētāja tapas int encoderPinA = 3; int kodētājsPinB = 4; // Krāsu mainīgie int colorVal; int redVal; int greenVal; int blueVal; // Kodētāja mainīgie int encoderPos; int encoderPinACurrent; int encoderPinALast = HIGH; // Cits int skaitītājs; void setup () {pinMode (encoderPinA, INPUT_PULLUP); pinMode (kodētājsPinB, INPUT_PULLUP); } void loop () {readEncoder (); kodētājs2rgb (skaitītājs); analogWrite (redPin, redVal); analogWrite (greenPin, greenVal); analogWrite (bluePin, blueVal); } int readEncoder () {encoderPinACurrent = digitalRead (encoderPinA); if ((encoderPinALast == LOW) && (encoderPinACurrent == HIGH)) {ja (digitalRead (encoderPinB) == LOW) {encoderPos = encoderPos - 1; } cits {encoderPos = encoderPos + 1; }} encoderPinALast = kodētājsPinACurrent; skaitītājs = kodētājsPos*8; ja (skaitītājs 1535) {skaitītājs = 0; } atgriešanās skaitītājs; } int encoder2rgb (int counterVal) {// Sarkans līdz dzeltens, ja (counterVal <= 255) {colorVal = counterVal; redVal = 255; greenVal = colorVal; blueVal = 0; } // No dzeltenas līdz zaļai citādi, ja (counterVal <= 511) {colorVal = counterVal - 256; redVal = 255 - colorVal; zaļšVal = 255; blueVal = 0; } // Zaļš līdz ciānzilam, ja (counterVal <= 767) {colorVal = counterVal - 512; redVal = 0; zaļšVal = 255; blueVal = colorVal; } // Ciāna līdz zilai citai, ja (counterVal <= 1023) {colorVal = counterVal - 768; redVal = 0; greenVal = 255 - colorVal; blueVal = 255; } // Zils līdz purpursarkanam citam if (counterVal <= 1279) {colorVal = counterVal - 1024; redVal = colorVal; greenVal = 0; blueVal = 255; } // Magenta līdz sarkans cits {colorVal = counterVal - 1280; redVal = 255; greenVal = 0; blueVal = 255 - colorVal; } atgriezt redVal, greenVal, blueVal; }

Ieteicams: