const int led_pin_1 = 13;
const int led_pin_2 = 12;
const int led_pin_3 = 11;
const int freq = 2;
const int time = 1000;
const int default_state = LOW;
int blink(const int ledpin, const int state, const int freq, const int time);
void setup() {
pinMode(led_pin_1, OUTPUT);
pinMode(led_pin_2, OUTPUT);
pinMode(led_pin_3, OUTPUT);
}
void loop() {
blink(led_pin_1, default_state, freq, time);
blink(led_pin_2, default_state, freq, time);
blink(led_pin_3, default_state, freq, time);
}
/**
* Blink the led 'freq' number of times in 'time' milliseconds
* Invariants:
* ------------
* - Pause after every state change
* - Always end with the initial state
* - A cycle of blink is two state changes with two delays in between
* @ledpin: ledpin label
* @state: initial/default state HIGH or LOW
* @freq: frequency (> 0)
* @time: total time of event (> 0 in milliseconds)
* returns: number of blinks
*/
int blink(const int ledpin, const int state, const int freq, const int time) {
int x = 0;
for (x; x < freq; x++) {
digitalWrite(ledpin, !state);
delay(time / (2 * freq));
digitalWrite(ledpin, state);
delay(time / (2 * freq));
}
return freq;
}