Čia matote skirtumus tarp pasirinktos versijos ir esamo dokumento.
Both sides previous revision Previous revision Next revision | Previous revision | ||
projektas_nr.3 [2015/10/25 18:54] 193.219.47.27 |
projektas_nr.3 [2015/12/03 01:13] (esamas) valius.benas |
||
---|---|---|---|
Linija 2: | Linija 2: | ||
**Ką mes darome:**\\ | **Ką mes darome:**\\ | ||
- | Pradėję su pirmuoju projektu, džiaugiamės gavę mirksinčią lemputę. Bet tai jau praeita, taip? Tu nori oranžinės, žydros! Mūsų laimei, yra būdas matyti skirtingas šviesas iš vieno LEDo, nekeičiant jo skirtingo atspalvio lemputėmis. Tam mes naudojame RGB LEDą. RGB LED nėra atskiras LEDas, iš tikrųjų tai trys, vienas šalia kito esantys LEDai: vienas raudonas, vienas žalias ir vienas mėlynas. Kai juos įjungiame, šios šviesos maišosi – taip gauname kitas spalvas. Šviesa, kurią gauni, priklauso nuo tam tikros raudono, žalio ir mėlyno LEDų intensyvumo. Intensyvumą reguliuojame su Pulse Width Modulation (PWM), kurį jau naudojome prieš tai, LED ryškumui ir motoriniam greičiui reguliuoti. | + | Pradėję su pirmuoju projektu, džiaugiamės gavę mirksinčią lemputę. Bet tai jau praeita, taip? Tu nori oranžinės, žydros! Mūsų laimei, yra būdas matyti skirtingas šviesas iš vieno LED'o, nekeičiant jo skirtingo atspalvio lemputėmis. Tam mes naudojame RGB LED'ą. RGB LED'as yra sudarytas iš trijų, vienas šalia kito esančių (raudono, mėlyno ir žalio)LED'ų. Kai juos įjungiame, šios šviesos maišosi – taip gauname kitas spalvas. Šviesa, kurią gauni, priklauso nuo tam tikros raudono, žalio ir mėlyno LED'ų intensyvumo. Intensyvumą reguliuojame su Pulse Width Modulation (PWM), kurį jau naudojome prieš tai, LED'o ryškumui ir motoriniam greičiui reguliuoti. |
- | **Grandinės dalys**\\ | + | **Grandinės dalys:** |
- | CIRC-12 konstravimo plokštė x1\\ | + | *CIRC-12 konstravimo plokštė x1 |
- | 2 Pin Header x4\\ | + | *2 kontaktų kištukas x4 |
- | RGB LED x1\\ | + | *RGB LED x1 |
- | Laidai x6\\ | + | *Laidai x6 |
- | 560 Ohm rezistorius (Žalia-Mėlyna-Ruda) x3 | + | *560 Ohm rezistorius (Žalia-Mėlyna-Ruda) x3 |
+ | **Principinė schema** | ||
+ | |||
+ | {{:ardu_pro3.jpg?300|}} | ||
+ | |||
+ | **Surinkta grandinė** | ||
+ | |||
+ | {{:ardu_pro31.png?600|}} | ||
+ | |||
+ | **Kodas** | ||
+ | |||
+ | <code> | ||
+ | /* | ||
+ | |||
+ | RGB_LED_Color_Fade_Cycle.pde | ||
+ | | ||
+ | RGB LED spalvų ciklas | ||
+ | |||
+ | Parašytas SparkFun Arduino Inventor's Kit CIRC-RGB | ||
+ | |||
+ | */ | ||
+ | |||
+ | // LED laidai prijungti prie PWM kontaktų | ||
+ | const int RED_LED_PIN = 9; | ||
+ | const int GREEN_LED_PIN = 10; | ||
+ | const int BLUE_LED_PIN = 11; | ||
+ | |||
+ | // Naudojamas konkretaus LED'o spalvos intensyvumo lygio saugojimui | ||
+ | int redIntensity = 0; | ||
+ | int greenIntensity = 0; | ||
+ | int blueIntensity = 0; | ||
+ | |||
+ | // Švietimo laiko tarpas | ||
+ | const int DISPLAY_TIME = 100; // milisekundėmis | ||
+ | |||
+ | |||
+ | void setup() { | ||
+ | // nustatymai nereikalaujami. | ||
+ | } | ||
+ | |||
+ | void loop() { | ||
+ | // Darome spalvų ciklą iš raudonos į žalą | ||
+ | // (Šiame cikle mes keičiam 100% raudoną, 0% žalią į 0% raudoną, 100% žalią) | ||
+ | for (greenIntensity = 0; greenIntensity <= 255; greenIntensity+=5) { | ||
+ | redIntensity = 255-greenIntensity; | ||
+ | analogWrite(GREEN_LED_PIN, greenIntensity); | ||
+ | analogWrite(RED_LED_PIN, redIntensity); | ||
+ | delay(DISPLAY_TIME); | ||
+ | } | ||
+ | |||
+ | // Darome spalvų ciklą iš žalios į mėlyną | ||
+ | // (Šiame cikle mes keičiam 100% žalią, 0% mėlyną į 0% žalią, 100% mėlyną) | ||
+ | for (blueIntensity = 0; blueIntensity <= 255; blueIntensity+=5) { | ||
+ | greenIntensity = 255-blueIntensity; | ||
+ | analogWrite(BLUE_LED_PIN, blueIntensity); | ||
+ | analogWrite(GREEN_LED_PIN, greenIntensity); | ||
+ | delay(DISPLAY_TIME); | ||
+ | } | ||
+ | |||
+ | // Darome spalvų ciklą iš mėlynos į raudoną | ||
+ | // (Šiame cikle mes keičiam 100% mėlyną, 0% raudoną į 0% mėlyną, 100% raudoną) | ||
+ | | ||
+ | for (redIntensity = 0; redIntensity <= 255; redIntensity+=5) { | ||
+ | blueIntensity = 255-redIntensity; | ||
+ | analogWrite(RED_LED_PIN, redIntensity); | ||
+ | analogWrite(BLUE_LED_PIN, blueIntensity); | ||
+ | delay(DISPLAY_TIME); | ||
+ | } | ||
+ | } | ||
+ | </code> | ||
+ | |||
+ | **Problemų sprendimas:** | ||
+ | LED'as nešviečia arba šviečia neteisingomis spalvomis: Dėl keturių LED'o kontaktų, kurie yra arti vienas kito, kartais nesunku juos sumaišyti. Pabandykite dar kartą patikrinti, ar visi kontaktai yra savo vietose. | ||
+ | |||
+ | Matome raudoną - RGB LED'o raudonas diodas gali būti ryškesnis už kitus du. Norint subalansuoti spalvas galima naudoti didesnės varžos rezistorių arba pakeisti raudonos spalvos vertę kode: | ||
+ | <code> analogWrite(RED_LED_PIN, redIntensity); </code> | ||
+ | Pakeisime į: | ||
+ | <code> analogWrite(RED_LED_PIN, redIntensity/3); </code> | ||
+ | |||
+ | **Ieškai daugiau?** | ||
+ | Daugiau idėjų rasite apsilankę [[http://www.SparkFun.com|čia]] | ||
[[projektas_nr.4|Kitas projektas. Daugiau šviesos diodų]] | [[projektas_nr.4|Kitas projektas. Daugiau šviesos diodų]] | ||
[[arduivadas_projektai|Atgal į projektus]] | [[arduivadas_projektai|Atgal į projektus]] |