Olen proovinud, et projektid, millega töötan, värvid üksteisesse tuhmuksid. Olen selle saavutanud vikerkaareefektiga, mida mõned Adafruiti näidiskoodist näevad, kuid siiski soovin, et saaksin neid värve valida ( nt tumesinine helesinine).
Mul on värvid muutumas ja tuhmumas, kuid tuhmumine lülitab kõik LED-id välja ja hakkab uue värvi heledust suurendama. Mul on vaja, et värvid seguneksid, mitte ei hajuks ega suureneks heledust.
Kas keegi suudab mind õiges suunas suunata?
#include "LPD8806.h" #include "SPI.h" #define stripSize 64int nLEDs = 160; int dataPin = 2; int clockPin = 3; // Esimene parameeter on ahelas olevate LED-ide arv. LED-ribad // on 32 LED-i meetri kohta, kuid saate riba pikendada või lõigata. Järgmised kaks // parameetrit on SPI andmed ja kella tihvtid: LPD8806 strip = LPD8806 (64, dataPin, clockPin); // Kiirema kirjutamise jaoks saate kasutada riistvara SPI-d, lihtsalt jätke välja // andmete ja kella tihvti parameetrid. Kuid see piirab kasutamist Arduino väga spetsiifiliste tihvtidega. Klassikaliste Arduinode (Uno, Duemilanove, // jne) puhul on andmed = tihvt 11, kell = tihvt 13. Arduino Mega puhul andmed = tihvt 51, // kell = tihvt 52. 32u4 Breakout Board + ja Teensy puhul andmed = tihvt B2, // kell = tihvt B1. Leonardo puhul saab seda teha AINULT ICSP-tihvtidel .//LPD8806 strip = LPD8806 (nLEDs); void setup () {// Käivitage LED-riba riba.begin (); // Värskendage riba, alustamiseks on nad kõik välja lülitatud strip.show ();} void loop () {//turnAllOn(strip.Color(30,30,30),4000); tuhmuma (0, 127, 0, 100); // punane, roheline, sinine, viivitus - tuhmuvad kõik pikslid ühevärvilisena //turnAllOn(strip.Color(30,100,30),4000); tuhmuma (50, 127, 02,100); // punane, roheline, sinine, viivitus - tuhmuvad kõik pikslid ühevärvilisena //turnAllOn(strip.Color(100,30,100),4000); tuhmuma (50, 127, 50, 100); // punane, roheline, sinine, viivitus - tuhmuvad kõik pikslid ühte värvi} void fade (uint32_t r, uint32_t g, uint32_t b, uint32_t wait) {int i, j; jaoks (j = 0; j < 384; j ++) {
for (i = 0; i < strip.numPixels (); i ++) {strip.setPixelColor (i, strip.Color ((r * j) / 1000, (g * j) / 1000, (b * j) / 1000) )); } riba.show (); } delay (wait);} void turnAllOn (uint32_t c, uint32_t wait) {int i; for (i = 0; i < strip.numPixels (); i ++) {strip.setPixelColor (i, c); // lülita kõik pikslid sisse} strip.show (); // kirjuta kõik pikslite väljaviivitus (oota); } uint32_t ratas (uint16_t WheelPos) {bait r, g, b; lüliti (WheelPos / 128) {juhtum 0: r = 127 - WheelPos% 128; // punane värv g = WheelPos% 128; // roheline kuni b = 0; // sinine väljalülitus; juhtum 1: g = 127 - WheelPos% 128; // roheline all b = WheelPos% 128; // sinine üles r = 0; // punane väljalülitus; 2. juhtum: b = 127 - WheelPos% 128; // sinine alla r = WheelPos% 128; // punane üles g = 0; // roheline väljalülitus; } return (riba.Värv (r, g, b));}