Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <Wire.h>
- #include <Rainbowduino.h>
- char bx1 = 0;
- char bx2 = 0;
- char bx3 = 0;
- char bx4 = 0;
- char bx5 = 0;
- char bx6 = 0;
- int rx1 = 0; //throttle
- int rx2 = 0; //aileron
- int rx3 = 0; //elevation
- int rx4 = 0; //rudder
- int rx5 = 0; //AUX
- int rx6 = 0; //Trainer
- unsigned char RED[64] = {
- 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,238,221,204,188,171,154,137,119,102,85,
- 68,51,34,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17,35,52};
- unsigned char GREEN[64] = {
- 0,17,34,51,68,85,102,119,136,153,170,187,204,221,238,255,255,255,255,255,255,255,255,255,255,255,255,
- 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,238,221,204,188,170,154,136,120,102,86,68,52,34,18,0,0,0,0};
- unsigned char BLUE[64] = {
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,34,52,68,86,102,120,136,154,170,188,
- 204,221,238,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255};
- unsigned char plasma[8][8];
- void setup()
- {
- Rb.init();
- Wire.begin(2); //Join I2C bus with address #2
- noInterrupts();
- Wire.onReceive(expansionReceive); //Register event
- interrupts();
- Serial.begin(38400);
- for(unsigned char x = 0; x < 8; x++)
- {
- for(unsigned char y = 0; y < 8; y++)
- {
- int color = int(32.0 + (32.0 * sin(x / 4.0)) + 32.0 + (32.0 * sin(y / 4.0))) / 2;
- plasma[x][y] = color;
- }
- }
- }
- unsigned char x,y,z,colorshift=0;
- void loop()
- {
- {
- Serial.print(rx1);
- Serial.print("\t");
- Serial.print(rx2);
- Serial.print("\t");
- Serial.print(rx3);
- Serial.print("\t");
- Serial.print(rx4);
- Serial.print("\t");
- Serial.print(rx5);
- Serial.print("\t");
- Serial.print(rx6);
- Serial.println("\t");
- }
- //Alternate Command -
- if (rx2 > 150){
- if (rx6 > 150){
- for(z=0; z<64 ;z++)
- {
- for(x=0;x<8;x++)
- {
- for(y=0;y<8;y++)
- {
- //Paint random colors
- //Rb.setPixelZXY(z,x,y,RED[i],GREEN[i],BLUE[i]); //uses R, G and B color bytes
- Rb.setPixelXY(x,y,RED[z],GREEN[z],BLUE[z]); //uses R, G and B color bytes
- }
- }
- if (rx6 <= 150){
- break;
- delay(rx1);
- }
- for(z=63; z > 0 ;z--)
- {
- for(x=0;x<8;x++)
- {
- for(y=0;y<8;y++)
- {
- //Paint random colors
- //Rb.setPixelZXY(z,x,y,RED[i],GREEN[i],BLUE[i]); //uses R, G and B color bytes
- Rb.setPixelXY(x,y,RED[z],GREEN[z],BLUE[z]); //uses R, G and B color bytes
- }
- }
- if (rx6 <= 150){
- break;
- delay(rx1);
- }
- }
- }
- }
- else if(rx6 < 150){
- Rb.blankDisplay();
- }
- }
- //Standard Command - Solid White with Brightness Control
- else /*if(rx2 < 150)*/{
- if (rx6 > 150){
- if (rx1 > 220){
- for(x=0;x<8;x++)
- {
- for(y=0;y<8;y++)
- {
- Rb.setPixelXY(x,y,0x88FFBB);
- }
- }
- }
- else if (rx1 > 190){
- for(x=0;x<8;x++)
- {
- for(y=0;y<8;y++)
- {
- Rb.setPixelXY(x,y,0x66DD99);
- }
- }
- }
- else if (rx1 > 160){
- for(x=0;x<8;x++)
- {
- for(y=0;y<8;y++)
- {
- Rb.setPixelXY(x,y,0x44AA77);
- }
- }
- }
- else if (rx1 > 130){
- for(x=0;x<8;x++)
- {
- for(y=0;y<8;y++)
- {
- Rb.setPixelXY(x,y,0x227755);
- }
- }
- }
- else if (rx1 > 100){
- for(x=0;x<8;x++)
- {
- for(y=0;y<8;y++)
- {
- Rb.setPixelXY(x,y,0x115533);
- }
- }
- }
- else if (rx1 > 70){
- for(x=0;x<8;x++)
- {
- for(y=0;y<8;y++)
- {
- Rb.setPixelXY(x,y,0x053311);
- }
- }
- }
- else if (rx1 > 40){
- for(x=0;x<8;x++)
- {
- for(y=0;y<8;y++)
- {
- Rb.setPixelXY(x,y,0x020503);
- }
- }
- }
- else if (40 > rx1){
- for(x=0;x<8;x++)
- {
- for(y=0;y<8;y++)
- {
- Rb.setPixelXY(x,y,0x010301);
- }
- }
- }
- }
- else{
- Rb.blankDisplay();
- }
- }
- //Twinkling Pastels
- {
- if (rx5 > 150){
- for(x=0;x<8;x++)
- {
- for(y=0;y<8;y++)
- {
- Rb.setPixelXY(x,y,random(0xFF),random(0xFF),random(0xFF)); //uses R, G and B bytes
- }
- }
- delay(rx1 + 62);
- }
- }
- //Diagonal Color Fade
- {
- if (rx4 > 150){
- for(x=0;x<8;x++)
- {
- for(y=0;y<8;y++)
- {
- Rb.setPixelXY(x,y,(RED[plasma[x][y] + colorshift]) % 256,(GREEN[plasma[x][y] + colorshift]) % 256,(BLUE[plasma[x][y] + colorshift]) % 256); //uses R, G and B color bytes
- }
- }
- delay(rx1);
- colorshift= colorshift + 1;
- }
- }
- //Back Lines, purple and yella
- {
- while (rx3 > 150){
- Rb.blankDisplay();
- Rb.setPixelXY(0,1,0xBCFF00);
- Rb.setPixelXY(1,1,0xBCFF00);
- Rb.setPixelXY(2,1,0xBCFF00);
- Rb.setPixelXY(3,1,0xBCFF00);
- Rb.setPixelXY(4,6,0x6600FF);
- Rb.setPixelXY(5,6,0x6600FF);
- Rb.setPixelXY(6,6,0x6600FF);
- Rb.setPixelXY(7,6,0x6600FF);
- delay(rx1*2);
- Rb.blankDisplay();
- if (rx3 <= 150){
- break;
- }
- Rb.setPixelXY(0,2,0xBCFF00);
- Rb.setPixelXY(1,2,0xBCFF00);
- Rb.setPixelXY(2,2,0xBCFF00);
- Rb.setPixelXY(3,2,0xBCFF00);
- Rb.setPixelXY(4,5,0x6600FF);
- Rb.setPixelXY(5,5,0x6600FF);
- Rb.setPixelXY(6,5,0x6600FF);
- Rb.setPixelXY(7,5,0x6600FF);
- delay(rx1*2);
- Rb.blankDisplay();
- if (rx3 <= 150){
- break;
- }
- Rb.setPixelXY(0,3,0xBCFF00);
- Rb.setPixelXY(1,3,0xBCFF00);
- Rb.setPixelXY(2,3,0xBCFF00);
- Rb.setPixelXY(3,3,0xBCFF00);
- Rb.setPixelXY(4,4,0x6600FF);
- Rb.setPixelXY(5,4,0x6600FF);
- Rb.setPixelXY(6,4,0x6600FF);
- Rb.setPixelXY(7,4,0x6600FF);
- delay(rx1*2);
- Rb.blankDisplay();
- if (rx3 <= 150){
- break;
- }
- Rb.setPixelXY(0,4,0xBCFF00);
- Rb.setPixelXY(1,4,0xBCFF00);
- Rb.setPixelXY(2,4,0xBCFF00);
- Rb.setPixelXY(3,4,0xBCFF00);
- Rb.setPixelXY(4,3,0x6600FF);
- Rb.setPixelXY(5,3,0x6600FF);
- Rb.setPixelXY(6,3,0x6600FF);
- Rb.setPixelXY(7,3,0x6600FF);
- delay(rx1*2);
- Rb.blankDisplay();
- if (rx3 <= 150){
- break;
- }
- Rb.setPixelXY(0,5,0xBCFF00);
- Rb.setPixelXY(1,5,0xBCFF00);
- Rb.setPixelXY(2,5,0xBCFF00);
- Rb.setPixelXY(3,5,0xBCFF00);
- Rb.setPixelXY(4,2,0x6600FF);
- Rb.setPixelXY(5,2,0x6600FF);
- Rb.setPixelXY(6,2,0x6600FF);
- Rb.setPixelXY(7,2,0x6600FF);
- delay(rx1*2);
- Rb.blankDisplay();
- if (rx3 <= 150){
- break;
- }
- Rb.setPixelXY(0,6,0xBCFF00);
- Rb.setPixelXY(1,6,0xBCFF00);
- Rb.setPixelXY(2,6,0xBCFF00);
- Rb.setPixelXY(3,6,0xBCFF00);
- Rb.setPixelXY(4,1,0x6600FF);
- Rb.setPixelXY(5,1,0x6600FF);
- Rb.setPixelXY(6,1,0x6600FF);
- Rb.setPixelXY(7,1,0x6600FF);
- delay(rx1*2);
- Rb.blankDisplay();
- if (rx3 <= 150){
- break;
- }
- Rb.setPixelXY(0,5,0xBCFF00);
- Rb.setPixelXY(1,5,0xBCFF00);
- Rb.setPixelXY(2,5,0xBCFF00);
- Rb.setPixelXY(3,5,0xBCFF00);
- Rb.setPixelXY(4,2,0x6600FF);
- Rb.setPixelXY(5,2,0x6600FF);
- Rb.setPixelXY(6,2,0x6600FF);
- Rb.setPixelXY(7,2,0x6600FF);
- delay(rx1*2);
- Rb.blankDisplay();
- if (rx3 <= 150){
- break;
- }
- Rb.setPixelXY(0,4,0xBCFF00);
- Rb.setPixelXY(1,4,0xBCFF00);
- Rb.setPixelXY(2,4,0xBCFF00);
- Rb.setPixelXY(3,4,0xBCFF00);
- Rb.setPixelXY(4,3,0x6600FF);
- Rb.setPixelXY(5,3,0x6600FF);
- Rb.setPixelXY(6,3,0x6600FF);
- Rb.setPixelXY(7,3,0x6600FF);
- delay(rx1*2);
- Rb.blankDisplay();
- if (rx3 <= 150){
- break;
- }
- Rb.setPixelXY(0,3,0xBCFF00);
- Rb.setPixelXY(1,3,0xBCFF00);
- Rb.setPixelXY(2,3,0xBCFF00);
- Rb.setPixelXY(3,3,0xBCFF00);
- Rb.setPixelXY(4,4,0x6600FF);
- Rb.setPixelXY(5,4,0x6600FF);
- Rb.setPixelXY(6,4,0x6600FF);
- Rb.setPixelXY(7,4,0x6600FF);
- delay(rx1*2);
- Rb.blankDisplay();
- if (rx3 <= 150){
- break;
- }
- Rb.setPixelXY(0,2,0xBCFF00);
- Rb.setPixelXY(1,2,0xBCFF00);
- Rb.setPixelXY(2,2,0xBCFF00);
- Rb.setPixelXY(3,2,0xBCFF00);
- Rb.setPixelXY(4,5,0x6600FF);
- Rb.setPixelXY(5,5,0x6600FF);
- Rb.setPixelXY(6,5,0x6600FF);
- Rb.setPixelXY(7,5,0x6600FF);
- delay(rx1*2);
- }
- }
- }
- void expansionReceive(int howMany)
- {
- // int port = Wire.read(); // receive byte as an integer
- unsigned char bx1 = Wire.read(); // receives the byte with the value
- unsigned char bx2 = Wire.read();
- unsigned char bx3 = Wire.read();
- unsigned char bx4 = Wire.read();
- unsigned char bx5 = Wire.read();
- unsigned char bx6 = Wire.read();
- rx1 = int(bx1);
- rx1 = constrain (rx1, 1, 100);
- rx1 = map(rx1, 1, 100, 1, 250);
- rx2 = int(bx2);
- rx2 = constrain (rx2, 1, 100);
- rx2 = map(rx2, 1, 100, 1, 250);
- rx3 = int(bx3);
- rx3 = constrain (rx3, 1, 100);
- rx3 = map(rx3, 1, 100, 1, 250);
- rx4 = int(bx4);
- rx4 = constrain (rx4, 1, 100);
- rx4 = map(rx4, 1, 100, 1, 250);
- rx5 = int(bx5);
- rx5 = constrain (rx5, 1, 100);
- rx5 = map(rx5, 1, 100, 1, 250);
- rx6 = int(bx6);
- rx6 = constrain (rx6, 1, 100);
- rx6 = map(rx6, 1, 100, 1, 250);
- // analogWrite(port,value); // sets the pin to the desired value
- }
Advertisement
Add Comment
Please, Sign In to add comment