RGB LED Tutorial (met behulp van een Arduino) (RGBL) (5 / 6 stap)

Stap 5: Analoge Arduino Code


Nu op de leuke spullen, controle op een RGB LED met behulp van de pinnen Arduinos PWM (puls breedte modulatie). Zo kunt u bijna elke kleur uw hartje begeert, en beter dan die tussen kleuren vervagen.

Vereist om te doen deze elke LED 3 PWM pinnen. Zoals de Arduino slechts 6 PWM pinnen heeft kan slechts twee RGB LEDs kan deze manier tegelijk worden gecontroleerd.

In termen van de code zullen we gebruikt u de functie analogWrite (pin, waarde) voor meer informatie bezoek de referentie code op Arduino.cc )

Aan het spelen krijgen met de uw LEDs op analoge wijze gewoon...

  • Kopieer en plak de onderstaande code in een lege schets van de Arduino
  • Compileren en uploaden van de schets aan de Arduino board
  • In het volgende voorbeeld zal men beginnen door te draaien aan de LED magenta (u kunt dan spelen met de kleur te veranderen naar andere presets of definiëren van uw eigen)
  • Volgende commentaar uit de voorbeeld 1 lijn (toevoegen / /)
  • Un-Comment voorbeeld 2 (verwijderen de / /)
  • Compileren en uploaden van het voorbeeld aan uw Raad van bestuur.
  • Nu kijken naar uw LED blijkt een witachtige groene kleur, het wijzigen van de getallen in de matrix tempColor [] om de weergegeven kleur veranderen
  • Commentaar uit voorbeeld 2 (toevoegen / /)
  • Voorbeeld 3 uncomment (verwijderen de / /)
  • Compileren en uploaden van het programma naar je board
  • Kijk als de LED verdwijnt van rood naar groen naar blauw. Om te zien hoe dit accompished kijken naar de fadeToColor()-functie
  • Vervolgens krijgen codering en maken van uw eigen plezier kleur veranderende programma's

(Een kleine video van het testprogramma)

Aanhangsel 1: _RGBL_AnalogTest

---bof---RGBL-analoge preambule / / RGB LED pinsint ledAnalogOne [] {3, 5, 6} =; de drie pinnen van de eerste analoge LED 3 = redPin, 5 greenPin, 6 = bluePin = //These pinnen moet [PWMint ledAnalogTwo] = {9, 10, 11}; de drie pinnen van de tweede analoge LED 9 = redPin, 10 = greenPin, 11 = bluePin //These pinnen moet PWM / / gedefinieerd kleuren (verschillende RGB (rood, groen en blauw)-waarden voor kleuren//(to add your own ie. fuscia experiment and then add to the list) const byte rood [] = {255, 0, 0}; const byte oranje [] = {83, 4, 0}; const byte YELLOW [] = {255, 255, 0}; const byte [] groene = {0 255, 0}; Const byte BLUE [] = {0, 0, 255}; Const byte INDIGO [] = {0, 4, 19}; Const byte VIOLET [] = {0, 23, 22}; Const byte cyaan [] = {0, 255, 255}; Const byte MAGENTA [] = {0, 255, 255}; Const byte WHITE [] = {255, 255, 255}; Const byte BLACK [] = {0, 0, 0}; Const byte PINK [] = {158, 4, 79}; ---eof---RGBL-analoge Preamblevoid Setup {voor (int ik = 0; ik < 3; i ++) {pinMode (ledAnalogOne [i], OUTPUT); //Set de drie LED pins zoals uitgangen pinMode (ledAnalogTwo [i], OUTPUT); //Set de drie LED pinnen als uitgang} setColor (ledAnalogOne, zwart) //Turn uit onder leiding van 1 setColor (ledAnalogTwo, BLACK); //Turn uit onder leiding van 2} void loop {/ * voorbeeld 1 - gedefinieerd kleuren ingesteld op een bekende kleur (u kunt een van de hierboven gedefinieerde kleuren) * / setColor (ledAnalogOne MAGENTA); / * Voorbeeld 2 - elke kleur ingesteld de LED naar een kleur die u als * / [//byte tempColor] = {12,34,12}; de RGB (rood, gren blauw)-waarde voor een kleur weer te geven van //setColor (ledAnalogOne, tempColor); / * Voorbeeld 3 - Fading vervagen de LED tussen twee kleuren (dit zal gaan van rood naar groen naar blauw vervolgens terug naar rood) * / //fadeToColor (ledAnalogOne, rood, groen, 10); fadeToColor neemt 4 parameters //ledAnalogOne - een matrix met 3 waarden definiëren de rode, groene en blauwe pinnen van de LED-//RED - dit is de start kleur //GREEN - dit is het einde kleur //10 - de vertraging (in milliseconden tussen updates) (bepaalt de snelheid van het vervagen) //fadeToColor (ledAnalogOne, groen, blauw, 10); Vervaagt van groen tot blauw //fadeToColor (ledAnalogOne, blauw, rood, 10); Verdwijnt van blauw naar rood} / * de kleur van de LED op een RGB-waarde led - Sets (int matrix met drie waarden definiëren de LEDs pinnen (leidde [0] = redPin, leidde [1] = greenPin, leidde [2] = bluePin)) kleur - (byte-matrix van drie waarden defing een RGB-kleur weer te geven (kleur [0] = nieuwe waarde voor rood, kleur [1] = nieuwe groenwaarde, kleur [2] = nieuwe rode waarde * / void setColor (int * geleid byte * kleur) {voor (int ik = 0; ik < 3; i ++) {//iterate door elk van de drie pinnen (rood groen blauw)-analogWrite (geleid [i], 255 - color[i]); //set de waarde van de analoge uitgang van elke pin aan de invoerwaarde (dwz led [0] (rode pin) tot 255-kleur [0] (input rood) //we gebruiken, 255 - de waarde omdat onze RGB LED gemeenschappelijk anode is , dit betekent dat een kleur is vol op wanneer we analogWrite (pin, 0) uitgang //and af wanneer we uitgang analogWrite (pin, 255)
. }} / * Een versie van setColor, waarmee een vooraf gedefinieerde kleur (nodig zodat const int vooraf gedefinieerde kleuren * / void setColor (int * geleid, const byte * kleur) {byte tempByte [] = {kleur [0], kleur [1], kleur [2]}; setColor (led, tempByte);} / * Verdwijnt de LED van een kleur aan een eindkleur op fadeSpeed led - (int matrix met drie waarden definiëren de LEDs pinnen (leidde [0] = redPin, leidde [1] = greenPin, leidde [2] = bluePin)) startCcolor - (byte-matrix van drie waarden defing de start RGB-kleur (startColor [0] = start waarde voor rood, startColor [1] = start groene waarde, startColor [2] = start waarde voor rood endCcolor - (byte-matrix van drie waarden defing de afgewerkte RGB-kleur (endColor [0] = einde waarde voor rood , endColor [1] = einde groenwaarde, endColor [2] = einde waarde voor rood fadeSpeed - dit is de vertraging in milliseconden tussen stappen, bepaalt de snelheid van de fade * / void fadeToColor (int * leidde byte * startColor, byte * endColor, int fadeSpeed) {int changeRed = endColor [0] - startColor [0]; //the verschil in de twee kleuren voor de rode kanaal int changeGreen = endColor [1] - startColor [1]; //the verschil in de twee kleuren voor de groene kanaal int changeBlue = endColor [2] - startColor [2]; //the verschil in de twee kleuren voor het blauwe kanaal int stappen = max(abs(changeRed),max(abs(changeGreen), abs(changeBlue))); het aantal stappen wijzigen de maximale verandering aanbrengen voor (int ik = 0; ik < stappen; i ++) {//iterate voor het kanaal met de maximum wijzigen byte newRed startColor [0] = + (ik * changeRed / stappen); //the newRed intensiteit afhankelijk van de intensiteit van de start en de wijziging bepaald boven byte newGreen = startColor [1] + (ik * changeGreen / stappen); //the newGreen intensiteit byte newBlue startColor [2] = + (ik * changeBlue / stappen); //the newBlue intensiteit byte [newColor] = {newRed newGreen, newBlue}; Definiëren van een RGB-kleur matrix voor de nieuwe kleur setColor (led, newColor); Stel de LED op de berekende waarde delay(fadeSpeed); Vertraging fadeSpeed milliseconden voordat u naar de volgende kleur op} setColor (led, endColor); De LED moet worden op de endColor maar endColor instellen om te voorkomen dat afrondingsfouten} / * een versie van fadeToColor waarmee vooraf gedefinieerde kleuren (nodig zodat const int vooraf gedefinieerde kleuren * / void fadeToColor (int * leidde 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);}

Gerelateerde Artikelen

Verstelbare RGB LED instelbaar met behulp van een Arduino

Verstelbare RGB LED instelbaar met behulp van een Arduino

dit project maakt gebruik van een Arduino Duo R3 en 3 drukknoppen waarmee een RGB LED.De 1ste knop selecteert welke kleur van de RGB LED die u wilt aanpassen. De andere 2 knoppen kunt u de helderheid van die kleur omhoog of omlaag.Er zijn 3 groene LE
Hoe maak je een enkele LED knipperen met behulp van een Arduino Uno Board

Hoe maak je een enkele LED knipperen met behulp van een Arduino Uno Board

Vandaag, we zullen worden ter illustratie van hoe maak je een enkele LED knipperen met behulp van een Arduino Uno-board. Door elke stap te volgen, zal je dit doel bereiken.U zal het volgende nodig:Een Arduino BoardBrood bordUSB-connectorkabelEEN LED3
LED licht met behulp van een Arduino

LED licht met behulp van een Arduino

Een Arduino is een open-source van de computerhardware, open-source software en microcontroller-gebaseerde kits voor het bouwen van digitale apparaten en interactieve objecten die kunnen voelen en aansturen van fysieke apparaten. Er zijn verschillend
LED controle met behulp van de Arduino Bluetooth en Android. (Deel 1)

LED controle met behulp van de Arduino Bluetooth en Android. (Deel 1)

Dit instructable is een eenvoudige tutorial uitleggen hoe de controle van één LED met Android's Bluetooth.U moet:Arduino UNOWeerstanden 300Ω (3 x)Weerstand 150ΩLEDJumpers;Bluetooth-Module (HC-06/andere);Android telefoon;SPP Bluetooth Apk (unWired Lit
Elektromagnetisch veld Detector met behulp van een Arduino

Elektromagnetisch veld Detector met behulp van een Arduino

Ooit elektronisch apparaat straalt een bepaalde hoeveelheid elektromagnetische velden en we kunnen deze straling gebruiken om te leren een paar dingen over het circuit.In hedendaagse instructable ga ik u tonen hoe te bouwen van je eigen elektromagnet
Gitaar Tuner voor blinden (met behulp van een Arduino)

Gitaar Tuner voor blinden (met behulp van een Arduino)

het wijzigen van een gitaar tuner zodat het kan worden gebruikt door een blinde persoonDeze build maakt gebruik van een Arduino Pro mini microcontroller, (alle code wordt verstrekt).Dit project werd uitgevoerd voor het goede doel Remap, waarmee op ma
Indringende en een PCB met behulp van een Arduino-Based CNC frezen

Indringende en een PCB met behulp van een Arduino-Based CNC frezen

Tot onlangs PCB sonderen met behulp van een Arduino was gebaseerde CNC machine maar een loutere droom. Dankzij de mensen van Chilipeppr.com we nu hebben gebaseerde een bankje van de web-gebaseerde tool voor al onze Arduino CNC producten. Het beste de
Met behulp van een Arduino te laden van een DS lite

Met behulp van een Arduino te laden van een DS lite

Dit instructable is voor het opladen van een ds lite met behulp van een Arduino en twee draden. Dit is ook mijn eerste instructable, zodat het wellicht niet zo goed als mogelijk. :)BERICHT: Ik ben niet verantwoordelijk voor eventuele schade aan je ds
RFIDuino - met behulp van een Arduino & RFID-lezer te maken van een puzzel GeoCache

RFIDuino - met behulp van een Arduino & RFID-lezer te maken van een puzzel GeoCache

ik geniet van zowel Geocaching en elektronica en heb een paar van elektronische puzzel caches met behulp van een Arduino.Mijn nieuwste creatie (met de hulp van een collega cacher voor de code) is met behulp van een Arduino en RFID lezer te maken van
Maak een Web aangesloten Robot (voor ongeveer $500) (met behulp van een Arduino en Netbook)

Maak een Web aangesloten Robot (voor ongeveer $500) (met behulp van een Arduino en Netbook)

dit Instructable zal u tonen hoe te bouwen van uw eigen Web aangesloten Robot (met behulp van een Arduino micro-controller en de Asus eee pc).Waarom zou u een Web aangesloten Robot willen? Om mee te spelen natuurlijk. Rijd uw robot van hele kamer of
Grondbeginselen van het omzetten van uw externe controle voertuig in een autonoom systeem (Drone) met behulp van een Arduino

Grondbeginselen van het omzetten van uw externe controle voertuig in een autonoom systeem (Drone) met behulp van een Arduino

ik begon dit project met als doel goedkoop draaien mijn RC helikopter in iets van een UAV of althans te passen sommige sensoren aan het verminderen van aanvaringen en andere "mis haps."Nu helaas aan het begin van het project misrekend ik mijn kl
Web Driver IO Tutorial met behulp van een Live website en voorbeelden werken

Web Driver IO Tutorial met behulp van een Live website en voorbeelden werken

Web Driver IO Tutorial met behulp van een Live website en voorbeelden werkenLaatste Update: 07/26/2015(Sortie weerom vaak als ik deze instructables met meer details en voorbeelden update)AchtergrondIk had onlangs een interessante uitdaging voor mij.
Met behulp van een Arduino en Python plot/opslaan gegevens

Met behulp van een Arduino en Python plot/opslaan gegevens

een snelle en gemakkelijke manier om te zien (en sla) gegevens genomen met behulp van een Arduino op uw computer.(Opmerking: niet de meest robuuste methode, maar het werkt goed genoeg)Materialen:-Arduino (im ' using een Uno)-Computer (ik heb een Dell
Motie gecontroleerde RGB Led pak met behulp van Xbox 360 Kinect, Max MSP en Arduino deel 1

Motie gecontroleerde RGB Led pak met behulp van Xbox 360 Kinect, Max MSP en Arduino deel 1

Ik wilde voor de afgelopen paar maanden die ik aan een project kinect gewerkt heb gemaakt van een led outfit dat gereageerd op de bewegingen van de drager. Ik heb tot nu toe alleen de armen gedaan, en er zijn enkele problemen die moeten worden uitgew