Warning: Use of undefined constant PREG_PATTERN_VALID_LANGUAGE - assumed 'PREG_PATTERN_VALID_LANGUAGE' (this will throw an Error in a future version of PHP) in
/var/www/kucjica/emperors-wiki/inc/parser/xhtml.php on line
633
Warning: preg_replace(): Delimiter must not be alphanumeric or backslash in
/var/www/kucjica/emperors-wiki/inc/parser/xhtml.php on line
633
Arduino Serial to LED communication
/************************************************************************************************************************************
* ShiftPWM blocking RGB fades example, (c) Elco Jacobs, updated August
2012.
*
* ShiftPWM blocking RGB fades example. This example uses simple delay
loops to create fades.
* If you want to change the fading mode based on inputs (sensors,
buttons, serial), use the non-blocking example as a starting point.
* Please go to www.elcojacobs.com/shiftpwm for documentation, fuction
reference and schematics.
* If you want to use ShiftPWM with LED strips or high power LED's,
visit the shop for boards.
************************************************************************************************************************************/
// Clock and data pins are pins from the hardware SPI, you cannot choose them yourself if you use the hardware SPI.
// Data pin is MOSI (Uno and earlier: 11, Leonardo: ICSP 4, Mega: 51, Teensy 2.0: 2, Teensy 2.0++: 22)
// Clock pin is SCK (Uno and earlier: 13, Leonardo: ICSP 3, Mega: 52, Teensy 2.0: 1, Teensy 2.0++: 21)
// You can choose the latch pin yourself.
const int ShiftPWM_latchPin=8;
// If your LED's turn on if the pin is low, set this to true, otherwise set it to false.
const bool ShiftPWM_invertOutputs = false;
// You can enable the option below to shift the PWM phase of each shift register by 8 compared to the previous.
// This will slightly increase the interrupt load, but will prevent all PWM signals from becoming high at the same time.
// This will be a bit easier on your power supply, because the current peaks are distributed.
const bool ShiftPWM_balanceLoad = false;
#include <ShiftPWM.h> // include ShiftPWM.h after setting the pins!
unsigned char maxBrightness = 128;
unsigned char pwmFrequency = 75;
int numRegisters = 3;
int numRGBleds = 4;
void setup(){
Serial.begin(19200);
// Sets the number of 8-bit registers that are used.
ShiftPWM.SetAmountOfRegisters(numRegisters);
// SetPinGrouping allows flexibility in LED setup.
// If your LED's are connected like this: RRRRGGGGBBBBRRRRGGGGBBBB, use SetPinGrouping(4).
ShiftPWM.SetPinGrouping(1); //This is the default, but I added here to demonstrate how to use the function
ShiftPWM.Start(pwmFrequency,maxBrightness);
}
void loop()
{
/*for(int led=0;led<numRGBleds;led++){ // loop over all LED's
for(int intensity=0;intensity<255;intensity++){ // loop over all LED's
ShiftPWM.SetRGBW(led, intensity, 0, 0, 0);
delay(5);
}
for(int intensity=255;intensity>0;intensity--){ // loop over all LED's
ShiftPWM.SetRGBW(led, intensity, 0, 0, 0);
delay(5);
}
}*/
while (Serial.available() > 0) {
int led = Serial.parseInt();
int red = Serial.parseInt();
int green = Serial.parseInt();
int blue = Serial.parseInt();
//int white = Serial.parseInt();
if (Serial.read() == '\n') {
ShiftPWM.SetRGBW(led, red, green, blue, 0);
}
}
}