Guest User

The Code

a guest
Feb 25th, 2020
247
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 12.79 KB | None | 0 0
  1. #include <PT6961.h>
  2. //Variables:
  3. int warm_white_pwm = 0;
  4. int cold_white_pwm = 0;
  5.  
  6.  //Button debounce variables for Cold White Minus:
  7. int cold_white_button_minus_button_state;
  8. int cold_white_button_minus_last_button_state = LOW;
  9. unsigned long cold_white_button_minus_last_debounce_time = 0;
  10. unsigned long cold_white_button_minus_debounce_delay = 20;
  11.  
  12.  //Button debounce variables for Cold White Plus:
  13. int cold_white_button_plus_button_state;
  14. int cold_white_button_plus_last_button_state = LOW;
  15. unsigned long cold_white_button_plus_last_debounce_time = 0;
  16. unsigned long cold_white_button_plus_debounce_delay = 20;
  17.  
  18.  //Button debounce variables for Warm White Minus:
  19. int warm_white_button_minus_button_state;
  20. int warm_white_button_minus_last_button_state = LOW;
  21. unsigned long warm_white_button_minus_last_debounce_time = 0;
  22. unsigned long warm_white_button_minus_debounce_delay = 20;
  23.  
  24.  //Button debounce variables for Warm White Plus:
  25. int warm_white_button_plus_button_state;
  26. int warm_white_button_plus_last_button_state = LOW;
  27. unsigned long warm_white_button_plus_last_debounce_time = 0;
  28. unsigned long warm_white_button_plus_debounce_delay = 20;
  29.  
  30.  //Button debounce variables for All Increase:
  31. int all_increase_button_button_state;
  32. int all_increase_button_last_button_state = LOW;
  33. unsigned long all_increase_button_last_debounce_time = 0;
  34. unsigned long all_increase_button_debounce_delay = 20;
  35.  
  36.  //Button debounce variables for All Decrease:
  37. int all_decrease_button_button_state;
  38. int all_decrease_button_last_button_state = LOW;
  39. unsigned long all_decrease_button_last_debounce_time = 0;
  40. unsigned long all_decrease_button_debounce_delay = 20;
  41.  
  42.  //Button debounce variables for All Decrease:
  43. int by_ten_modifire_button_button_state;
  44. int by_ten_modifire_button_last_button_state = LOW;
  45. unsigned long by_ten_modifire_button_last_debounce_time = 0;
  46. unsigned long by_ten_modifire_button_debounce_delay = 20;
  47.  
  48.  //Dispay Variables:
  49. int cold_ones = 0; //Cold White digit 1
  50. int cold_tens = 0; //Cold White digit 2
  51. int warm_ones = 0; // Warm White digit 1
  52. int warm_tens = 0; //Warm White digit 2
  53.  
  54. //Pin initialization:
  55. // Pin 2 = CS
  56. // Pin 3 = CLK
  57. // Pin 4 = DIN
  58. PT6961 LED(4, 3, 2);
  59.  
  60. int cold_white_transistor = 9;
  61. int warm_white_transistor = 10;
  62.  
  63. //Buttons:
  64. int cold_white_button_minus = 7;
  65. int warm_white_button_minus = 8;
  66. int cold_white_button_plus = 5;
  67. int warm_white_button_plus = 6;
  68. int all_increase_button = 11; //increase both LEDs at the same time by same amount
  69. int all_decrease_button = 12; //decrease both LEDs at the same time by same amount
  70. int by_ten_modifire_button =A0; //speed up getting to curtain procentage by allowing it to be a coeficient of 10
  71.  
  72. void setup() {
  73.     LED.initDisplay();
  74.     Serial.begin(9600);
  75.     pinMode(cold_white_transistor, OUTPUT);
  76.     pinMode(warm_white_transistor, OUTPUT);
  77.     pinMode(cold_white_button_minus, INPUT);
  78.     pinMode(warm_white_button_minus, INPUT);
  79.     pinMode(cold_white_button_plus, INPUT);
  80.     pinMode(warm_white_button_plus, INPUT);
  81.     pinMode(all_increase_button, INPUT);
  82.     pinMode(all_decrease_button, INPUT);
  83.     pinMode(by_ten_modifire_button, INPUT);
  84.    
  85.  }
  86. void loop() {
  87.  
  88. //Debugging(Can be removed later) :
  89. Serial.print("Cold White:");
  90. Serial.print(cold_white_pwm);
  91. Serial.print("  Warm White:");
  92. Serial.print(warm_white_pwm);
  93. Serial.print(" ");
  94. Serial.print(warm_tens);
  95. Serial.print(" ");
  96. Serial.print(warm_ones);
  97. Serial.print(" ");
  98. Serial.print(cold_tens);
  99. Serial.print(" ");
  100. Serial.println(cold_ones);
  101.  
  102. //Cold White Pwm increase:
  103. int cold_white_button_plus_reading = digitalRead(cold_white_button_plus);
  104. if (cold_white_button_plus_reading != cold_white_button_plus_last_button_state) { // If the switch changed, due to noise or pressing:
  105.     cold_white_button_plus_last_debounce_time = millis();
  106.  }
  107. if ((millis() - cold_white_button_plus_last_debounce_time) > cold_white_button_plus_debounce_delay) {   // whatever the reading is at, it's been there for longer than the debounce delay, so take it as the actual current state:
  108.     // if the button state has changed:
  109.     if (cold_white_button_plus_reading != cold_white_button_plus_button_state) { //If reading is opposite of buttonstate
  110.        cold_white_button_plus_button_state = cold_white_button_plus_reading; //Set buttonstate to current reading
  111.          if (cold_white_button_plus_button_state == HIGH){
  112.             cold_white_pwm_increase(); //Goto function
  113.     }
  114.    }
  115.  }
  116. cold_white_button_plus_last_button_state = cold_white_button_plus_reading;
  117.  
  118. //Warm White Pwm increase:
  119. int warm_white_button_plus_reading = digitalRead(warm_white_button_plus);
  120. if (warm_white_button_plus_reading != warm_white_button_plus_last_button_state) {
  121.     warm_white_button_plus_last_debounce_time = millis();
  122. }    
  123. if ((millis() - warm_white_button_plus_last_debounce_time) > warm_white_button_plus_debounce_delay) {
  124.     if (warm_white_button_plus_reading != warm_white_button_plus_button_state) {
  125.         warm_white_button_plus_button_state = warm_white_button_plus_reading;
  126.         if(warm_white_button_plus_button_state == HIGH){
  127.             warm_white_pwm_increase();
  128.         }
  129.     }
  130. }
  131. warm_white_button_plus_last_button_state = warm_white_button_plus_reading;
  132.  
  133. //Cold White Pwm decrease:
  134. int cold_white_button_minus_reading = digitalRead(cold_white_button_minus);
  135. if (cold_white_button_minus_reading != cold_white_button_minus_last_button_state) {
  136.     cold_white_button_minus_last_debounce_time = millis();
  137. }
  138. if ((millis() - cold_white_button_minus_last_debounce_time) > cold_white_button_minus_debounce_delay) {
  139.     if (cold_white_button_minus_reading != cold_white_button_minus_button_state) {
  140.         cold_white_button_minus_button_state = cold_white_button_minus_reading;
  141.         if (cold_white_button_minus_button_state == HIGH) {
  142.             cold_white_pwm_decrease();
  143.         }
  144.     }
  145. }
  146. cold_white_button_minus_last_button_state = cold_white_button_minus_reading;
  147.  
  148. //Warm White Pwm decrease:
  149. int warm_white_button_minus_reading = digitalRead(warm_white_button_minus);
  150. if (warm_white_button_minus_reading != warm_white_button_minus_last_button_state) {
  151.     warm_white_button_minus_last_debounce_time = millis();
  152. }
  153. if ((millis() - warm_white_button_minus_last_debounce_time) > warm_white_button_minus_debounce_delay) {
  154.     if (warm_white_button_minus_reading != warm_white_button_minus_button_state) {
  155.         warm_white_button_minus_button_state = warm_white_button_minus_reading;
  156.         if (warm_white_button_minus_button_state == HIGH) {
  157.             warm_white_pwm_decrease();
  158.         }
  159.     }
  160. }
  161. warm_white_button_minus_last_button_state = warm_white_button_minus_reading;
  162.  
  163. //All increase:
  164. int all_increase_reading = digitalRead(all_increase_button);
  165. if (all_increase_reading != all_increase_button_last_button_state) {
  166.     all_increase_button_last_debounce_time = millis();
  167. }
  168. if ((millis() - all_increase_button_last_debounce_time) > all_increase_button_debounce_delay) {
  169.     if (all_increase_reading != all_increase_button_button_state) {
  170.         all_increase_button_button_state = all_increase_reading;
  171.         if (all_increase_button_button_state == HIGH) {
  172.             all_increase();
  173.         }
  174.     }
  175. }
  176. all_increase_button_last_button_state = all_increase_reading;
  177.  
  178. //All decrease:
  179. int all_decrease_reading = digitalRead(all_decrease_button);
  180. if (all_decrease_reading != all_decrease_button_last_button_state) {
  181.     all_decrease_button_last_debounce_time = millis();
  182. }
  183. if ((millis() - all_decrease_button_last_debounce_time) > all_decrease_button_debounce_delay) {
  184.     if (all_decrease_reading != all_decrease_button_button_state) {
  185.         all_decrease_button_button_state = all_decrease_reading;
  186.         if (all_decrease_button_button_state == HIGH) {
  187.             all_decrease();
  188.         }
  189.     }
  190. }
  191. all_increase_button_last_button_state = all_increase_reading;
  192.  
  193. //Functions:
  194. void cold_white_pwm_increase() {
  195.            if (cold_white_pwm >= 0 && cold_white_pwm < 99) {
  196.           if(digitalRead(by_ten_modifire_button) == HIGH && cold_white_pwm < 89)  //By 10 modifire
  197.       {
  198.         cold_white_pwm = cold_white_pwm + 10;
  199.         cold_ones = (cold_white_pwm%10);
  200.         cold_tens = ((cold_white_pwm/10)%10);
  201.         warm_ones = (warm_white_pwm%10);
  202.         warm_tens = ((warm_white_pwm/10)%10);
  203.         LED.sendDigits(warm_tens,warm_ones,cold_tens,cold_ones,1);
  204.       }
  205.     else
  206.       {
  207.         cold_white_pwm ++;
  208.         cold_ones = (cold_white_pwm%10);
  209.         cold_tens = ((cold_white_pwm/10)%10);
  210.         warm_ones = (warm_white_pwm%10);
  211.         warm_tens = ((warm_white_pwm/10)%10);
  212.         LED.sendDigits(warm_tens,warm_ones,cold_tens,cold_ones,1);
  213.       }
  214.      }
  215. }
  216.  
  217. void warm_white_pwm_increase() {
  218.     if(warm_white_pwm >= 0 && warm_white_pwm < 99)
  219.    {
  220.     if(digitalRead(by_ten_modifire_button) == HIGH && warm_white_pwm < 89) //By 10 modifire
  221.       {
  222.         warm_white_pwm = warm_white_pwm + 10;
  223.         cold_ones = (cold_white_pwm%10);
  224.         cold_tens = ((cold_white_pwm/10)%10);
  225.         warm_ones = (warm_white_pwm%10);
  226.         warm_tens = ((warm_white_pwm/10)%10);
  227.         LED.sendDigits(warm_tens,warm_ones,cold_tens,cold_ones,1);
  228.       }
  229.     else
  230.       {
  231.         warm_white_pwm ++;
  232.         cold_ones = (cold_white_pwm%10);
  233.         cold_tens = ((cold_white_pwm/10)%10);
  234.         warm_ones = (warm_white_pwm%10);
  235.         warm_tens = ((warm_white_pwm/10)%10);
  236.         LED.sendDigits(warm_tens,warm_ones,cold_tens,cold_ones,1);
  237.       }
  238.    }
  239. }
  240.  
  241. void cold_white_pwm_decrease() {
  242. if(cold_white_pwm < 100 && cold_white_pwm > 0)
  243.  {
  244.     if(digitalRead(by_ten_modifire_button) == HIGH && cold_white_pwm > 11) //By 10 modifire
  245.       {
  246.         cold_white_pwm = cold_white_pwm - 10;
  247.         cold_ones = (cold_white_pwm%10);
  248.         cold_tens = ((cold_white_pwm/10)%10);
  249.         warm_ones = (warm_white_pwm%10);
  250.         warm_tens = ((warm_white_pwm/10)%10);
  251.         LED.sendDigits(warm_tens,warm_ones,cold_tens,cold_ones,1);
  252.       }
  253.     else
  254.       {
  255.         cold_white_pwm --;
  256.         cold_ones = (cold_white_pwm%10);
  257.         cold_tens = ((cold_white_pwm/10)%10);
  258.         warm_ones = (warm_white_pwm%10);
  259.         warm_tens = ((warm_white_pwm/10)%10);
  260.         LED.sendDigits(warm_tens,warm_ones,cold_tens,cold_ones,1);
  261.       }
  262.    }
  263. }
  264.  
  265. void warm_white_pwm_decrease() {
  266. if(warm_white_pwm < 100 && warm_white_pwm > 0)
  267.  {
  268.     if(digitalRead(by_ten_modifire_button) == HIGH && warm_white_pwm > 11) //By 10 modifire
  269.       {
  270.         warm_white_pwm = warm_white_pwm - 10;
  271.         cold_ones = (cold_white_pwm%10);
  272.         cold_tens = ((cold_white_pwm/10)%10);
  273.         warm_ones = (warm_white_pwm%10);
  274.         warm_tens = ((warm_white_pwm/10)%10);
  275.         LED.sendDigits(warm_tens,warm_ones,cold_tens,cold_ones,1);
  276.       }
  277.     else
  278.       {
  279.         warm_white_pwm --;
  280.         cold_ones = (cold_white_pwm%10);
  281.         cold_tens = ((cold_white_pwm/10)%10);
  282.         warm_ones = (warm_white_pwm%10);
  283.         warm_tens = ((warm_white_pwm/10)%10);
  284.         LED.sendDigits(warm_tens,warm_ones,cold_tens,cold_ones,1);
  285.       }
  286.     }  
  287. }
  288.  
  289. void all_increase() {
  290. if(warm_white_pwm >= 0 && warm_white_pwm < 99 && cold_white_pwm >= 0 && cold_white_pwm < 99)
  291.  {
  292.     if(digitalRead(by_ten_modifire_button) == HIGH && warm_white_pwm < 89 && cold_white_pwm < 89) //By 10 modifire
  293.       {
  294.         warm_white_pwm = warm_white_pwm + 10;
  295.         cold_white_pwm = cold_white_pwm + 10;
  296.         cold_ones = (cold_white_pwm%10);
  297.         cold_tens = ((cold_white_pwm/10)%10);
  298.         warm_ones = (warm_white_pwm%10);
  299.         warm_tens = ((warm_white_pwm/10)%10);
  300.         LED.sendDigits(warm_tens,warm_ones,cold_tens,cold_ones,1);
  301.       }
  302.     else
  303.       {
  304.         warm_white_pwm ++;
  305.         cold_white_pwm ++;
  306.         cold_ones = (cold_white_pwm%10);
  307.         cold_tens = ((cold_white_pwm/10)%10);
  308.         warm_ones = (warm_white_pwm%10);
  309.         warm_tens = ((warm_white_pwm/10)%10);
  310.         LED.sendDigits(warm_tens,warm_ones,cold_tens,cold_ones,1);
  311.       }
  312.    }
  313. }
  314.  
  315. void all_decrease() {
  316. if(warm_white_pwm < 100 && warm_white_pwm > 0 && cold_white_pwm < 100 && cold_white_pwm > 0)
  317.  {
  318.     if(digitalRead(by_ten_modifire_button) == HIGH && warm_white_pwm > 11 && cold_white_pwm > 11) //By 10 modifire
  319.       {
  320.         warm_white_pwm = warm_white_pwm - 10;
  321.         cold_white_pwm = cold_white_pwm - 10;
  322.         cold_ones = (cold_white_pwm%10);
  323.         cold_tens = ((cold_white_pwm/10)%10);
  324.         warm_ones = (warm_white_pwm%10);
  325.         warm_tens = ((warm_white_pwm/10)%10);
  326.         LED.sendDigits(warm_tens,warm_ones,cold_tens,cold_ones,1);
  327.       }
  328.     else
  329.       {
  330.         warm_white_pwm --;
  331.         cold_white_pwm --;
  332.         cold_ones = (cold_white_pwm%10);
  333.         cold_tens = ((cold_white_pwm/10)%10);
  334.         warm_ones = (warm_white_pwm%10);
  335.         warm_tens = ((warm_white_pwm/10)%10);
  336.         LED.sendDigits(warm_tens,warm_ones,cold_tens,cold_ones,1);
  337.       }
  338.    }
  339. }
Advertisement
Add Comment
Please, Sign In to add comment