RGB LED färg väljare (2 / 2 steg)

Steg 2: kod



Den nedan koden är vad jag brukade testa styrelsen. Den översta raden visar de aktuella R, G och B värdena (0-255) med en stjärna till vänster om den ström en. Den andra raden visar steg storleken för den +/--knappar. Kommandona är:

  • Ned knappen: Minska den markerade färgen (R, G eller B) av aktuella stegstorlek
  • Upp-knappen: Öka den markerade färgen (R, G eller B) av aktuella stegstorlek
  • Vänster knapp: flytta till föregående färg
  • Höger knapp: flytta till nästa färg
  • SELECT-knappen: växla stegstorlek från 1 till 5-10 till 20 till 50, sedan tillbaka till 1...

Koden använder den Adafruit LCD sköld och Neopixel biblioteken. Exempelkoden är nedan.

Du kan också lägga till en kontakt och driva en full sträng med detta synsätt.

Koden jag använde:

RGB_LCD - Använd Adafruit LCD-skärmen Ange RGB-värden på ett enda WS2812b LED / / baserat på de Adafruit Neopixel och LCD-Shield bibliotek och exempel / / December, 2013 Carl Sutter / / *** / / LCD sköld bibliotek #include < Wire.h > #include < Adafruit_MCP23017.h > #include < Adafruit_RGBLCDShield.h > / / sköld använder I2C SCL och SDA stiften. På klassiska Arduinos / / detta är Analog 4 och 5 så du inte kan använda de för analogRead() längre / / men du kan ansluta andra I2C sensorer till I2C bussen och andel / / I2C bussen.
Adafruit_RGBLCDShield lcd = Adafruit_RGBLCDShield();

Neopixel bibliotek #include < Adafruit_NeoPixel.h > #define stift 6 / / Parameter 1 = antal pixlar i remsa / / Parameter 2 = pin-kod (de flesta är giltigt) / / Parameter 3 = pixel typ flaggor, Lägg ihop efter behov: / / NEO_KHZ800 800 KHz bitstream (de flesta NeoPixel produkter w/WS2812 lysdioder) / / NEO_KHZ400 400 KHz (classic "v1" (inte v2) FLORA pixlar, WS2811 drivrutiner) / / NEO_GRB pixlar är trådbundet för GRB bitstream (de flesta NeoPixel produkter) / / NEO_RGB pixlar är trådbundet för RGB bitstream (v1 FLORA pixlar inte v2)
Adafruit_NeoPixel strip = Adafruit_NeoPixel (1, PIN, NEO_GRB + NEO_KHZ800);

Dessa #defines gör det enkelt att ställa in bakgrundsljus färg - använda om du har en RGB-sköld / / #define röd 0x1 / / #define gula 0x3 / / #define grön 0x2 / / #define kricka 0x6 / / #define blå 0x4 / / #define VIOLET 0x5 #define vit 0x7 #define PILEN 0x7E #define LARROW 0x7F #define DELAY_QUICK 40 / / kort fördröjning mellan pressar så du kan rulla snabbt, men fortfarande komma till en viss knapp tryck / värde #define DELAY_SLOW 100 / / långsammare fördröjning för knappar somär ändra lägen etc.uint8_t curCols [] = {127, 127, 127}; utbud av aktuella RGB valuesuint8_t curCol = 0; index för den aktuella färgen på - 0 = R, 1-G, 2 = Buint8_t step_size = 1; beloppet som skall flytta i varje knapp pressvoidsetup() {
LCD.BEGIN (16, 2);

Strip.BEGIN();
Strip.show(); Initiera alla pixlar till "off"

lcd.setBacklight(WHITE);

lämna den "Step Size:" etikett på displayen så det inte flimrar
lcd.setCursor(2,1);
LCD.Print ("Step Size:");

Visa start-data
Display();
}

Visa - skriver ut RGB-värden och ange LEDvoiddisplay() {
uint8_t i.

strip.setPixelColor (0, curCols [0], curCols [1], curCols[2]);
Strip.show();

lcd.setCursor(0,0);
för (jag = 0; jag < 3; i ++) {
om (curCol == jag) {
LCD.Print(Char('*'));
} annat {
LCD.Print(' ');
}

om (jag == 0) lcd.print('R');
om (jag == 1) lcd.print('G');
om (jag == 2) lcd.print('B');

om (curCols [i] < 100) lcd.print(' ');
om (curCols [i] < 10) lcd.print(' ');
LCD.Print(curCols[i]);
}

lcd.setCursor (2,1), //lcd.print ("Step Size:");
lcd.setCursor(13,1);
LCD.Print(step_size);
LCD.Print(' '); hacka till har en siffra #s ut över gamla 2 siffrigt #s
} / / print_valvoidloop() {
uint8_t knappar = lcd.readButtons();

om (knappar) {
om (knappar & BUTTON_UP) {
curCols [curCol] += step_size;
Display();
Delay(DELAY_QUICK);
}
om (knappar & BUTTON_DOWN) {
curCols [curCol]-= step_size;
Display();
Delay(DELAY_QUICK);
}
om (knappar & BUTTON_LEFT) {
om (curCol == 0) {
curCol = 2;
} annat {
curCol--;
}
Display();
Delay(DELAY_SLOW);
}
om (knappar & BUTTON_RIGHT) {
om (curCol == 2) {
curCol = 0;
} annat {
curCol ++;
}
Display();
Delay(DELAY_SLOW);
}
om (knappar & BUTTON_SELECT) {
växel (step_size) {
case1:
step_size = 5;
bryta;
case5:
step_size = 10;
bryta;
case10:
step_size = 20;
bryta;
case20:
step_size = 50;
bryta;
standard:
step_size = 1;
}
Display();
Delay(DELAY_SLOW);
}

} / / knappar! = 0
} / / slinga

Se Steg
Relaterade Ämnen

8X8X8 3D RGB LED Cube

Det har varit en lång tid kommer, men min universella RGB kub är äntligen klar!Nu kan vi köra animationer och används av både Kevin Darrah och Nick Schulze (något modifierad, men i grunden identiskt - moll timing och lager kontroll tweaks var allt so...

Accent belysning/dekorera RGB LED Ljuslister

Om du inte har hoppade på tåget RGB din miste om vad som kan vara nästa våg av belysning för alla dina behov. Den är mångsidig, böjer sig runt allt och har möjligheten för tusentals olika färger. Dekorera ditt hus med dessa remsor av LED RGB (röd grö...

IKEA RGB Led Strip 2 WiFi Hack

följande projektet beskriver hur till hacka en IKEA DIODER RGB Led Strip för att lägga till en WiFi-anslutning och tillgång till en intern webbserver för att konfigurera färger med låg budget lösningar! Hacket utnyttjar en openPicus Flyport WiFi modu...

Sparky Jr - RGB LED-Controller

vad är det?Sparky Jr är en programmerbar RGB LED mod följeslagare lyser upp aktiveringen controller för tryckknappar på gaming fightsticks.Hur fungerar det?Jo, i slutet av dagen. Tarvlig koden i huvudsak kan du anpassa ditt ljus upp mönster, knappar...

Arduino kontrollerade positionella RGB LED Christmas Tree

I detta Instructable vi ska skapa en programmerbar RGB LED-julgran och byggnad (X, Y) positioner av lamporna till Arduino så att vi kan skapa olika mönster både animerade och statiska. Jag skulle rekommendera detta till alla som har micro controller...

Använder en RGB LED att upptäcka färger

jag kommer att visa dig hur du använder en RGB LED och CD-skivor fotocell som en färg sensor för en mikro-controller. Jag kommer att illustrera metoden för att hämta en färg genom att använda Arduino, och jag kommer att visa dig en hur du kan kontrol...

En CharliePlexed RGB LED Tärning

detta Instructable kommer att visa hur man gör en färgstark tärning med hjälp av charlieplexing med RGB-lysdioder.Projektet använder 7 RGB lysdioder ordnade i form av tärningarna. Varje RGB LED har tre separata lysdioder inuti så som gör totalt 21 ly...

Carlitos' projekt: RGB LED Mood Cube

detta är först i en rad elektroniska / robot DIY projekt. Dessa projekt åtföljs av instruktions videor som hjälper dig genom de många steg som ingår i att slutföra uppgiften. För denna första iteration gör vi en RGB LED Mood kub.Glödande färgskiftand...

RGB LED Tutorial (med en Arduino) (RGBL)

Lysdioder är bra. Men med alla projekt man kommer till en punkt där blinkande inte räcker. För dessa fall RGB (röd, grön, blå) är LED svaret.Med en RGB LED du kommer att kunna producera någon färg lyser ditt hjärta önskar.På första använder en RGB LE...

10W RGB LED-ljus målning multiverktyg

Måla med ljus eller 'Ljus målning' använder ljus där en traditionell målare skulle använda färg, så i ljus målning i stället för en traditionell pensel konstnären använder en ljuskälla. bara om någon ljuskälla kan användas som ett ljus målning verkty...

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...

48 kanaler Mono / 16 kanal RGB LED-Controller

48 kanaler Mono/16 kanal RGB LED Controller av Chromation system kan användas självständigt kontroll 48 grupper/kanaler (upp till 120ma per grupp av mono-färg lysdioder) eller 16 grupper/kanaler för gemensam anod RGB-lysdioder. Man använder 3 x TLC59...

50W RGB LED Light Show

Vi var på en tag försäljning och jag såg en 6 fot spränga pumpa för $10. Det såg ut för att ha lite användning så jag tog den. Jag kom hem och fann han 5 lökar insidan slogs upp lite. Det är OK eftersom jag ville lägga till en arduino kontrollerad RG...

32 x 32 RGB LED Plasma w / STM32F4.

Det finns redan några tutorials ute visar hur man styr en 32 x 32 RGB LED-skärm.Detta projekt har några små variationer med följande funktioner:Baserat på en STM32F401RE eval styrelseProgramvara BSP genereras av STM32CubeMX (v1.4.0 används här, nyare...

Cykla en RGB LED genom färgspektrat med en Raspberry Pi 2 och Scratch

Uppdatera anteckningar Tors 25 Feb, 2016 : Jag har förbättrat Scratch programmet och omgjorda min instructable.Hej Scratch killar, med detta projekt som jag ville använda för att cykla en RGB LED genom färg spektrumet.Det finns en massa projekt gör d...

Fiber Optic RGB LED Top Hat

Detta är en remix av Instructable "min hatt, den är full av stjärnor!" av ChrisKnight.Finna den på:Sedan jag först såg detta har det varit något jag har velat ha. Slutligen är dags.Med en Pixel Controller Ion, 14 x 5 mm RGB lysdioder med WS2801...

Accelerometer Tilt kontrollerade Wireless RGB LED-lampor

detta är videon av min instructable på Accelerometer Tilt kontrollerade Wireless RGB LED-lampor. Det visar sändaren lutas i olika riktningar och det motsvarande ljuset i lyktan.Instructable...

Upcycled hängande RGB LED sol trädgård ljus

Vad göra med alla billiga gamla sol trädgård ljus du ackumulerats under åren? Den fungerar inte längre, batterierna fick våta och exploderade, allt är i en hög klar för papperskorgen. Tja, gillade min fru RGB LED jordglober på en pinne, så jag beslöt...

Hur man styr en RGB LED Strip - Arduino handledning

I denna tutorial använder vi en remsa med 8 RGB lysdioder med Arduino uno styrelsen. Vi kommer använda den Adafruit NeoPixel bibliotek för att ändra färg på varje ledde.Låt oss komma igång!Steg 1: Vad du behöverFör detta projekt behöver du:Arduino un...