RGB LED Tutorial (med en Arduino) (RGBL) (5 / 6 steg)

Steg 5: Analog Arduino kod



Nu till roligt grejer, kontrollera en RGB LED med Arduinos PWM (pulse bredd modulering) stiften. Här kan du skapa nästan vilken färg ditt hjärta önskar, och bättre än så tona mellan färger.

Att göra detta varje LED kräver 3 PWM stift. Arduino har endast 6 PWM stift kan endast två RGB lysdioder kontrolleras detta sätt på en gång.

När det gäller koden kommer vi använda funktionen analogWrite (pin, värde), för mer information besök koden hänvisningen på Arduino.cc )

Att få spela med den din lysdioder på ett analogt sätt helt enkelt...

  • Kopiera och klistra in koden nedan i en tom Arduino skiss
  • Kompilera och ladda upp skissen till din Arduino ombord
  • Exempel en startar genom att vrida LED magenta (du kan leka med färg att ändra till andra förinställningar, eller definiera egna)
  • Nästa kommentera ut raden exempel 1 (lägga till / /)
  • O-kommentera exempel 2 (ta bort den / /)
  • Kompilera och ladda upp exemplet till din styrelse.
  • Nu titta på din LED visar en vitaktig grön färg, ändra siffrorna i matrisen tempColor [] för att ändra visas färgen
  • Kommentera bort exempel 2 (lägga till / /)
  • Avkommentera exempel 3 (ta bort den / /)
  • Kompilera och ladda upp programmet till din styrelse
  • Titta på den LED bleknar från rött till grönt till blått. Att se hur detta är accompished titt till funktionen fadeToColor()
  • Nästa få kodning och göra din egen kul färg ändra program

(En liten video av testprogrammet)

Tillägg 1: _RGBL_AnalogTest

---bof---RGBL-Analog ingressen / / RGB LED pinsint ledAnalogOne [] = {3, 5, 6}; de tre stiften på de första analoga LED 3 = redPin, 5 = greenPin, 6 = bluePin //These stift måste vara PWMint ledAnalogTwo [] = {9, 10, 11}; tre stiften i de andra analoga LED 9 = redPin, 10 = greenPin, 11 = bluePin //These stift måste vara PWM / / definierade färger (olika RGB (röd, grön, blå) värden för färger//(to add your own ie. fuscia experiment and then add to the list) const byte [röd] = {255, 0, 0}, const byte [ORANGE] = {83, 4, 0}, const byte gul [] = {255, 255, 0}, const byte grön [] = {0 255, 0}; CONST byte blå [] = {0, 0, 255}; CONST byte INDIGO [] = {4, 0, 19}; CONST byte VIOLETT [] = {23, 0, 22}; CONST byte CYAN [] = {0, 255, 255}; CONST byte MAGENTA [] = {255, 0, 255}; CONST byte vit [] = {255, 255, 255}; CONST byte svart [] = {0, 0, 0}; CONST byte rosa [] = {158, 4, 79}; ---eof---RGBL-Analog Preamblevoid setup() {för (int jag = 0; jag < 3; i ++) {pinMode (ledAnalogOne [i], produktionen); //Set tre LED stift som utgångar pinMode (ledAnalogTwo [i], produktionen); //Set tre LED stift som resultat} setColor (ledAnalogOne, svart); //Turn off ledde 1 setColor (ledAnalogTwo, svart); //Turn off ledde 2} void loop() {/ * exempel 1 - definierade färger ställer till en känd färg (du kan använda någon av de ovan definierade färgerna) * / setColor (ledAnalogOne MAGENTA); / * Exempel 2 - varje färguppsättning LED till någon färg du gillar * / //byte tempColor [] = {12,34,12}. RGB (röd, blå gren) värdet för en färg att Visa //setColor (ledAnalogOne, tempColor); / * Exempel 3 - Fading blekna LED mellan två färger (detta kommer att gå från rött till grönt till blått sedan tillbaka till röd) * / //fadeToColor (ledAnalogOne, röd, grön, 10); fadeToColor tar 4 parametrar //ledAnalogOne - en matris med 3 värden definierar de röda, gröna och blå stiften på LED //RED - detta är Startfärg //GREEN - detta är slutet färg //10 - fördröjning (i millisekunder mellan uppdateringar) (bestämmer hastigheten hos fade) //fadeToColor (ledAnalogOne, grön, blå, 10); Bleknar från grönt till blått //fadeToColor (ledAnalogOne, blå, röd, 10); Bleknar från blått till rött} / * anger färgen på LED RGB värde ledde - (int matris med tre värden definierar lysdioder stiften (ledde [0] = redPin, ledde [1] = greenPin, ledde [2] = bluePin)) färg - (byte-array av tre värden defing en RGB-färg att Visa (färg [0] = nya röda värde, färg [1] = nya gröna värde, färg [2] = nya röda värde * / annullera setColor (int * ledde byte * färg) {för (int jag = 0; jag < 3; i ++) {//iterate genom var och en av tre stift (röd grön blå) analogWrite (ledde [i], 255 - color[i]); //set analog utgång värdet av varje stift till indatavärdet (dvs led [0] (röd pin) till 255-färg [0] (röd ingång färg) //we använda 255 - värdet eftersom våra RGB LED är gemensam anod , innebär en färg är full på när vi utgång analogWrite (pin, 0) //and bort när vi utgång analogWrite (pin, 255). {}} / * En version av setColor som tar en fördefinierad färg (nödvändigt att tillåta const int fördefinierade färger * / annullera setColor (int * ledde, const byte * färg) {byte tempByte [] = {färg [0], [1], färg [2]}; setColor (led, tempByte);} / * Bleknar LED från en Startfärg till en Slutfärg på fadeSpeed ledde - (int matris med tre värden definierar lysdioder stiften (ledde [0] = redPin, ledde [1] = greenPin, ledde [2] = bluePin)) startCcolor - (bitmatris tre värden defing start RGB-färgen (startColor [0] = start röda värde, startColor [1] = start grön värde, startColor [2] = start röd värde endCcolor - (byte-array av tre värden defing färdiga RGB-färgen (endColor [0] = slutet röd värde , endColor [1] = slut för den gröna värde, endColor [2] = slutet röd värde fadeSpeed - detta är fördröjningen i millisekunder mellan stegen, definierar hastigheten på fade * / void fadeToColor (int * ledde byte * startColor, byte * endColor, int fadeSpeed) {int changeRed = endColor [0] - startColor [0]; //the skillnaden i två färger för den röda kanalen int changeGreen = endColor [1] - startColor [1]; //the skillnaden i två färger för den gröna kanalen int changeBlue = endColor [2] - startColor [2]. //the skillnaden i de två färgerna för de blå kanalen int steg = max(abs(changeRed),max(abs(changeGreen), abs(changeBlue))); ändra antalet förändring steg högsta kanal (int jag = 0; jag < steg; i ++) {//iterate för kanalen med maximalt ändra byte newRed = startColor [0] + (jag * changeRed / steg); //the newRed intensitet beroende på start intensiteten och ändringen ovan byte newGreen = startColor [1] + (jag * changeGreen / steg); //the newGreen intensitet byte newBlue = startColor [2] + (jag * changeBlue / steg); //the newBlue intensitet byte newColor [] = {newRed newGreen, newBlue}; Definiera en RGB färg matris för den nya färgen setColor (led, newColor); Ange LED till det beräknade värdet delay(fadeSpeed); Dröjsmål fadeSpeed millisekunder innan nästa färg} setColor (led, endColor); LAMPAN bör vara på endColor men in på endColor för att undvika avrundningsfel} / * en version av fadeToColor som tar fördefinierade färger (nödvändigt att tillåta const int fördefinierade färger * / void fadeToColor (int * ledde const byte * startColor, const byte * endColor, int fadeSpeed) {byte tempByte1 [] = {startColor [0], startColor [1], startColor [2]}; byte tempByte2 [] = {endColor [0], endColor [1], endColor [2]}; fadeToColor (led, tempByte1 tempByte2, fadeSpeed);}

Se Steg
Relaterade Ämnen

Justerbar RGB LED kontrolleras med en Arduino

detta projekt använder en Arduino Duo R3 och 3 knappar för att styra en RGB LED.1. knappen väljer vilken färg RGB LED du vill justera. De andra 2 knapparna kan du justera ljusstyrkan på den färgen antingen uppåt eller nedåt.Det finns 3 gröna lysdiode...

RGB LED Snowboard med Arduino Uno R3

Detta instructable förklarar hur man styr en RGB LED strip med en Arduino. I det här fallet monteras LED strip en snowboard. RGB (röd grön blå) lysdioder har förmågan att visa en mängd olika färger baserat på slå på och av röd, grön och blå lysdioder...

40 x RGB LED-Controller med 8-bitars PWM och valbara mönster

Uppdatering: Den här domänkontrollanten har ersatts med de vida överlägsen 48 kanaler Mono / 16 kanal RGB LED-Controller, med USB-anslutning och ColorMotion kompatibilitet. Besök http://www.chromationsystems.com/48channled.html för information, länka...

Köra RGB LED remsor av en Arduino

Julen kommer och kanske du undrar hur man gör det färgglada och ljusa med en Arduino och en RGB LED strip. Åtminstone, var det precis vad jag gjorde för ett år sedan och kunde inte hitta tydliga och enkla instruktioner någonstans. Med detta instructa...

RGB-Led klocka med Bluetooth Smart

Detta instructable visar hur du använder en Cypress-BLE-Devkit för att bygga en RGB-LED-klocka.Du behöver endast mycket få saker:RGB-LED-Strip med 30 eller 60 WS2812b-lysdioder.en grid-stil dator ombordnågra pins pin-header och lite tråd.en 5V kraftk...

Multifunktions RGB LED-controller med PIC12F675

multifunktions RGB LED-controller med låg kostnad PIC12F675 mikrokontroller.funktioner:1, 4 + 1 läge drift en enda potentiometer och enda knappen Växla används för flera drift2, EEPROM-minne alternativ för val av läge:-den sista läget kommer att spar...

Hur man gör en enda LED blinkar med en Arduino Uno ombord

Idag, kommer vi att illustrera hur man gör en enda LED blinkar med en Arduino Uno ombord. Genom att följa varje steg, kommer du uppnå detta mål.Du behöver följande:En Arduino ombordBröd styrelseUSB-anslutningskabelEN LED3 jumper trådarArduino program...

Arduino drivs RGB LED klocka med rullning

detta är en 8 x 8 RGB LED modul, som drivs av 4 x 74HC595N SKIFT register kontrolleras av en Boarduino (Arduino klon som kan användas på en skärbräda). Tid uppgifterna är från en DS1307 Real Time Clock IC.Displayen är mata sedan datum och tid och cyk...

RGB LED kontrolleras med arduino

HejDetta är lite instructable att visa hur man gör RGB (röd grön blå) Led kontrolleras med arduino. Den innehåller scheman för kretsen och ett litet C# program som låter dig ändra färgen på lysdioden.Steg 1: Gör kretsen Du behöver:-Arduino: Jag använ...

RGB LED Driver med IC 74c 14: nr Arduino!

Detta enkla projekt driver en RGB LED. Flera färger kan produceras slumpmässigt och ser mer fantastiskt när ett sugrör som en diffusor. Bara använder 3 Schmitt Trigger oscillatorer + 3 upp ner fader kretsar. Se videon för kopplingsschema och monterin...

64 pixel RGB LED-skärm - en Arduino klon

denna display är baserad på en 8 x 8 RGB LED-matris. För att testa var den ansluten till en standard Arduino ombord (Diecimila) med 4 SKIFT register. Efter att få det att fungera permatized jag det på en fabbed PCB. De SKIFT register är 8-bitars wide...

Styra en RGB LED-matris med Android och IOIO

Produktversion av detta projekt finns på http://ledpixelart.com ***En Android kontrollerade interaktiva mirror. Kör olika Android apps, visar interaktiva spegeln bilder, löpande text, enkla spel och video som strömmas från en Android-enhet via Blueto...

Enkla RGB LED Tutorial(Digital Colour Mixer and Controlling using Potentiometer)

en enkel instruktion för att Visa funktionerna i en gemensam anod RGB LED och generera en 7 färgpalett genom att blanda digitala ingångar en Potentiometer används i samma krets för att kontrollera visas färgerna med en kod för olika arduino att Visa...

Reverse Engineering: RGB LED-lampa med IR fjärrkontroll

vi köpte 20 av dessa RGB LED-lampor för en fest på jobbet, men jag var lite besviken med funktionerna färg bleknar de. Så jag bestämde mig att ta en apart, reverse engineer IR-protokollet, och se om det hade fler funktioner än de som är tillgängliga...

Grafiska 8 kanals RGB LED paneler med DMX kontroll

dessa LED paneler var utformade för att dekorera en scen för en musikfestival, de använder en 24 kanal hög nuvarande USB LED-Controller, en anpassad DMX-512 till seriell Adapter, och 4-5 meter av 12 v RGB LED Strip. Vissa 44 "x 30" trä paneler v...

$9 bygga en 4 x 4 x 4 RGB LED Cube med Animation Creator

RGB LED Cube är awesome, men det har många ledde ben för att konstruera och pris är hög, så här är det billigaste del vi kan göra med 64 RGB LED, du kan ha alla delar DIY av dig själv, eftersom vi delar den schematiska och mönsterkortslayout.gå http:...

RGB Led lampa med IR-kontroll

skapa en underbar lampa som kan ändra färg med en RGB Led strip och en styrenhet.Lampan kommer från IKEA och kostar 15 Euro, jag helt enkelt bort lampan innehavaren från detoch mata kabeln från registeransvarige genom hålet på botten av "vasen"....

RGB LED följetong kontroll Arduino

Detta instructable visar dig hur man styr en RGB ledde med seriell monitor.Att skicka en färg värde till arduino:Öppna först - seriell bildskärmen efter uppladdning koden.andra - Välj 'NEWLINE' i det nedre högra hörnet vänster till överföringshastigh...

Ljusreglering en LED-lampa med en Arduino

Så jag har varit nöjd med dessa billig 12V LED-lampor från Cree tillgänglig på amazon.com. På 9 Watt är de lika ljusstark som en 35 watt halogen, Billigt, och relativt bra färg. De är också lätta att ta isär och hacka!Här är en lätt hacka som låter d...