Სარჩევი:

Arduino RGB LED ზოლის კონტროლერი: 4 ნაბიჯი
Arduino RGB LED ზოლის კონტროლერი: 4 ნაბიჯი

ვიდეო: Arduino RGB LED ზოლის კონტროლერი: 4 ნაბიჯი

ვიდეო: Arduino RGB LED ზოლის კონტროლერი: 4 ნაბიჯი
ვიდეო: წიგნი ჩემი პირველი არდუმიკრონის წრეა 2024, ნოემბერი
Anonim
Arduino RGB LED ზოლის კონტროლერი
Arduino RGB LED ზოლის კონტროლერი

ხშირად, როდესაც ადამიანებს სურთ აკონტროლონ თავიანთი RGB LED ზოლები Arduino– ს საშუალებით, სამი პოტენომეტრი გამოიყენება წითელი, მწვანე და ლურჯი ფერების შერწყმისთვის. ეს მუშაობს და შეიძლება იყოს მშვენივრად თქვენი საჭიროებისთვის, მაგრამ მე მინდოდა გამეკეთებინა რაღაც უფრო ინტუიტიური, რაღაც ფერადი ბორბლის მსგავსი.

ეს პროექტი, როგორც ჩანს, შესანიშნავი პროგრამაა მბრუნავი კოდირებისთვის. ეს არის მოწყობილობა, რომელიც გარდაქმნის მისი ლილვის მოძრაობას ციფრულ გამომუშავებაზე. როდესაც ლილვი ბრუნდება, კოდირება აგზავნის სიგნალს (პულსი), რომლის გაზომვაც შესაძლებელია არდუინოს საშუალებით. უფრო მეტი მბრუნავი კოდირებისთვის შეგიძლიათ ნახოთ ეს ვიდეო, რომელიც მას უფრო სიღრმისეულად განმარტავს.

ამ ინსტრუქციებში მე გაჩვენებთ თუ როგორ უნდა გააკეთოთ Arduino RGB LED ზოლის კონტროლერი მბრუნავი კოდირების გამოყენებით. ეს ინსტრუქცია მოიცავს სქემის მშენებლობას პურის დაფაზე. თქვენ შეგიძლიათ აწარმოოთ თქვენი საკუთარი PCB, რათა შექმნათ Arduino ფარი!

ნაბიჯი 1: ნაწილები

ნაწილები
ნაწილები
ნაწილები
ნაწილები

RGB LED ზოლის კონტროლერისთვის დაგჭირდებათ შემდეგი მასალები:

  • 1x არდუინო ნანო
  • 3x IRLB8721PBF, ნებისმიერი N არხის ლოგიკური დონის MOSFET გააკეთებს მანამ, სანამ ის შეფასებულია მინიმუმ 12V- ით და მოიხმარს თქვენი LED ზოლები.
  • 1x მბრუნავი კოდირება
  • 1x 12V 2A ელექტროენერგიის მიწოდება, მიმდინარე დენის მიწოდება შეიძლება დამოკიდებული იყოს გამოყენებული LED ზოლის სიგრძეზე.
  • 16x მამაკაცის და მამაკაცის მხტუნავების მავთულები
  • 1x Solderless breadboard, ნებისმიერი breadboard გააკეთებს მანამ, სანამ ის საკმარისად დიდია.

ნაბიჯი 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; // კოდირების ცვლადები int encoderPos; int encoderPinACurrent; int encoderPinALast = მაღალი; // სხვა int counter; void setup () {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; } else {encoderPos = encoderPos + 1; }} encoderPinALast = encoderPinACurrent; counter = encoderPos*8; if (მრიცხველი 1535) {მრიცხველი = 0; } დაბრუნების მრიცხველი; } int encoder2rgb (int counterVal) {// წითელი ყვითელი if (counterVal <= 255) {colorVal = counterVal; redVal = 255; greenVal = colorVal; blueVal = 0; } // ყვითელი მწვანედან სხვაგან თუ (counterVal <= 511) {colorVal = counterVal - 256; redVal = 255 - colorVal; greenVal = 255; blueVal = 0; } // მწვანე ციანამდე 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; }

გირჩევთ: