Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <Adafruit_NeoPixel.h>
- #include <LiquidCrystal.h>
- #ifdef __AVR__
- #include <avr/power.h>
- #endif>
- #define PIN 6
- #define NUMPIXELS 9
- Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
- LiquidCrystal lcd(12,11, 10, 9, 8, 7);
- int buttonStatusRed;
- int buttonStatusGrn;
- int buttonStatusBlu;
- int buttonStatusBlk;
- int onoff;
- int shadeRed;
- int shadeGreen;
- int shadeBlue;
- int red;
- int green;
- int blue;
- float bright;
- //incoming serial data
- int incoming;
- void setup() {
- //declare pinmodes
- pinMode(2, INPUT); //green button
- pinMode(3, INPUT); //red button
- pinMode(4, INPUT); //blue button
- pinMode(5, INPUT); //onoff
- pinMode(6, OUTPUT); //NOEPIX
- //intialize serial comms
- Serial.begin(9600); //comm rate
- pixels.begin(); // This initializes the NeoPixel library.
- lcd.begin(16, 2);
- lcd.print("Color Analyzer");
- lcd.setCursor(0, 1);
- lcd.print("By Douglas S.");
- delay(4000);
- lcd.clear();
- }
- void loop() {
- // put your main code here, to run repeatedly:
- buttonStatusRed=digitalRead(5);
- buttonStatusGrn=digitalRead(4);
- buttonStatusBlu=digitalRead(3);
- buttonStatusBlk=digitalRead(2);
- if(digitalRead(2)){
- onoff ++;
- }
- bright=map(analogRead(0),0,1023,0,100);
- bright= bright/100;
- lcd.print(" ");
- lcd.print(" R-");
- lcd.print("G");
- lcd.print("-B ");
- lcd.setCursor(0, 1);
- lcd.print(shadeRed);
- lcd.print(" - ");
- lcd.print(shadeGreen);
- lcd.print(" - ");
- lcd.print(shadeBlue);
- lcd.print(" ");
- //lcd.clear();
- //delay(250);
- shadeRed=map(analogRead(1),0,1023,255,0)*bright;
- shadeGreen=map(analogRead(2),0,1023,255,0)*bright;
- shadeBlue=map(analogRead(3),0,1023,255,0)*bright;
- Serial.print(shadeRed);
- Serial.print(",");
- Serial.print(shadeGreen);
- Serial.print(",");
- Serial.println(shadeBlue);
- delay(1);
- //INCOMING SERIAL DATA
- //Check if incoming is available
- if(Serial.available() > 0){
- //read if available
- incoming = Serial.read();
- // if(incoming == 150){
- // for(int i=0; i<NUMPIXELS; i++){
- // pixels.setPixelColor(i, pixels.Color(255,0,0));
- // pixels.show();
- // delay(15);
- // }
- // }
- //listen for R,G,B
- if(incoming ==150){
- for(int i=0; i<NUMPIXELS; i++){
- pixels.setPixelColor(i, pixels.Color(255,0,0));
- pixels.show();
- delay(55);
- }
- }else if(incoming ==180){
- for(int i=0; i<NUMPIXELS; i++){
- pixels.setPixelColor(i, pixels.Color(0,255,0));
- pixels.show();
- delay(55);
- }
- }else if(incoming ==190){
- for(int i=0; i<NUMPIXELS; i++){
- pixels.setPixelColor(i, pixels.Color(0,0,255));
- pixels.show();
- delay(55);
- }
- }else if(incoming == 200){
- int g=0;
- int rainr=150;
- int raing=50;
- int rainb=0;
- while(g < 100){
- for(int i=0; i<NUMPIXELS; i++){
- pixels.setPixelColor(i, pixels.Color(rainr,raing,rainb));
- pixels.show();
- delay(5);
- }
- rainr=rainr+10;
- if(rainr >= 255){
- rainr=0;
- shadeRed=rainr;
- }
- raing=raing+10;
- if(raing >= 255){
- raing=0;
- shadeGreen=raing;
- }
- rainb=rainb+10;
- if(rainb >= 255){
- rainb=0;
- shadeBlue=rainb;
- }
- g++;
- }
- }
- }
- /*
- Serial.print("Red:");
- Serial.print(buttonStatusRed);
- Serial.print(" Green:");
- Serial.print(buttonStatusGrn);
- Serial.print(" Blue:");
- Serial.print(buttonStatusBlu);
- Serial.print(" On/Off:");
- Serial.print(buttonStatusBlk);
- Serial.print(" BR:");
- Serial.print(bright);
- Serial.print(" SR:");
- Serial.print(shadeRed);
- Serial.print(" SG:");
- Serial.print(shadeGreen);
- Serial.print(" SB:");
- Serial.println(shadeBlue);
- */
- if(onoff % 2 == 0){
- shadeRed= 0;
- shadeGreen=0;
- shadeBlue=0;
- };
- if(buttonStatusRed == HIGH){
- shadeRed = 255;
- shadeGreen = 0;
- shadeBlue = 0;
- };
- if(buttonStatusGrn == HIGH){
- shadeGreen = 255;
- shadeRed = 0;
- shadeBlue= 0;
- };
- if(buttonStatusBlu == HIGH){
- shadeBlue = 255;
- shadeRed = 0;
- shadeGreen= 0;
- };
- if(buttonStatusBlu == HIGH && buttonStatusGrn == HIGH && buttonStatusRed){
- for(int i=0; i<NUMPIXELS; i++){
- pixels.setPixelColor(i, pixels.Color(red,green,blue));
- pixels.show();
- //delay(15);
- }
- red++;
- green++;
- blue++;
- /*
- if(red>=255){
- red=0;
- }
- if(blue>=255){
- blue=0;
- }
- if(green>=255){
- green=0;
- } */
- }
- for(int i=0; i<NUMPIXELS; i++){
- pixels.setPixelColor(i, pixels.Color(shadeRed,shadeGreen,shadeBlue));
- pixels.show();
- delay(1);
- }
Add Comment
Please, Sign In to add comment