Arduino კოდი Transfusion სხვადასხვა ფერის. RGB LED და Arduino. პოსტები გაკვეთილები

მე ცოტა ხნის წინ შეიძინა 2 რულონები rGB LED ლენტი 5 მეტრი, და დაუყოვნებლივ გადაწყვიტა ექსპერიმენტი მასთან. შედის ბლოკი მაკონტროლებელი ლენტით, მაგრამ თითქოს ჩემთვის პატარა ინტერესი იყო და ხელები იყო Tinyos Uno (სრული ჩინური ანალოგი Arduino Uno.). იმის გათვალისწინებით, რომ არდუინო იგი მუშაობს მაქსიმუმ 5V გასასვლელად, და უფრო ხშირად 3.3B მაშინ აუცილებელი იყო გამოსავალი. ეს სტატია განიხილავს თუ როგორ უნდა დააკავშიროთ 12 ვოლტ LED ლენტი არდუინო ცალკე კვების ფირზე და კონტროლი arduinka არხების კონტროლისთვის Mosfets (Mosfets) RGB ლენტები.

დავიწყოთ ანალოგური LED ფირის სტანდარტული სპეციფიკა, რომელიც, როგორც ჩანს, ყველაზე გავრცელებულია.

  • 10.5 მმ (0.41 ") სიგანე, 3 მმ (0.12") სისქე, 100 მმ (3.95 ") თითოეული სეგმენტის სიგრძე
  • არსებობს ტენიანობის მტკიცებულება ( Წყალგაუმტარი) და დაცვის გარეშე ( არასამთავრობო წყალგაუმტარი)
  • მას აქვს წებოვანი ფირზე უკან fastening ფირზე
  • მაქსიმალური ძაბვის 12V და 60mA თითოეული სეგმენტისთვის
  • 3 leds საერთო anode თითოეულ სეგმენტზე
  • LED ტალღის სიგრძე: 630nm / 530nm / 475nm
  • არ microcontroller ან კონტროლერი ჩიპი (სუფთა ანალოგური კონტროლი)

სამუშაოს დაწყებამდე Arduino. და ძაბვა უფრო მაღალია, ვიდრე 5 ვოლტი ძალიან ვურჩევ კითხულობს, რომ არ დაწვა შენი Arduino.. კარგად არის აღწერილი. მოსესტოვი -დან არდუინო. თუ თქვენ უკვე წაიკითხეთ ეს სტატია, მოდით გადაადგილება.
ასე რომ lED ლენტი ჩვენ გვჭირდება:

  1. Mosfet. ტრანზისტორი, რომელიც შეიძლება იმავე eBay- ზე იპოვოთ
  2. რეზისტორების 10k?
  3. მაკიაჟი სხივი ( breadboard.)
  4. კავშირი კავშირისთვის არდუინო თამამი საფასური (მამა მამა)
  5. LED ფირზე (მე მივიღე aliexpress აქ არის ეს ფირფიტა და გეგმავს შეკვეთას რამდენიმე იმავე გამყიდველისთვის)

ახლა მოდით მივმართოთ კავშირის სქემას, ამ სტატიის ძირითადი ნაწილი ნათელი იქნება:

ახლა მოდით მივმართოთ Arduino IDEრომელშიც თქვენ დაწერებთ ტესტირებას ჩვენი ლენტით:

// გაითვალისწინეთ, რომ არსებობს რაღაც მემკვიდრეობის კოდი დარჩა აქ, რომელიც sems არაფერი // მაგრამ არ უნდა ზიანი მიაყენოს ... // Don "T Futz ამ, Illicit თანხები მოგვიანებით #define წითელი 9 / / PIN წითელი LED #Define მწვანე 10 // pin მწვანე - არასდროს აშკარად მითითებული #define blue 11 // pin ლურჯი - არასოდეს აშკარად მითითებული #define ზომა 255 #define დაგვიანებით 20 #define hue_max 6.0 #define hue_delta 0.01 // long deltas \u003d (5, 6, 7); ხანგრძლივი rgb; ხანგრძლივი rgbval; / / მიზეზების გამო უცნობია, თუ ღირებულება! \u003d 0, LED არ არის ნათელი. Hmm ... // და გაჯერებული sems უნდა იყოს ინვერსიული float hue \u003d 0.0, სატურაცია \u003d 1, ღირებულება \u003d 1; / * არჩეული LED SPARKFUN SKU : COM-09264 აქვს Max Luminosity (RGB): (2800, 6500, 1200) MCD, ასე რომ ჩვენ მათ ნორმალიზება მათ 1200 MCD - R 250/600 \u003d 107/256 G 250/950 \u003d 67/256 B 250/250 \u003d 256 / 256 * / Long Bright \u003d (107, 67, 256); //15, 256, 256, 256); ხანგრძლივი k, temp_value; ბათილი კონფიგურაცია (შემთხვევები (ანალოგრე (4)); ამისთვის (K \u003d 0; კ.<3; k++) { pinMode(RED + k, OUTPUT); rgb[k]=0; analogWrite(RED + k, rgb[k] * bright[k]/256); } } void loop() { hue += HUE_DELTA; if (hue > Hue_max) (Hue \u003d 0.0;) rgbval \u003d hsv_to_rgb (ტონი, გაჯერება, ღირებულება); RGB \u003d (RGBVAL & 0x00FF0000) \u003e\u003e 16; // უნდა იყოს უკეთესი გზები RGB \u003d (RGBVAL & 0x0000FF00) \u003e\u003e<3; k++) { // for all three colours analogWrite(RED + k, rgb[k] * bright[k]/256); } delay(DELAY); } long HSV_to_RGB(float h, float s, float v) { // H is given on . S and V are given on . // RGB is returned as a 24-bit long #rrggbb int i; float m, n, f; // not very elegant way of dealing with out of range: return black if ((s<0.0) || (s>1.0) || (ვ.<1.0) || (v> < 0.0) || (h > 6.0)) (დაბრუნების ხანგრძლივობა (V * 255) + გრძელია (V * 255) * 256 + გრძელი (v * 255) * 65536;) i \u003d იატაკი (H); f \u003d h - i; თუ (! (i & 1)) (f \u003d 1 - f; // თუ მე კი) m \u003d v * (1 - s); n \u003d v * (1 - s * f); შეცვლა (I) (საქმე 6: საქმე 0: დაბრუნების ხანგრძლივობა (V * 255) * 65536 + გრძელი (N * 255) * 256 + გრძელი (მ * 255); საქმე 1: დაბრუნება გრძელი (N * 255) * 65536 + ხანგრძლივი (v * 255) * 256 + გრძელი (მ * 255); საქმე 2: დაბრუნების ხანგრძლივობა (M * 255) * 65536 + გრძელია (v * 255) * 256 + გრძელი (n * 255); საქმე 3: დაბრუნების გრძელი (M * 255) * 65536 + გრძელია (N * 255) * 256 + გრძელი (v * 255); საქმე 4: დაბრუნების ხანგრძლივობა (N * 255) * 65536 + გრძელი (M * 255) * 256 + გრძელია (V * 255); საქმე 5: დაბრუნების გრძელი (V * 255) * 65536 + გრძელი (M * 255) * 256 + გრძელი (N * 255);)

ჩაასხით arduino on ესკიზის და rejoice.
ასევე არსებობს ვარიანტი ტემპერატურის სენსორის გამოყენებით. DS18B20.რომელიც მუშაობს პროტოკოლზე 1 მავთული..

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

ცივი ტემპერატურა ამ შემთხვევაში, ეს ნიშნავს 18 ° C- ს თვალსაზრისით ცხელი ეს გულისხმობს 30 ° C. ცივი ბარიერის ქვემოთ მოყვანილი ტემპერატურა ცივი, ცხელი ბარიერის ზემოთ - ცხელი. საბოლოო კოდი რეალურად საკმაოდ მარტივია, როდესაც თქვენ გაქვთ მზა HSV კოდი:

HSV Fade / Bounce for Arduino // გაითვალისწინეთ, რომ არსებობს რაღაც მემკვიდრეობის კოდი დარჩა აქ, რომელიც sems არაფერი // მაგრამ არ უნდა გააკეთოს ზიანი ... # მოიცავს "onewire.h" // # მოიცავს "ნაკადი. Const Int DS18S20_PIN \u003d 2; / DS18S20 სიგნალი Pin ციფრული 2 #define min_temp 18 #define max_temp 30 // ტემპერატურა ჩიპი I / O onewire DS (DS18S20_PIN); // ციფრული PIN 2 / DON "T FUTZ ამ, Illicit თანხები მოგვიანებით #define წითელი 9 // PIN for Red LED #Define მწვანე 10 // Pin მწვანე - არასოდეს აშკარად მითითებული #define ლურჯი 11 / PIN ლურჯი - არასოდეს აშკარად მითითებული #define ზომა 255 #Define Delay 0 # Define Hue_Max 6.0 # #define hue_delta 0.01 // long deltas \u003d (5, 6, 7); ხანგრძლივი rgb; ხანგრძლივი rgbval; / / მიზეზების გამო უცნობია, თუ ღირებულება! \u003d 0, LED არ არის ნათელი. : COM-09264 აქვს Max Luminosity (RGB): (2800, 6500, 1200) MCD, ასე რომ ჩვენ მათ ნორმალიზება მათ 1200 MCD - R 250/600 \u003d 107/256 G 250/950 \u003d 67/256 B 250/250 \u003d 256 / 256 * / Long Bright \u003d (107, 67, 256); // ხანგრძლივი ნათელი \u003d (256, 256, 256); ხანგრძლივი k, temp_value; ბათილად კონფიგურაცია (შემთხვევები (ანალოგრე (4)); Serial.Begin ( 57600); (k \u003d 0; k<3; k++) { pinMode(RED + k, OUTPUT); rgb[k]=0; analogWrite(RED + k, rgb[k] * bright[k]/256); } } void loop() { float temperature = constrain(getTemp(), MIN_TEMP, MAX_TEMP); float deltaTemp = (MAX_TEMP - MIN_TEMP); float deltaHue = 4 - 0; hue = map((temperature - MIN_TEMP) * 100, 0, deltaTemp * 100, deltaHue * 100, 0) / 100.0; //Serial << "Temperature: " << temperature << endl; //Serial << "HUE: " << hue << endl; rgbval=HSV_to_RGB(hue, saturation, value); rgb = (rgbval & 0x00FF0000) >\u003e 16; / / უნდა იყოს უკეთესი გზები RGB \u003d (RGBVAL & 0x0000FF00) \u003e\u003e 8; RGB \u003d RGBVAL & 0x000000FF; (k \u003d 0; k<3; k++) { // for all three colours analogWrite(RED + k, rgb[k] * bright[k]/256); } //delay(DELAY); } float getTemp(){ //returns the temperature from one DS18S20 in DEG Celsius byte data; byte addr; if (!ds.search(addr)) { //no more sensors on chain, reset search ds.reset_search(); return -1000; } if (OneWire::crc8(addr, 7) != addr) { Serial.println("CRC is not valid!"); return -1000; } if (addr != 0x10 && addr != 0x28) { Serial.print("Device is not recognized"); return -1000; } ds.reset(); ds.select(addr); ds.write(0x44,1); // start conversion, with parasite power on at the end byte present = ds.reset(); ds.select(addr); ds.write(0xBE); // Read Scratchpad for (int i = 0; i < 9; i++) { // we need 9 bytes data[i] = ds.read(); } ds.reset_search(); byte MSB = data; byte LSB = data; float tempRead = ((MSB << 8) | LSB); //using two"s compliment float TemperatureSum = tempRead / 16; return TemperatureSum; } long HSV_to_RGB(float h, float s, float v) { // H is given on . S and V are given on . // RGB is returned as a 24-bit long #rrggbb int i; float m, n, f; // not very elegant way of dealing with out of range: return black if ((s<0.0) || (s>1.0) || (ვ.<1.0) || (v>1.0)) (დაბრუნების 0L;) თუ (H< 0.0) || (h > 6.0)) (დაბრუნების ხანგრძლივობა (V * 255) + გრძელია (V * 255) * 256 + გრძელი (v * 255) * 65536;) i \u003d იატაკი (თ); f \u003d h - i; თუ (! (i & 1)) (f \u003d 1 - f; // თუ მე კი) m \u003d v * (1 - s); n \u003d v * (1 - s * f); შეცვლა (I) (საქმე 6: საქმე 0: დაბრუნების ხანგრძლივობა (V * 255) * 65536 + გრძელი (N * 255) * 256 + გრძელი (მ * 255); საქმე 1: დაბრუნება გრძელი (N * 255) * 65536 + ხანგრძლივი (v * 255) * 256 + გრძელი (მ * 255); საქმე 2: დაბრუნების ხანგრძლივობა (M * 255) * 65536 + გრძელია (v * 255) * 256 + გრძელი (n * 255); საქმე 3: დაბრუნების გრძელი (M * 255) * 65536 + გრძელია (N * 255) * 256 + გრძელი (v * 255); საქმე 4: დაბრუნების ხანგრძლივობა (N * 255) * 65536 + გრძელი (M * 255) * 256 + გრძელია (V * 255); საქმე 5: დაბრუნების გრძელი (V * 255) * 65536 + გრძელი (M * 255) * 256 + გრძელი (N * 255);)

ამ მოწყობილობების მართვა, RGB კონტროლერი გამოიყენება. გარდა ამისა, მასთან ერთად, ბოლო წლებში Arduino საფასური იქნა გამოყენებული.

Arduino - ოპერაციის პრინციპი

Arduino Board

Arduino Board არის მოწყობილობა, რომელზეც პროგრამირებადი მიკროკონტროლი დამონტაჟებულია. მასთან დაკავშირებული სხვადასხვა სენსორები, კონტროლი ან კოდირებულ კონტროლს უკავშირებენ მას, და მოცემული ესკიზის (პროგრამის) მიხედვით, გამგეობა აკონტროლებს საავტომობილო, LED- ებისა და სხვა აქტივის მექანიზმებს, მათ შორის სხვა Arduino დაფები SPI პროტოკოლის მეშვეობით. მოწყობილობის კონტროლი შეიძლება მონიტორინგი დისტანციური მართვის საშუალებით, Bluetooth, HC-06, Wi-Fi, ESP, ან ინტერნეტ მოდული და ღილაკები. ზოგიერთი ყველაზე პოპულარული ფირფიტა - Arduino Nano და Arduino Uno, ისევე როგორც Arduino Pro Mini - Atmega 328 Microcontroller მოწყობილობა


გამოჩენა Arduino Pro მინი
გამოჩენა Arduino Uno
გამოჩენა Arduino მიკრო

პროგრამირება ხორციელდება ჩვეულებრივი კომპიუტერით დამონტაჟებული ღია Arduino გარემოში. პროგრამები დატვირთულია USB- ის მეშვეობით.

დატვირთვის მართვის პრინციპი Arduino- ის მეშვეობით


ოფისი Arduino.

ბორტზე არსებობს ბევრი შედეგები, როგორც ციფრული, ორი სახელმწიფო - ჩართულია და შეზღუდული შესაძლებლობების მქონე და ანალოგური, კონტროლირებადი PWM- კონტროლერის მეშვეობით 500 Hz სიხშირით.

მაგრამ საშუალებები გამოითვლება მიმდინარე 20 - 40 მ MA- ზე 5 ვ. ეს არის საკმარისი იმისათვის, რომ ძალაუფლება RGB-LED ან Matrix LED მოდული 32 × 32 მმ. უფრო ძლიერი დატვირთვისთვის, ეს არ არის საკმარისი.

ამ პრობლემის გადასაჭრელად ბევრ პროექტში, საჭიროა დამატებითი მოწყობილობების დაკავშირება:

  • სარელეო. ინდივიდუალური 2V- ის ელექტროენერგიის მიწოდების გარდა, არსებობს მთელი ასამბლეები კონტაქტების სხვადასხვა რაოდენობით, ისევე როგორც ჩაშენებული დამწყებთათვის.
  • გამაძლიერებლები ბიპოლარული ტრანზისტების შესახებ. ამგვარი მოწყობილობების ძალა შეზღუდულია კონტროლის ქვეშ, მაგრამ თქვენ შეგიძლიათ შეაგროვოთ რამდენიმე ელემენტის დიაგრამა ან გამოიყენოთ ტრანზისტორი ასამბლეის გამოყენება.
  • საველე ან Mosfet Transistors. მათ შეუძლიათ გააკონტროლონ მიმდინარე დენებისაგან რამდენიმე amps და ძაბვის მდე 40-50 V. როდესაც აკავშირებს Mosfta to PWM და ელექტროძრავის ან სხვა ინდუქციური დატვირთვის, დამცავი დიოდი საჭიროა. როდესაც დაკავშირებულია LED- ებს ან LED ნათურებს არ არის საჭირო.
  • გაფართოების დაფები.

დამაკავშირებელი LED ლენტი Arduino


დამაკავშირებელი LED ლენტი Arduino

აზრის ექსპერტი

ალექსეი ბარტოსი

სარემონტო, ელექტრო მოწყობილობების და სამრეწველო ელექტრონიკის შენარჩუნება.

დასვით შეკითხვა ექსპერტი

Arduino Nano შეუძლია მართოს არა მხოლოდ ელექტროძრავები. ისინი ასევე გამოიყენება LED ფირები. მაგრამ მას შემდეგ, რაც გამომავალი მიმდინარე და გამგეობის ძაბვის არასაკმარისია, რომ პირდაპირ დააკავშირებს შემსრულებლები LED- ები, აუცილებელია დამატებითი მოწყობილობების დაყენება კონტროლს და LED ლენტით.

მეშვეობით სარელეო


დაკავშირება მეტი relays

სარელეო აკავშირებს მოწყობილობას ციფრული გამომავალი. ჯგუფს მოახერხა მხოლოდ ორი ქვეყანა - და გამორთვა. წითელი ლურჯი მწვანე, რიბონი მოითხოვს სამი რელეებით. ამჟამინდელი, რომ ასეთი მოწყობილობა შეუძლია გააკონტროლოს, შემოიფარგლება Coil Power (დაბალი დენის Coil ვერ შეანელებს დიდი კონტაქტები). სარელეო Assemblies გამოიყენება მეტი ძალაუფლების დასაკავშირებლად.

ბიპოლარული ტრანზისტორის გამოყენება


დამაკავშირებელი ტრანზისტორი

გააუმჯობესოს გამომავალი მიმდინარე და ძაბვის, შეგიძლიათ გამოიყენოთ ბიპოლარული ტრანზისტორი. იგი შეირჩევა მიმდინარე და დატვირთვის ძაბვის მიერ. კონტროლის მიმდინარე არ უნდა იყოს ზემოთ 20 მ MA, ამიტომ, იგი იკვებება მეშვეობით მიმდინარე შეზღუდვის წინააღმდეგობის 1 - 10 com.

ტრანზისტორი უკეთესია n-p-n საერთო emitter. უფრო დიდი მოგების მისაღწევად გამოიყენება მრავალ ელემენტებთან ან ტრანზისტორი ასამბლეის (გამაძლიერებელი ჩიპი).

საველე ტრანზისტორის გამოყენება

ბიპოლარული გარდა, საველე ტრანზისტორი გამოიყენება ზოლების კონტროლისთვის. ამ მოწყობილობების კიდევ ერთი სახელია Mos ან Mosfet- ტრანზისტორი.

ასეთი ელემენტი, ბიპოლარული განსხვავებით, არ არის კონტროლირებადი, მაგრამ ძაბვის კარიბჭეზე. ეს საშუალებას იძლევა პატარა ჩამკეტის მიმდინარეობს კონტროლი დიდი დატვირთვის დენებისაგან - მდე ათეული amps.

ელემენტი უკავშირდება მიმდინარე შეზღუდვის წინააღმდეგობას. გარდა ამისა, ეს არის მგრძნობიარე ჩარევა, ამიტომ კონტროლერი გამომავალი უნდა იყოს კომბინირებული მასობრივი resistor 10 com.

გაფართოების დაფები


დაკავშირება Arduino გამოყენებით გაფართოების დაფები

გარდა ამისა, რელეებისა და ტრანზისტების გარდა, მზადდება ბლოკები და გაფართოების დაფები.

ეს შეიძლება იყოს Wi-Fi ან Bluetooth, ელექტრო საავტომობილო კონტროლის მძღოლი, მაგალითად, L298n მოდული ან გათანაბრება. ისინი მიზნად ისახავს სხვადასხვა ძალაუფლების და ძაბვის დატვირთვას. ასეთი მოწყობილობები ერთჯერადი არხი - შეიძლება მხოლოდ მონოქრომული ფირფიტის კონტროლი და მრავალარხიანი - განკუთვნილია RGB და RGBW მოწყობილობებისათვის, ასევე WS 2812 LED- სთვის.

მაგალითი პროგრამა


Arduino და LED ფირზე

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

აქ არის რამოდენიმე ვარიანტი ასეთი სისტემების გამოყენებისათვის:

  • განათების კონტროლი. განათების სენსორის დახმარებით, ოთახში სინათლე ორივე ერთდროულად ჩართულია და მზის ჩასვლისას. ჩართულობა ასევე შეიძლება გაკეთდეს Wi-Fi- ით, ჭკვიანი სახლის სისტემაში ინტეგრაციის ან ტელეფონით დამაკავშირებლად.
  • სინათლის ჩართვა კიბეებზე ან ხანგრძლივი დერეფანში. ეს ძალიან ლამაზია თითოეული ნაბიჯის დიოდური განათების ცალკე. მოძრაობის სენსორის საბჭოსთან დაკავშირებისას ეს გამოიწვევს მას, რომ შეესაბამებოდეს, დრო დაგვიანებით, ჩართეთ განათება ან დერეფანი და ამ პუნქტის გამორთვა გამოიწვევს საპირისპირო პროცესს.
  • ფერადი მუსიკა. ანალოგური საშუალებებით მიმართა, ფილტრების საშუალებით beep, გამომავალი გამოიწვევს ფერადი მუსიკის მონტაჟს.
  • კომპიუტერული modding. შესაბამისი სენსორების და პროგრამების დახმარებით, LED- ების ფერი შეიძლება დამოკიდებული იყოს ტემპერატურაზე ან პროცესორის ან RAM- ის დატვირთვის შესახებ. ასეთი მოწყობილობა DMX 512 პროტოკოლის ქვეშ.
  • კონტროლის სიჩქარე გაშვებული განათება დახმარებით Encoder. ასეთი დანადგარები აგროვებენ WS 2811, WS 2812 და WS 2812B ჩიპს.

ვიდეო ინსტრუქცია

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



RGB LED (აბრევიატურა ნიშნავს წითელი, მწვანე, ლურჯი) არის კომბინაცია კრისტალები, რომელსაც შეუძლია შექმნას წითელი, მწვანე და ლურჯი. ამ კომბინაციის წყალობით, ეს LED- ები 16 მილიონზე მეტს შეეძლებათ სინათლის რეპროდუცირება. კონტროლი RGB-LED- ები ადვილია და ადვილად შეიძლება გამოყენებულ იქნას Arduino- ს პროექტებში. ეს მასალა აჩვენებს RGB- ის კონტროლის მაგალითს Arduino- ის გამოყენებით.


მას შემდეგ, რაც RGB LED, როგორც ზემოთ აღვნიშნეთ, არის სამი სხვადასხვა ბაზის ფერის კრისტალების კომბინაცია, ის არის სამი LED- ები. სტრუქტურულად, ასეთი LED აქვს ერთი საერთო გამომავალი და სამი შედეგები თითოეული ფერი. ქვემოთ არის RGB-LED კავშირი სქემა Arduino. ასევე, სქემა შეიცავს 16 × 2-ის ალფანუმერულ LCD- ს, პოტენციურ და რეზისტენტებს, რომლებიც კმაყოფილია RGB-LED ხაზებით. ეს რეზისტორები (R1 \u003d 100 ohm, r2 \u003d 270 ohm, r3 \u003d 330 ohm) ზღუდავს მიმდინარე LED ისე, რომ ისინი არ ვერ. ცვლადი რეზისტორების (POTENTIOMETERS) VR1-VR3 წინააღმდეგობა 10 Kω გამოიყენება RGB-LED- ის ბრწყინვალების ინტენსივობის კონტროლისთვის, რაც მათ დახმარებით შეგიძლიათ შექმნათ LED- ის ფერი, წითელი, მწვანე ინტენსივობის შეცვლა და ლურჯი კრისტალები. VR1 Potentiometer უკავშირდება ანალოგური შეყვანის A0, VR2 ანალოგური შეყვანის A1 და VR3 ანალოგური შეყვანის A2.



LCD დისპლეი გამოიყენება ამ შემთხვევაში ფერის მნიშვნელობასა და ფერის კოდის თექვსმეტეს ღირებულებას. ფერადი კოდის ღირებულება ნაჩვენებია LCD- ის პირველი ხაზის (როგორც RXXX GXXX BXXX, სადაც XXX არის რიცხვითი მნიშვნელობა) და Hexadecimal Code არის ნაჩვენები მე -2 ხაზი LCD ეკრანზე (როგორც HEXXXXXXX). Resistor R4 წინააღმდეგობის 100 ohms გამოიყენება ზღუდავს მიმდინარე გამოყენებას LCD განათების, და ცვლადი Resistor VR4 წინააღმდეგობის გამოიყენება შეცვალოს განსხვავებით LCD დისპერსიით.


ქვემოთ მოცემულია კოდი (სექცია), რომელიც საშუალებას გაძლევთ გააკონტროლონ RGB-LED- ის ფერის ვარიაცია Arduino- ის ფორუმში და მასთან დაკავშირებული პოტენციურებით.


#Include. // LCD ბიბლიოთეკა LiquidCrystal LCD (7, 6, 5, 4, 3, 2); / / Arduino ხაზი დაკავშირება int radj lcd; int gadj; Int badj; int rval \u003d 0; int gval \u003d 0; int bval \u003d 0; int r \u003d 9; int g \u003d 10; int b \u003d 11; ძალადაკარგული კონფიგურაცია (Pinmode (R, გამომავალი); // ხაზი 9 მიმართულია pinmode (G, გამომავალი) გამომავალი; // ხაზი 10 მიმართულია pinmode გამომავალი (B, გამომავალი); // ხაზი 11 არის მიმართული LCD.Begin გამომავალი (16,2); / / დაგვიანებით (1) ჩვენების ინიციალიზაცია; LCD.Setcursor (0,0); LCD.Print ("RGB ფერი"); LCD.Setcursor (4,1); LCD .Print ("გენერატორი"); დაგვიანებით (2000); lcd.setcursor (0, 0); LCD.Print ("RGB"); LCD.Setcursor (3,1); LCD.print ("hex \u003d"); ) ბათილი loop () (radj \u003d analogread (0); gadj \u003d analogread (1); badj \u003d analogread (2); rval \u003d radj / 4; // კონვერტაციის დიაპაზონი (0-1023) to (0-255) Gval \u003d gadj / 4; // კონვერტაციის დიაპაზონი (0-1023) to (0-255) bval \u003d badj / 4; // კონვერტაციის დიაპაზონი (0-1023) to (0-255) LCD.Setcursor ( 2.0); თუ (რივი<10) { lcd.setCursor(2,0); lcd.print("00"); lcd.print(Rval); } else if(Rval<100) { lcd.setCursor(2,0); lcd.print("0"); lcd.print(Rval); } else { lcd.setCursor(2,0); lcd.print(Rval); } lcd.setCursor(8,1); if (Rval<16) { lcd.print("0"); lcd.print(Rval, 16); } else { lcd.print(Rval, 16); } lcd.setCursor(7,0); if (Gval<10) { lcd.setCursor(7,0); lcd.print("00"); lcd.print(Gval); } else if(Gval<100) { lcd.setCursor(7,0); lcd.print("0"); lcd.print(Gval); } else { lcd.setCursor(7,0); lcd.print(Gval); } lcd.setCursor(10,1); if (Gval<16) { lcd.print("0"); lcd.print(Gval, 16); } else { lcd.print(Gval, 16); } lcd.setCursor(12,0); if (Bval<10) { lcd.setCursor(12,0); lcd.print("00"); lcd.print(Bval); } else if(Bval<100) { lcd.setCursor(12,0); lcd.print("0"); lcd.print(Bval); } else { lcd.setCursor(12,0); lcd.print(Bval); } lcd.setCursor(12,1); if (Bval<16) { lcd.print("0"); lcd.print(Bval, 16); } else { lcd.print(Bval, 16); } analogWrite(R, Rval); // ШИМ-выход для красного цвета analogWrite(G, Gval); // ШИМ-выход для зеленого цвета analogWrite(B, Bval); // ШИМ-выход для синего цвета }

წინა გაკვეთილში, ჩვენ უკვე სცადა. ახლა ჩვენ გაერკვევა ის multicolor LED, რომელიც ხშირად მოუწოდა მოკლე: RGB LED.

RGB არის აბრევიატურა, რომელიც გისურვებთ: წითელი, წითელი, მწვანე - მწვანე, ლურჯი - ლურჯი. ანუ, ამ მოწყობილობის შიგნით არის სამი ცალკე LED- ის. დამოკიდებულია ტიპის, RGB LED შეიძლება ჰქონდეს საერთო კათოდური ან საერთო ანდოდი.

შერევით ყვავილები

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

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

აღმოჩნდება, რომ ერთმანეთთან უფრო ახლოს არის მრავალფუნქციური ფერადი ქულა, პატარა მანძილი საჭიროა ამ ფერის შესაქმნელად. აქედან გამომდინარე, დასკვნა: სამი დაშორებული LED- ებისგან განსხვავებით, RGB- ის LED ფერების შერევა უკვე 30-70 სმ-ს დაშორებით არის შესამჩნევი. სხვათა შორის, RGB- ს მქრქალ ლინზებთან ერთად უკეთესად გვიჩვენებს.

Multicolor Leds, ან როგორც ისინი ასევე მოუწოდა RGB, გამოიყენება მიუთითებს და შექმნას დინამიურად შეცვლის განათების ფერი. სინამდვილეში, მათში განსაკუთრებული არაფერია, მოდით გავიგოთ, როგორ მუშაობს ისინი და რა არის RGB LED- ები.

შიდა ორგანიზაცია

სინამდვილეში, RGB LED არის სამი მონოქრომული კრისტალები ერთ შემთხვევაში. RGB სახელი გაშიფრულია, როგორც წითელი, მწვანე - მწვანე, ლურჯი - ლურჯი, შესაბამისად, ფერები, რომელიც თითოეული კრისტალებისგან გამოდის.

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

ამ სურათში ხედავთ შერევით ფერების პრინციპს, ყველა ფერებში.

კრისტალები RGB LED- ებში შეიძლება დაკავშირებული იყოს სქემით:

საერთო ანდოდით;

საერთო კათოდით;

Არ არის დაკავშირებული.

პირველ ორ ვარიანტში, დაინახავთ, რომ LED- ს აქვს 4 შედეგები:

ან მე -6 დასკვნები ამ უკანასკნელ შემთხვევაში:

თქვენ შეგიძლიათ ნახოთ სამი კრისტალები, რომლებიც აშკარად ჩანს ფოტოსურათში ობიექტივით.

სპეციალური სამონტაჟო საიტები იყიდება ასეთი LED- ები, ისინი კი მიუთითებენ დასკვნების დავალების მითითებით.

შეუძლებელია RGBW - LED- ების დატოვება, მათი განსხვავება ის არის, რომ არსებობს კიდევ ერთი კრისტალი მათ საცხოვრებელში, რომელიც თეთრ სინათლეს ასახავს.

ბუნებრივია, ასეთი LED- ების გარეშე.

ეს სურათი გვიჩვენებს ლენტით RGB-LED- ებს Circuit- ის მიხედვით საერთო ანოდით, ბრწყინვალების ინტენსივობის კორექტირება ხორციელდება "-" (მინუს) ელექტრომომარაგება.

RGB-Ribbon ფერის შესაცვლელად, სპეციალური RGB კონტროლერები გამოიყენება - მოწყობილობები გადართვის ძაბვის საკვების ფირზე.

აქ არის Cocol RGB SMD5050:

და ფირები, RGB-Ribbons- ის მუშაობის მახასიათებლები არ არის, ყველაფერი რჩება, ისევე როგორც ერთი ფერადი მოდელები.

მათთვის კონექტორები არიან LED ფირზე დაკავშირება.

აქ არის 5 მმ RGB- ის Pinout:

როგორ ფერი Glow ცვლილებები

ფერადი კორექტირება ხორციელდება თითოეული კრისტალების მიერ ემისიების სიკაშკაშის მორგება. ჩვენ უკვე განვიხილეთ.

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

დიახ, ასეთი ძლიერი მოწყობილობა საბინაო ზომით ელექტროენერგიით.

ისინი დაკავშირებულია ფირზე ასეთი სქემით:

მას შემდეგ, რაც ლენტიის ბილიკების ჯვარედინმა არ იძლევა საშუალებას ფირის შემდეგ სეგმენტთან დაკავშირება მასთან ერთად, თუ პირველი სიგრძე 5 მ-ს აღემატება, თქვენ უნდა დააკავშიროთ მეორე სეგმენტი მავთულხლართებით პირდაპირ RGB კონტროლერისგან.

მაგრამ თქვენ შეგიძლიათ გავიდნენ პოზიცია, და არ გაიყვანოთ დამატებითი 4 მავთული 5 მეტრი კონტროლერი და გამოიყენოთ RGB გამაძლიერებელი. მისი მუშაობისთვის საჭიროა მხოლოდ 2 მავთულის მონაკვეთი (პლუს და მინუს 12V) ან სხვა ელექტრომომარაგების შენახვა უახლოეს წყაროდან 220V, ასევე 4 "ინფორმაცია" მავთულები წინა სეგმენტიდან (R, G და B) მოიპოვოს ბრძანებები კონტროლერისგან, ისე, რომ მთელი დიზაინის ბრწყინვალება თანაბრად არის.

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

მარეგულირებელი RGB-LED თქვენი ხელებით

ასე რომ, RGB-LED- ების კონტროლის ორი ვარიანტია:

აქ არის სქემის ვარიანტი Arduin და სხვა მიკროკონტროლერების გამოყენებით, სამი CAT4101 მძღოლის გამოყენებით, რომელსაც შეუძლია 1A- ს გაცემის შესაძლებლობა.

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

დასკვნა

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