Add 6th RGB light support for jubeat (untested, but it should work), change the way the SoftPWMRGB class is initialized
parent
85b0a02d82
commit
e4da7587a6
|
|
@ -1,9 +1,7 @@
|
||||||
#include "Arduino.h"
|
#include "Arduino.h"
|
||||||
#include "IoBoard.h"
|
#include "IoBoard.h"
|
||||||
#include "SoftPWMRGB.h"
|
|
||||||
|
|
||||||
byte lightPin[] = {LT_START, LT_A, LT_B, LT_C, LT_D, LT_FXL, LT_FXR};
|
byte lightPin[] = {LT_START, LT_A, LT_B, LT_C, LT_D, LT_FXL, LT_FXR};
|
||||||
SoftPWMRGB LED6(LED6_R, LED6_G, LED6_B);
|
|
||||||
|
|
||||||
//contructor
|
//contructor
|
||||||
IoBoard::IoBoard(char* rCode)
|
IoBoard::IoBoard(char* rCode)
|
||||||
|
|
@ -85,6 +83,8 @@ void IoBoard::init()
|
||||||
keysLights = 0x00;
|
keysLights = 0x00;
|
||||||
test =0;
|
test =0;
|
||||||
|
|
||||||
|
LED6.setPins(LED6_R, LED6_G, LED6_B);
|
||||||
|
|
||||||
valLED6_R = 0;
|
valLED6_R = 0;
|
||||||
valLED6_G = 0;
|
valLED6_G = 0;
|
||||||
valLED6_B = 0;
|
valLED6_B = 0;
|
||||||
|
|
|
||||||
|
|
@ -3,8 +3,7 @@
|
||||||
|
|
||||||
#include "Arduino.h"
|
#include "Arduino.h"
|
||||||
#include "Node.h"
|
#include "Node.h"
|
||||||
|
#include "SoftPWMRGB.h"
|
||||||
|
|
||||||
|
|
||||||
class IoBoard: public Node
|
class IoBoard: public Node
|
||||||
{
|
{
|
||||||
|
|
@ -27,6 +26,8 @@ private:
|
||||||
byte volRState;
|
byte volRState;
|
||||||
unsigned int volL;
|
unsigned int volL;
|
||||||
byte volLState;
|
byte volLState;
|
||||||
|
// Software PWM RGB light
|
||||||
|
SoftPWMRGB LED6;
|
||||||
// Values for the software PWM RGB light
|
// Values for the software PWM RGB light
|
||||||
int valLED6_R;
|
int valLED6_R;
|
||||||
int valLED6_G;
|
int valLED6_G;
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,6 @@
|
||||||
#include "Arduino.h"
|
#include "Arduino.h"
|
||||||
#include "LedBoard.h"
|
#include "LedBoard.h"
|
||||||
|
|
||||||
|
|
||||||
//contructor
|
//contructor
|
||||||
LedBoard::LedBoard(char* rCode)
|
LedBoard::LedBoard(char* rCode)
|
||||||
{
|
{
|
||||||
|
|
@ -12,6 +11,12 @@ LedBoard::LedBoard(char* rCode)
|
||||||
|
|
||||||
void LedBoard::init()
|
void LedBoard::init()
|
||||||
{
|
{
|
||||||
|
LED6.setPins(LED6_R, LED6_G, LED6_B);
|
||||||
|
|
||||||
|
valLED6_R = 0;
|
||||||
|
valLED6_G = 0;
|
||||||
|
valLED6_B = 0;
|
||||||
|
|
||||||
memset(ledStatus, 0, 18);
|
memset(ledStatus, 0, 18);
|
||||||
pinMode(LED1_R, OUTPUT);
|
pinMode(LED1_R, OUTPUT);
|
||||||
pinMode(LED1_G, OUTPUT);
|
pinMode(LED1_G, OUTPUT);
|
||||||
|
|
@ -22,10 +27,21 @@ void LedBoard::init()
|
||||||
pinMode(LED3_R, OUTPUT);
|
pinMode(LED3_R, OUTPUT);
|
||||||
pinMode(LED3_G, OUTPUT);
|
pinMode(LED3_G, OUTPUT);
|
||||||
pinMode(LED3_B, OUTPUT);
|
pinMode(LED3_B, OUTPUT);
|
||||||
|
pinMode(LED4_R, OUTPUT);
|
||||||
|
pinMode(LED4_G, OUTPUT);
|
||||||
|
pinMode(LED4_B, OUTPUT);
|
||||||
|
pinMode(LED5_R, OUTPUT);
|
||||||
|
pinMode(LED5_G, OUTPUT);
|
||||||
|
pinMode(LED5_B, OUTPUT);
|
||||||
|
pinMode(LED6_R, OUTPUT);
|
||||||
|
pinMode(LED6_G, OUTPUT);
|
||||||
|
pinMode(LED6_B, OUTPUT);
|
||||||
}
|
}
|
||||||
|
|
||||||
void LedBoard::update()
|
void LedBoard::update()
|
||||||
{
|
{
|
||||||
|
// Update the software PWM RGB light
|
||||||
|
LED6.setPWM(valLED6_R, valLED6_G, valLED6_B);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -69,26 +85,29 @@ short LedBoard::processRequest(byte* request, byte* answer)
|
||||||
if (request[4] == 18)
|
if (request[4] == 18)
|
||||||
memcpy(ledStatus, request+5, 18); //save led colors
|
memcpy(ledStatus, request+5, 18); //save led colors
|
||||||
|
|
||||||
analogWrite(LED1_R,ledStatus[6]);
|
analogWrite(LED1_R,ledStatus[0]);
|
||||||
analogWrite(LED1_G,ledStatus[7]);
|
analogWrite(LED1_G,ledStatus[1]);
|
||||||
analogWrite(LED1_B,ledStatus[8]);
|
analogWrite(LED1_B,ledStatus[2]);
|
||||||
analogWrite(LED2_R,ledStatus[0]);
|
analogWrite(LED2_R,ledStatus[12]);
|
||||||
analogWrite(LED2_G,ledStatus[1]);
|
analogWrite(LED2_G,ledStatus[13]);
|
||||||
analogWrite(LED2_B,ledStatus[2]);
|
analogWrite(LED2_B,ledStatus[14]);
|
||||||
analogWrite(LED3_R,ledStatus[9]);
|
analogWrite(LED3_R,ledStatus[3]);
|
||||||
analogWrite(LED3_G,ledStatus[10]);
|
analogWrite(LED3_G,ledStatus[4]);
|
||||||
analogWrite(LED3_B,ledStatus[11]);
|
analogWrite(LED3_B,ledStatus[5]);
|
||||||
|
analogWrite(LED4_R,ledStatus[6]);
|
||||||
|
analogWrite(LED4_G,ledStatus[7]);
|
||||||
|
analogWrite(LED4_B,ledStatus[8]);
|
||||||
|
analogWrite(LED5_R,ledStatus[9]);
|
||||||
|
analogWrite(LED5_G,ledStatus[10]);
|
||||||
|
analogWrite(LED5_B,ledStatus[11]);
|
||||||
|
// Get the requested values for the software PWM RGB light
|
||||||
|
valLED6_R = ledStatus[15];
|
||||||
|
valLED6_G = ledStatus[16];
|
||||||
|
valLED6_B = ledStatus[17];
|
||||||
|
|
||||||
answer[4] = 1;
|
answer[4] = 1;
|
||||||
answer[5] = 0x00;
|
answer[5] = 0x00;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@
|
||||||
|
|
||||||
#include "Arduino.h"
|
#include "Arduino.h"
|
||||||
#include "Node.h"
|
#include "Node.h"
|
||||||
|
#include "SoftPWMRGB.h"
|
||||||
|
|
||||||
class LedBoard: public Node
|
class LedBoard: public Node
|
||||||
{
|
{
|
||||||
|
|
@ -16,7 +17,12 @@ public:
|
||||||
|
|
||||||
private:
|
private:
|
||||||
byte ledStatus[18];
|
byte ledStatus[18];
|
||||||
|
// Software PWM RGB light
|
||||||
|
SoftPWMRGB LED6;
|
||||||
|
// Values for the software PWM RGB light
|
||||||
|
int valLED6_R;
|
||||||
|
int valLED6_G;
|
||||||
|
int valLED6_B;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
|
|
@ -1,14 +1,10 @@
|
||||||
#include "Arduino.h"
|
#include "Arduino.h"
|
||||||
#include "SoftPWMRGB.h"
|
#include "SoftPWMRGB.h"
|
||||||
|
|
||||||
SoftPWMRGB::SoftPWMRGB(int pinR, int pinG, int pinB)
|
SoftPWMRGB::SoftPWMRGB()
|
||||||
{
|
{
|
||||||
period = 2000; // Period set to 2000us to obtain a 500Hz signal)
|
period = 2000; // Period set to 2000us to obtain a 500Hz signal)
|
||||||
|
|
||||||
pin[0] = pinR;
|
|
||||||
pin[1] = pinG;
|
|
||||||
pin[2] = pinB;
|
|
||||||
|
|
||||||
for(int i=0;i<3;i++)
|
for(int i=0;i<3;i++)
|
||||||
{
|
{
|
||||||
val[i] = 0;
|
val[i] = 0;
|
||||||
|
|
@ -20,6 +16,13 @@ SoftPWMRGB::SoftPWMRGB(int pinR, int pinG, int pinB)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void SoftPWMRGB::setPins(int pinR, int pinG, int pinB)
|
||||||
|
{
|
||||||
|
pin[0] = pinR;
|
||||||
|
pin[1] = pinG;
|
||||||
|
pin[2] = pinB;
|
||||||
|
}
|
||||||
|
|
||||||
void SoftPWMRGB::setPWM(int valR, int valG, int valB)
|
void SoftPWMRGB::setPWM(int valR, int valG, int valB)
|
||||||
{
|
{
|
||||||
unsigned long currentMicros = micros(); // Get the current time
|
unsigned long currentMicros = micros(); // Get the current time
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,8 @@
|
||||||
class SoftPWMRGB
|
class SoftPWMRGB
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
SoftPWMRGB(int pinR, int pinG, int pinB);
|
SoftPWMRGB();
|
||||||
|
void setPins(int pinR, int pinG, int pinB);
|
||||||
void setPWM(int valR, int valG, int valB); // Call this function in a loop to be sure that LED states are updated
|
void setPWM(int valR, int valG, int valB); // Call this function in a loop to be sure that LED states are updated
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue