Advertisement
Guest User

fade light

a guest
Oct 30th, 2024
215
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.30 KB | None | 0 0
  1. int greenLed = 11;
  2. int redLed = 10;
  3. int blueLed = 9;
  4. int yellowLed = 6;
  5.  
  6.  
  7.  
  8.  
  9. class FADE {
  10. private:
  11.   int fadeAmount = 0;
  12.  
  13.   enum ledState {
  14.   fullOff,
  15.   fullOn
  16. };
  17.  
  18.   enum ledState currentState = fullOff;
  19.  
  20. public:
  21.   void fadeLed(int ledPin, int fadeSpeed, int fadeRate) {
  22.  
  23.     fadeAmount = constrain(fadeAmount, 0, 255);
  24.  
  25.     switch (currentState) {
  26.       case fullOff:
  27.         fadeAmount += fadeRate;
  28.         analogWrite(ledPin, fadeAmount);
  29.         delay(fadeSpeed);
  30.  
  31.         if (fadeAmount >= 255) {
  32.           currentState = fullOn;
  33.         }
  34.         break;
  35.  
  36.       case fullOn:
  37.         fadeAmount = fadeAmount - fadeRate;
  38.         analogWrite(ledPin, fadeAmount);
  39.         delay(fadeSpeed);
  40.  
  41.         if (fadeAmount <= 0) {
  42.           currentState = fullOff;
  43.         }
  44.         break;
  45.     }
  46.  
  47.     Serial.println(fadeAmount);
  48.   }
  49. };
  50.  
  51. FADE greenFade;
  52. FADE redFade;
  53. FADE blueFade;
  54. FADE yellowFade;
  55.  
  56. void setup() {
  57.   // put your setup code here, to run once:
  58.   pinMode(greenLed, OUTPUT);
  59.   pinMode(redLed, OUTPUT);
  60.   pinMode(blueLed, OUTPUT);
  61.   pinMode(yellowLed, OUTPUT);
  62.  
  63.   Serial.begin(9600);
  64. }
  65.  
  66. void loop() {
  67.   greenFade.fadeLed(greenLed, 30, 20);
  68.   redFade.fadeLed(redLed, 30, 10);
  69.   blueFade.fadeLed(blueLed, 30, 15);
  70.   yellowFade.fadeLed(yellowLed, 30, 25);
  71. }
  72.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement