Stap 10: Programmering stap 4: RGB LED
Update ***
Als u vindt dat de kleuren zien er niet goed, probeer het verwijderen van de "255" - uit de analogWrite oproepen.
Dankzij shobley voor het vinden van dit.
Meer info op http://www.stephenhobley.com/blog/2010/06/11/arduino-world-mood-light-using-twitter-and-wishield/
einde update ***
/ * De led is standaard zo ingesteld dat currentColorID worden en na verloop van tijd zal vervagen tot desiredColorID met een vertraging, fadeDelay, gemeten in ms, tussen elke stap. Geen inspanning is geleverd om schalen van de stap-grootte voor elk kanaal rgb zodat elk kan niet worden voltooid op hetzelfde moment. * / voidLED::FadeTo(intdesiredColorID) {/ / check voor geldige colorID als (desiredColorID > = NUM_COLORS || desiredColorID < 0) {terugkeer //logger.log ("Ongeldige kleur id"); } / / get een lokale kopie van de kleuren ColorcurrentColor; currentColor.r = kleuren [m_currentColorID] .r; currentColor.g = kleuren [m_currentColorID] .g; currentColor.b = kleuren [m_currentColorID] .b; ColordesiredColor; desiredColor.r = kleuren [desiredColorID] .r; desiredColor.g = kleuren [desiredColorID] .g; desiredColor.b = kleuren [desiredColorID] .b; booldone = false; terwijl (! gedaan) {/ / elk van r, g, b een stap dichter bij de desiredColor waarde als verplaatsen (currentColor.r < desiredColor.r) {currentColor.r++; } elseif (currentColor.r > desiredColor.r) {currentColor.r--; } Als (currentColor.g < desiredColor.g) {currentColor.g++; } elseif (currentColor.g > desiredColor.g) {currentColor.g--; } Als (currentColor.b < desiredColor.b) {currentColor.b++; } elseif (currentColor.b > desiredColor.b) {currentColor.b--; } / / Schrijf de nieuwe RGB-waarden aan de juiste pinnen analogWrite (m_redPin, 255 - currentColor.r); analogWrite (m_greenPin, 255 - currentColor.g); analogWrite (m_bluePin, 255 - currentColor.b); Houd bij deze kleur voor dit veel ms delay(m_fadeDelay); gedaan toen we reach desiredColor gedaan hebben = (currentColor.r == desiredColor.r & & currentColor.g == desiredColor.g & & currentColor.b == desiredColor.b); } / / terwijl (! gedaan) m_currentColorID = desiredColorID; }