Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define DEBUG 1
- #define REDPIN A0
- #define GREENPIN A1
- #define BLUEPIN A5
- int r=255, g=20, b=100;
- void setup() {
- Serial.begin(9600);
- }
- void WriteRGB_Pins() {
- // Write to pins
- analogWrite(REDPIN, map((long)r, 0, 255, 0, 255)); // Remap for correct default colour
- analogWrite(GREENPIN, map((long)g, 0, 255, 0, 255)); // Remap for correct default colour
- analogWrite(BLUEPIN, map((long)b, 0, 255, 0, 255)); // Remap for correct default colour
- }
- void incrementBrightness(float val = 5) {
- (float) r, g, b;
- if((int)r != 0) { // If value started at 0 keep at 0
- if((r + val) < 255){
- r += val;
- }
- }
- if((int)g != 0) { // If value started at 0 keep at 0
- if((g + val) < 255){
- g += val;
- }
- }
- if((int)b != 0) { // If value started at 0 keep at 0
- if((b + val) < 255){
- b += val;
- }
- }
- (int) r, g, b;
- }
- void deincrementBrightness(float val = 5) {
- (float) r, g, b;
- if((int)r != 0) { // If value started at 0 keep at 0
- if((r - val) > 0) {
- r -= val;
- }
- }
- if((int)g != 0) { // If value started at 0 keep at 0
- if((g - val) > 0) {
- g -= val;
- }
- }
- if((int)b != 0) { // If value started at 0 keep at 0
- if((b - val) > 0) {
- b -= val;
- }
- }
- (int) r, g, b;
- }
- void pulse() {
- int previousR, previousG, previousB;
- for(int i = 0; i < 100; i++) {
- if(i == 0) { // Initialising previous RGB values
- previousR = r, previousG = g, previousB = b;
- } else {
- if(previousR == r && previousG == g && previousB == b) { // If current valuse the same as last break the loop and stat incrementing
- break;
- }
- previousR = r, previousG = g, previousB = b; // Renew previous RGB values
- }
- incrementBrightness();
- WriteRGB_Pins();
- #ifdef DEBUG
- Serial.print("R:");
- Serial.print(r);
- Serial.print(" G:");
- Serial.print(g);
- Serial.print(" B:");
- Serial.println(b);
- Serial.println();
- #endif
- delay(1);
- }
- for(int i = 0; i < 100; i++) {
- if(i == 0) { // Initialising previous RGB values
- previousR = r, previousG = g, previousB = b;
- } else {
- if(previousR == r && previousG == g && previousB == b) { // If current valuse the same as last break the loop and stat incrementing
- break;
- }
- previousR = r, previousG = g, previousB = b; // Renew previous RGB values
- }
- deincrementBrightness();
- WriteRGB_Pins();
- #ifdef DEBUG
- Serial.print("R:");
- Serial.print(r);
- Serial.print(" G:");
- Serial.print(g);
- Serial.print(" B:");
- Serial.println(b);
- Serial.println();
- #endif
- delay(1);
- }
- }
- void loop() {
- pulse();
- //WriteRGB_Pins();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement