Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <PT6961.h>
- //Variables:
- int warm_white_pwm = 0;
- int cold_white_pwm = 0;
- //Button debounce variables for Cold White Minus:
- int cold_white_button_minus_button_state;
- int cold_white_button_minus_last_button_state = LOW;
- unsigned long cold_white_button_minus_last_debounce_time = 0;
- unsigned long cold_white_button_minus_debounce_delay = 20;
- //Button debounce variables for Cold White Plus:
- int cold_white_button_plus_button_state;
- int cold_white_button_plus_last_button_state = LOW;
- unsigned long cold_white_button_plus_last_debounce_time = 0;
- unsigned long cold_white_button_plus_debounce_delay = 20;
- //Button debounce variables for Warm White Minus:
- int warm_white_button_minus_button_state;
- int warm_white_button_minus_last_button_state = LOW;
- unsigned long warm_white_button_minus_last_debounce_time = 0;
- unsigned long warm_white_button_minus_debounce_delay = 20;
- //Button debounce variables for Warm White Plus:
- int warm_white_button_plus_button_state;
- int warm_white_button_plus_last_button_state = LOW;
- unsigned long warm_white_button_plus_last_debounce_time = 0;
- unsigned long warm_white_button_plus_debounce_delay = 20;
- //Button debounce variables for All Increase:
- int all_increase_button_button_state;
- int all_increase_button_last_button_state = LOW;
- unsigned long all_increase_button_last_debounce_time = 0;
- unsigned long all_increase_button_debounce_delay = 20;
- //Button debounce variables for All Decrease:
- int all_decrease_button_button_state;
- int all_decrease_button_last_button_state = LOW;
- unsigned long all_decrease_button_last_debounce_time = 0;
- unsigned long all_decrease_button_debounce_delay = 20;
- //Button debounce variables for All Decrease:
- int by_ten_modifire_button_button_state;
- int by_ten_modifire_button_last_button_state = LOW;
- unsigned long by_ten_modifire_button_last_debounce_time = 0;
- unsigned long by_ten_modifire_button_debounce_delay = 20;
- //Dispay Variables:
- int cold_ones = 0; //Cold White digit 1
- int cold_tens = 0; //Cold White digit 2
- int warm_ones = 0; // Warm White digit 1
- int warm_tens = 0; //Warm White digit 2
- //Pin initialization:
- // Pin 2 = CS
- // Pin 3 = CLK
- // Pin 4 = DIN
- PT6961 LED(4, 3, 2);
- int cold_white_transistor = 9;
- int warm_white_transistor = 10;
- //Buttons:
- int cold_white_button_minus = 7;
- int warm_white_button_minus = 8;
- int cold_white_button_plus = 5;
- int warm_white_button_plus = 6;
- int all_increase_button = 11; //increase both LEDs at the same time by same amount
- int all_decrease_button = 12; //decrease both LEDs at the same time by same amount
- int by_ten_modifire_button =A0; //speed up getting to curtain procentage by allowing it to be a coeficient of 10
- void setup() {
- LED.initDisplay();
- Serial.begin(9600);
- pinMode(cold_white_transistor, OUTPUT);
- pinMode(warm_white_transistor, OUTPUT);
- pinMode(cold_white_button_minus, INPUT);
- pinMode(warm_white_button_minus, INPUT);
- pinMode(cold_white_button_plus, INPUT);
- pinMode(warm_white_button_plus, INPUT);
- pinMode(all_increase_button, INPUT);
- pinMode(all_decrease_button, INPUT);
- pinMode(by_ten_modifire_button, INPUT);
- }
- void loop() {
- //Debugging(Can be removed later) :
- Serial.print("Cold White:");
- Serial.print(cold_white_pwm);
- Serial.print(" Warm White:");
- Serial.print(warm_white_pwm);
- Serial.print(" ");
- Serial.print(warm_tens);
- Serial.print(" ");
- Serial.print(warm_ones);
- Serial.print(" ");
- Serial.print(cold_tens);
- Serial.print(" ");
- Serial.println(cold_ones);
- //Cold White Pwm increase:
- int cold_white_button_plus_reading = digitalRead(cold_white_button_plus);
- if (cold_white_button_plus_reading != cold_white_button_plus_last_button_state) { // If the switch changed, due to noise or pressing:
- cold_white_button_plus_last_debounce_time = millis();
- }
- 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:
- // if the button state has changed:
- if (cold_white_button_plus_reading != cold_white_button_plus_button_state) { //If reading is opposite of buttonstate
- cold_white_button_plus_button_state = cold_white_button_plus_reading; //Set buttonstate to current reading
- if (cold_white_button_plus_button_state == HIGH){
- cold_white_pwm_increase(); //Goto function
- }
- }
- }
- cold_white_button_plus_last_button_state = cold_white_button_plus_reading;
- //Warm White Pwm increase:
- int warm_white_button_plus_reading = digitalRead(warm_white_button_plus);
- if (warm_white_button_plus_reading != warm_white_button_plus_last_button_state) {
- warm_white_button_plus_last_debounce_time = millis();
- }
- if ((millis() - warm_white_button_plus_last_debounce_time) > warm_white_button_plus_debounce_delay) {
- if (warm_white_button_plus_reading != warm_white_button_plus_button_state) {
- warm_white_button_plus_button_state = warm_white_button_plus_reading;
- if(warm_white_button_plus_button_state == HIGH){
- warm_white_pwm_increase();
- }
- }
- }
- warm_white_button_plus_last_button_state = warm_white_button_plus_reading;
- //Cold White Pwm decrease:
- int cold_white_button_minus_reading = digitalRead(cold_white_button_minus);
- if (cold_white_button_minus_reading != cold_white_button_minus_last_button_state) {
- cold_white_button_minus_last_debounce_time = millis();
- }
- if ((millis() - cold_white_button_minus_last_debounce_time) > cold_white_button_minus_debounce_delay) {
- if (cold_white_button_minus_reading != cold_white_button_minus_button_state) {
- cold_white_button_minus_button_state = cold_white_button_minus_reading;
- if (cold_white_button_minus_button_state == HIGH) {
- cold_white_pwm_decrease();
- }
- }
- }
- cold_white_button_minus_last_button_state = cold_white_button_minus_reading;
- //Warm White Pwm decrease:
- int warm_white_button_minus_reading = digitalRead(warm_white_button_minus);
- if (warm_white_button_minus_reading != warm_white_button_minus_last_button_state) {
- warm_white_button_minus_last_debounce_time = millis();
- }
- if ((millis() - warm_white_button_minus_last_debounce_time) > warm_white_button_minus_debounce_delay) {
- if (warm_white_button_minus_reading != warm_white_button_minus_button_state) {
- warm_white_button_minus_button_state = warm_white_button_minus_reading;
- if (warm_white_button_minus_button_state == HIGH) {
- warm_white_pwm_decrease();
- }
- }
- }
- warm_white_button_minus_last_button_state = warm_white_button_minus_reading;
- //All increase:
- int all_increase_reading = digitalRead(all_increase_button);
- if (all_increase_reading != all_increase_button_last_button_state) {
- all_increase_button_last_debounce_time = millis();
- }
- if ((millis() - all_increase_button_last_debounce_time) > all_increase_button_debounce_delay) {
- if (all_increase_reading != all_increase_button_button_state) {
- all_increase_button_button_state = all_increase_reading;
- if (all_increase_button_button_state == HIGH) {
- all_increase();
- }
- }
- }
- all_increase_button_last_button_state = all_increase_reading;
- //All decrease:
- int all_decrease_reading = digitalRead(all_decrease_button);
- if (all_decrease_reading != all_decrease_button_last_button_state) {
- all_decrease_button_last_debounce_time = millis();
- }
- if ((millis() - all_decrease_button_last_debounce_time) > all_decrease_button_debounce_delay) {
- if (all_decrease_reading != all_decrease_button_button_state) {
- all_decrease_button_button_state = all_decrease_reading;
- if (all_decrease_button_button_state == HIGH) {
- all_decrease();
- }
- }
- }
- all_increase_button_last_button_state = all_increase_reading;
- //Functions:
- void cold_white_pwm_increase() {
- if (cold_white_pwm >= 0 && cold_white_pwm < 99) {
- if(digitalRead(by_ten_modifire_button) == HIGH && cold_white_pwm < 89) //By 10 modifire
- {
- cold_white_pwm = cold_white_pwm + 10;
- cold_ones = (cold_white_pwm%10);
- cold_tens = ((cold_white_pwm/10)%10);
- warm_ones = (warm_white_pwm%10);
- warm_tens = ((warm_white_pwm/10)%10);
- LED.sendDigits(warm_tens,warm_ones,cold_tens,cold_ones,1);
- }
- else
- {
- cold_white_pwm ++;
- cold_ones = (cold_white_pwm%10);
- cold_tens = ((cold_white_pwm/10)%10);
- warm_ones = (warm_white_pwm%10);
- warm_tens = ((warm_white_pwm/10)%10);
- LED.sendDigits(warm_tens,warm_ones,cold_tens,cold_ones,1);
- }
- }
- }
- void warm_white_pwm_increase() {
- if(warm_white_pwm >= 0 && warm_white_pwm < 99)
- {
- if(digitalRead(by_ten_modifire_button) == HIGH && warm_white_pwm < 89) //By 10 modifire
- {
- warm_white_pwm = warm_white_pwm + 10;
- cold_ones = (cold_white_pwm%10);
- cold_tens = ((cold_white_pwm/10)%10);
- warm_ones = (warm_white_pwm%10);
- warm_tens = ((warm_white_pwm/10)%10);
- LED.sendDigits(warm_tens,warm_ones,cold_tens,cold_ones,1);
- }
- else
- {
- warm_white_pwm ++;
- cold_ones = (cold_white_pwm%10);
- cold_tens = ((cold_white_pwm/10)%10);
- warm_ones = (warm_white_pwm%10);
- warm_tens = ((warm_white_pwm/10)%10);
- LED.sendDigits(warm_tens,warm_ones,cold_tens,cold_ones,1);
- }
- }
- }
- void cold_white_pwm_decrease() {
- if(cold_white_pwm < 100 && cold_white_pwm > 0)
- {
- if(digitalRead(by_ten_modifire_button) == HIGH && cold_white_pwm > 11) //By 10 modifire
- {
- cold_white_pwm = cold_white_pwm - 10;
- cold_ones = (cold_white_pwm%10);
- cold_tens = ((cold_white_pwm/10)%10);
- warm_ones = (warm_white_pwm%10);
- warm_tens = ((warm_white_pwm/10)%10);
- LED.sendDigits(warm_tens,warm_ones,cold_tens,cold_ones,1);
- }
- else
- {
- cold_white_pwm --;
- cold_ones = (cold_white_pwm%10);
- cold_tens = ((cold_white_pwm/10)%10);
- warm_ones = (warm_white_pwm%10);
- warm_tens = ((warm_white_pwm/10)%10);
- LED.sendDigits(warm_tens,warm_ones,cold_tens,cold_ones,1);
- }
- }
- }
- void warm_white_pwm_decrease() {
- if(warm_white_pwm < 100 && warm_white_pwm > 0)
- {
- if(digitalRead(by_ten_modifire_button) == HIGH && warm_white_pwm > 11) //By 10 modifire
- {
- warm_white_pwm = warm_white_pwm - 10;
- cold_ones = (cold_white_pwm%10);
- cold_tens = ((cold_white_pwm/10)%10);
- warm_ones = (warm_white_pwm%10);
- warm_tens = ((warm_white_pwm/10)%10);
- LED.sendDigits(warm_tens,warm_ones,cold_tens,cold_ones,1);
- }
- else
- {
- warm_white_pwm --;
- cold_ones = (cold_white_pwm%10);
- cold_tens = ((cold_white_pwm/10)%10);
- warm_ones = (warm_white_pwm%10);
- warm_tens = ((warm_white_pwm/10)%10);
- LED.sendDigits(warm_tens,warm_ones,cold_tens,cold_ones,1);
- }
- }
- }
- void all_increase() {
- if(warm_white_pwm >= 0 && warm_white_pwm < 99 && cold_white_pwm >= 0 && cold_white_pwm < 99)
- {
- if(digitalRead(by_ten_modifire_button) == HIGH && warm_white_pwm < 89 && cold_white_pwm < 89) //By 10 modifire
- {
- warm_white_pwm = warm_white_pwm + 10;
- cold_white_pwm = cold_white_pwm + 10;
- cold_ones = (cold_white_pwm%10);
- cold_tens = ((cold_white_pwm/10)%10);
- warm_ones = (warm_white_pwm%10);
- warm_tens = ((warm_white_pwm/10)%10);
- LED.sendDigits(warm_tens,warm_ones,cold_tens,cold_ones,1);
- }
- else
- {
- warm_white_pwm ++;
- cold_white_pwm ++;
- cold_ones = (cold_white_pwm%10);
- cold_tens = ((cold_white_pwm/10)%10);
- warm_ones = (warm_white_pwm%10);
- warm_tens = ((warm_white_pwm/10)%10);
- LED.sendDigits(warm_tens,warm_ones,cold_tens,cold_ones,1);
- }
- }
- }
- void all_decrease() {
- if(warm_white_pwm < 100 && warm_white_pwm > 0 && cold_white_pwm < 100 && cold_white_pwm > 0)
- {
- if(digitalRead(by_ten_modifire_button) == HIGH && warm_white_pwm > 11 && cold_white_pwm > 11) //By 10 modifire
- {
- warm_white_pwm = warm_white_pwm - 10;
- cold_white_pwm = cold_white_pwm - 10;
- cold_ones = (cold_white_pwm%10);
- cold_tens = ((cold_white_pwm/10)%10);
- warm_ones = (warm_white_pwm%10);
- warm_tens = ((warm_white_pwm/10)%10);
- LED.sendDigits(warm_tens,warm_ones,cold_tens,cold_ones,1);
- }
- else
- {
- warm_white_pwm --;
- cold_white_pwm --;
- cold_ones = (cold_white_pwm%10);
- cold_tens = ((cold_white_pwm/10)%10);
- warm_ones = (warm_white_pwm%10);
- warm_tens = ((warm_white_pwm/10)%10);
- LED.sendDigits(warm_tens,warm_ones,cold_tens,cold_ones,1);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment