const int button_pins_array[] = {7, 6, 5, 4};
const int led_pins_array[] = {8, 9, 10, 11};
int button_state_array[4];
unsigned long time_from_start = 0;
unsigned long time_passed = 0;
int blink_time = 300;
int blink_time_increment = 100;
int brightness = 0; // how bright the LED is
int fade_amount = 5; // how many points to fade the LED by
void handle_button_states() {
// Read button states and invert logic (active low)
for (int i = 0; i < 4; i++) {
button_state_array[i] = !digitalRead(button_pins_array[i]);
}
}
void change_blink_frequency() {
if (button_state_array[1] == HIGH) {
blink_time += blink_time_increment;
delay(200); // Short delay to debounce button press
Serial.println(blink_time);
}
else if (( button_state_array[2] == HIGH ) && ( blink_time >= blink_time_increment )) {
blink_time -= blink_time_increment;
delay(200); // Short delay to debounce button press
Serial.println(blink_time);
}
}
void blink_led(int pin_number) {
time_from_start = millis();
if((time_from_start - time_passed) > blink_time) {
time_passed = time_from_start;
if (digitalRead(pin_number) == LOW) {
digitalWrite(pin_number, HIGH);
}
else {
digitalWrite(pin_number, LOW);
}
}
}
void change_fade_amount() {
if (button_state_array[2] == HIGH) {
void dimming_led(led_pins_array[2]);
delay(200); // Short delay to debounce button press
Serial.println(blink_time);
}
else if (( button_state_array[2] == HIGH ) && ( blink_time >= blink_time_increment )) {
blink_time -= blink_time_increment;
delay(200); // Short delay to debounce button press
Serial.println(blink_time);
}
}
int dimming_led(int pin_number) {
// set the brightness of the pin
analogWrite(pin_number, brightness);
// change the brightness for next time through the loop:
brightness = brightness + fade_amount;
// reverse the direction of the fading at the ends of the fade:
if (brightness <= 0 || brightness >= 255) {
fade_amount = -fade_amount;
}
// wait for 30 milliseconds to see the dimming effect
//delay(30);
}
void outputs() {
if ((button_state_array[0] == HIGH)) {
digitalWrite(led_pins_array[0], HIGH);
}
else {
digitalWrite(led_pins_array[0], LOW);
}
}
void setup() {
Serial.begin(9600);
// Initialize button pins as input with pull-up resistors
for (int i = 0; i < 4; i++) {
pinMode(button_pins_array[i], INPUT_PULLUP);
}
// Initialize LED pins as output
for (int i = 0; i < 4; i++) {
pinMode(led_pins_array[i], OUTPUT);
}
}
void loop() {
handle_button_states();
blink_led(led_pins_array[1]);
void change_fade_amount()
change_blink_frequency();
outputs();
}