Isi kandungan:

Pengawal Jalur LED Arduino RGB: 4 Langkah
Pengawal Jalur LED Arduino RGB: 4 Langkah

Video: Pengawal Jalur LED Arduino RGB: 4 Langkah

Video: Pengawal Jalur LED Arduino RGB: 4 Langkah
Video: BELAJAR CODING ARDUINO DARI DASAR (MEMPROGRAM LED) PART 1 2024, November
Anonim
Pengawal Jalur LED Arduino RGB
Pengawal Jalur LED Arduino RGB

Selalunya ketika orang ingin mengawal jalur LED RGB mereka dengan Arduino, tiga potensiometer digunakan untuk mencampurkan warna merah, hijau dan biru. Ini berfungsi dan mungkin sesuai untuk keperluan anda, tetapi saya ingin membuat sesuatu yang lebih intuitif, seperti roda warna.

Projek ini nampaknya merupakan aplikasi yang sempurna untuk pengekod putar. Ini adalah peranti yang menukar gerakan porosnya ke output digital. Apabila poros dipusingkan, pengekod menghantar isyarat (nadi) yang dapat diukur oleh Arduino. Untuk lebih lanjut mengenai pengekod putar, anda boleh menonton video ini yang menerangkannya dengan lebih mendalam.

Dalam Instructable ini saya akan menunjukkan kepada anda cara membuat pengawal jalur LED Arduino RGB dengan menggunakan pengekod putar. Instructable ini merangkumi pembinaan litar di papan roti. Anda boleh menghasilkan PCB anda sendiri untuk membuat perisai Arduino!

Langkah 1: Bahagian

Bahagian
Bahagian
Bahagian
Bahagian

Untuk pengawal jalur LED RGB, anda memerlukan bahan berikut:

  • 1x Arduino Nano
  • 3x IRLB8721PBF, sebarang tahap logik saluran N MOSFET akan dilakukan selagi dinilai pada minimum 12V dan semasa jalur LED anda habis.
  • 1x Pengekod putar
  • Bekalan kuasa 1x 12V 2A, arus bekalan elektrik yang dihantar mungkin bergantung pada panjang jalur LED terpakai.
  • 16x wayar jumper Lelaki ke lelaki
  • Papan roti Solderless 1x, papan roti apa pun akan berfungsi selagi cukup besar.

Langkah 2: Litar

Litar
Litar
Litar
Litar

Sambungkan Arduino ke rel 12V dan GND papan roti. Kemudian sambungkan bahagian lain seperti berikut:

Pengekod putar

Pin A - D4

Pin B - D3

GND - GND

MOSFET Merah

Gerbang - GND

Saliran - wayar merah jalur LED

Sumber - D11

MOSFET GreenGate - GND

Saliran - wayar hijau jalur LED

Sumber - D9

MOSFET BlueGate - GND

Saliran - wayar biru jalur LED

Sumber - D6

Langkah 3: Kod

// Pin Arduino PWM

int redPin = 11; int greenPin = 6; int bluePin = 9; // Arduino encoder pin int encoderPinA = 3; int encoderPinB = 4; // Pemboleh ubah warna int colorVal; int redVal; int greenVal; int blueVal; // Pemboleh ubah encoder int encoderPos; int encoderPinACurrent; int encoderPinALast = TINGGI; // Kaunter int lain; batal persediaan () {pinMode (encoderPinA, INPUT_PULLUP); pinMode (encoderPinB, INPUT_PULLUP); } gelung kosong () {readEncoder (); encoder2rgb (kaunter); analogWrite (redPin, redVal); analogWrite (greenPin, greenVal); analogWrite (bluePin, blueVal); } int readEncoder () {encoderPinACurrent = digitalRead (encoderPinA); if ((encoderPinALast == LOW) && (encoderPinACurrent == TINGGI)) {if (digitalRead (encoderPinB) == LOW) {encoderPos = encoderPos - 1; } lain {encoderPos = encoderPos + 1; }} encoderPinALast = encoderPinACurrent; pembilang = encoderPos * 8; jika (kaunter 1535) {kaunter = 0; } kaunter pemulangan; } int encoder2rgb (int counterVal) {// Merah ke kuning jika (counterVal <= 255) {colorVal = counterVal; redVal = 255; greenVal = colorVal; blueVal = 0; } // Kuning ke hijau lain jika (counterVal <= 511) {colorVal = counterVal - 256; redVal = 255 - colorVal; greenVal = 255; blueVal = 0; } // Hijau untuk sian lain jika (counterVal <= 767) {colorVal = counterVal - 512; redVal = 0; greenVal = 255; blueVal = colorVal; } // Sian ke biru lain jika (counterVal <= 1023) {colorVal = counterVal - 768; redVal = 0; greenVal = 255 - colorVal; blueVal = 255; } // Biru ke magenta yang lain jika (counterVal <= 1279) {colorVal = counterVal - 1024; redVal = colorVal; greenVal = 0; blueVal = 255; } // Magenta menjadi merah lain {colorVal = counterVal - 1280; redVal = 255; greenVal = 0; blueVal = 255 - colorVal; } pulangkan redVal, greenVal, blueVal; }

Disyorkan: