const int leftToRight[] = {23, 22, 33, 21, 19};
const int rightToLeft[] = {18, 5, 17, 16, 4};
const int oddEven[] = {2, 15, 32, 26, 25};
const int longDelay = 100;
const int shortDelay = 50;
int one = 1;
int two = 2;
int three = 3;
void setup() {
for (int i = 0; i < 5; i++) {
pinMode(leftToRight[i], OUTPUT);
pinMode(rightToLeft[i], OUTPUT);
pinMode(oddEven[i], OUTPUT);
}
xTaskCreate(blinkIt, "Left to Right", 1000, (void*)&one, 1, NULL);
xTaskCreate(blinkIt, "Right to Left", 1000, (void*)&two, 2, NULL);
xTaskCreate(blinkIt, "Odd and Even", 1000, (void*)&three, 3, NULL);
}
void blinkIt(void* parameters) {
int blinkStyle = *((int*)parameters);
while (1) {
switch (blinkStyle) {
case 1:
leftRight();
break; // Added break statement
case 2:
rightLeft();
break; // Added break statement
case 3:
OddEven();
break; // Added break statement
}
}
}
void leftRight() {
for (int i = 0; i < 5; i++) {
digitalWrite(leftToRight[i], HIGH);
vTaskDelay(longDelay / portTICK_PERIOD_MS);
digitalWrite(leftToRight[i], LOW);
vTaskDelay(shortDelay / portTICK_PERIOD_MS);
}
}
void rightLeft() {
for (int i = 4; i >= 0; i--) {
digitalWrite(rightToLeft[i], HIGH);
vTaskDelay(longDelay / portTICK_PERIOD_MS);
digitalWrite(rightToLeft[i], LOW);
vTaskDelay(shortDelay / portTICK_PERIOD_MS);
}
}
void OddEven() {
digitalWrite(oddEven[0], HIGH);
digitalWrite(oddEven[2], HIGH);
digitalWrite(oddEven[4], HIGH);
vTaskDelay(longDelay / portTICK_PERIOD_MS);
digitalWrite(oddEven[0], LOW);
digitalWrite(oddEven[2], LOW);
digitalWrite(oddEven[4], LOW);
vTaskDelay(shortDelay / portTICK_PERIOD_MS);
digitalWrite(oddEven[1], HIGH);
digitalWrite(oddEven[3], HIGH);
vTaskDelay(longDelay / portTICK_PERIOD_MS);
digitalWrite(oddEven[1], LOW);
digitalWrite(oddEven[3], LOW);
vTaskDelay(shortDelay / portTICK_PERIOD_MS);
}
void loop() {
}