Агуулгын хүснэгт:

Arduino RGB LED зурвас хянагч: 4 алхам
Arduino RGB LED зурвас хянагч: 4 алхам

Видео: Arduino RGB LED зурвас хянагч: 4 алхам

Видео: Arduino RGB LED зурвас хянагч: 4 алхам
Видео: Объяснение прошивки Marlin 2.0.x 2024, Арваннэгдүгээр
Anonim
Arduino RGB LED зурвас хянагч
Arduino RGB LED зурвас хянагч

Ихэнхдээ хүмүүс RGB LED зурвасыг Arduino ашиглан удирдахыг хүсдэг бол улаан, ногоон, цэнхэр өнгийг холихын тулд гурван потенциометрийг ашигладаг. Энэ нь ажилладаг бөгөөд таны хэрэгцээнд нийцэх болно, гэхдээ би өнгөт дугуй гэх мэт илүү хялбар зүйлийг хийхийг хүсч байна.

Энэ төсөл нь эргэлддэг кодлогч ашиглах төгс програм юм шиг санагдаж байна. Энэ бол босоо амныхаа хөдөлгөөнийг тоон гаралт руу хөрвүүлдэг төхөөрөмж юм. Босоо амыг эргүүлэх үед кодлогч нь Arduino хэмжих боломжтой дохио (импульс) илгээдэг. Ротари кодлогчын талаар илүү ихийг олж мэдэхийн тулд та үүнийг илүү нарийвчлан тайлбарласан видеог үзэж болно.

Энэхүү зааварт би эргэдэг кодлогч ашиглан Arduino RGB LED тууз хянагчийг хэрхэн хийхийг танд үзүүлэх болно. Энэхүү заавар нь талхны самбар дээрх хэлхээний бүтцийг хамарна. Гэсэн хэдий ч та Arduino бамбай үүсгэхийн тулд өөрийн ПХБ -ийг үйлдвэрлэж болно.

Алхам 1: эд анги

Эд анги
Эд анги
Эд анги
Эд анги

RGB LED тууз хянагчийн хувьд танд дараахь материал хэрэгтэй болно.

  • 1 удаа Arduino Nano
  • 3x IRLB8721PBF, ямар ч N-сувгийн логик түвшний MOSFET нь хамгийн багадаа 12 В-тэй байх ба таны LED зурвас хэрэглэж байгаа л бол хийх болно.
  • 1х Ротари кодлогч
  • 1х 12В 2А тэжээлийн хангамж, цахилгаан хангамжийн нийлүүлэх гүйдэл нь ашигласан LED зурвасын уртаас хамаарна.
  • 16x Эрэгтэй эрэгтэй холбогч утас
  • 1х Гагнуургүй талхны хавтан, ямар ч талхны хавтан хангалттай том байвал үүнийг хийх болно.

Алхам 2: Хэлхээ

Хэлхээ
Хэлхээ
Хэлхээ
Хэлхээ

Arduino -г талхны хавтангийн 12V ба GND төмөр замд холбоно уу. Дараа нь бусад хэсгүүдийг дараах байдлаар холбоно.

Ротари кодлогч

Зүү A - D4

Зүү B - D3

GND - GND

MOSFET Улаан

Хаалга - GND

Ус зайлуулах - LED тууз улаан утас

Эх сурвалж - D11

MOSFET GreenGate - GND

Ус зайлуулах - LED тууз ногоон утас

Эх сурвалж - D9

MOSFET BlueGate - GND

Ус зайлуулах - LED тууз цэнхэр утас

Эх сурвалж - D6

Алхам 3: Код

// Arduino PWM тээглүүр

int redPin = 11; int greenPin = 6; int bluePin = 9; // Arduino кодлогч тээглүүр int encoderPinA = 3; int encoderPinB = 4; // Өнгөний хувьсагчид int colorVal; int redVal; int greenVal; int blueVal; // Encoder хувьсагчид int encoderPos; int encoderPinACurrent; int encoderPinALast = HIGH; // Бусад int тоолуур; хүчингүй тохиргоо () {pinMode (encoderPinA, INPUT_PULLUP); pinMode (encoderPinB, INPUT_PULLUP); } void loop () {readEncoder (); encoder2rgb (тоолуур); 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; } өөр {encoderPos = encoderPos + 1; }} encoderPinALast = encoderPinACurrent; тоолуур = encoderPos*8; if (тоолуур 1535) {тоолуур = 0; } буцах тоолуур; } int encoder2rgb (int counterVal) {// Улаан бол шар бол (counterVal <= 255) {colorVal = counterVal; redVal = 255; greenVal = colorVal; blueVal = 0; } // Шараас ногоон хүртэл өөр байвал (counterVal <= 511) {colorVal = counterVal - 256; redVal = 255 - colorVal; greenVal = 255; blueVal = 0; } // Green to cyan else if if (counterVal <= 767) {colorVal = counterVal - 512; redVal = 0; greenVal = 255; blueVal = colorVal; } // Цэнхэр бол хөх өнгөтэй бол өөр (counterVal <= 1023) {colorVal = counterVal - 768; redVal = 0; greenVal = 255 - colorVal; blueVal = 255; } // Цэнхэрээс ягаан хүртэл өөр бол (counterVal <= 1279) {colorVal = counterVal - 1024; redVal = colorVal; greenVal = 0; blueVal = 255; } // Magenta to red else {colorVal = counterVal - 1280; redVal = 255; greenVal = 0; blueVal = 255 - colorVal; } буцах redVal, greenVal, blueVal; }

Зөвлөмж болгож буй: