/*
************************************************************************************************************
Title: Project 5 | led blinking
Author: TecnoTronics
Date: March 20, 2023
Description: Make a simple Blinking LED ON and OFF
Hardware: - Arduino Uno
- LED
- 220 ohm Resistor
- Red LED
- Yello LLED
- Push Button
- Breadboard
- Jumper wires
************************************************************************************************************
*/
#define BTN_PIN 2
#define LED_PIN 12
int COUNTER = 0;
const int LEDs_PINs[8] = {3, 4, 5, 6, 7, 8, 9, 10};
const int customMode[8][8] {
{1, 0, 0, 0, 0, 0, 0, 1},
{1, 1, 0, 0, 0, 0, 1, 1},
{1, 1, 1, 0, 0, 1, 1, 1},
{1, 1, 1, 1, 1, 1, 1, 1},
{1, 1, 1, 0, 0, 1, 1, 1},
{1, 1, 0, 0, 0, 0, 1, 1},
{1, 0, 0, 0, 0, 0, 0, 1},
{0, 0, 0, 0, 0, 0, 0, 0},
};
void setup() {
for (int i = 0; i <= 7; i++) {
pinMode(LEDs_PINs[i], OUTPUT);
}
pinMode(BTN_PIN, INPUT_PULLUP);
pinMode(LED_PIN, OUTPUT);
}
void loop() {
int BTN_STAT = digitalRead(BTN_PIN);
if (BTN_STAT == 0) {
COUNTER++;
if (COUNTER > 5) {
COUNTER = 0;
}
digitalWrite(LED_PIN, HIGH);
delay(3000);
digitalWrite(LED_PIN, LOW);
}
switch (COUNTER) {
case 0:
RIGHT_TO_LEFT();
break;
case 1:
LEFT_TO_RIGTHT();
break;
case 2:
GO_AND_BACK();
break;
case 3:
GO_AND_BACK_HIGH_AND_LOW();
break;
case 4:
LED_BY_LED();
break;
case 5:
CUSTOM_MODE();
break;
default:
break;
}
}
void RESET_PINs() {
for (int i = 0; i <= 7; i++) {
digitalWrite(LEDs_PINs[i], LOW);
}
}
void RIGHT_TO_LEFT() {
RESET_PINs();
for (int i = 0; i <= 7; i++) {
digitalWrite(LEDs_PINs[i], HIGH);
delay(250);
}
}
void LEFT_TO_RIGTHT() {
RESET_PINs();
for (int j = 7; j >= 0; j--) {
digitalWrite(LEDs_PINs[j], HIGH);
delay(250);
}
}
void GO_AND_BACK() {
RESET_PINs();
for (int i = 0; i <= 7; i++) {
digitalWrite(LEDs_PINs[i], HIGH);
delay(250);
}
for (int j = 7; j >= 0; j--) {
digitalWrite(LEDs_PINs[j], LOW);
delay(250);
}
}
void GO_AND_BACK_HIGH_AND_LOW() {
RESET_PINs();
for (int i = 0; i <= 7; i++) {
digitalWrite(LEDs_PINs[i], HIGH);
delay(250);
}
for (int i = 0; i <= 7; i++) {
digitalWrite(LEDs_PINs[i], LOW);
delay(250);
}
for (int j = 7; j >= 0; j--) {
digitalWrite(LEDs_PINs[j], HIGH);
delay(250);
}
for (int j = 7; j >= 0; j--) {
digitalWrite(LEDs_PINs[j], LOW);
delay(250);
}
}
void LED_BY_LED() {
RESET_PINs();
for (int i = 0; i <= 7; i++) {
for (int j = 0; j <= 7; j++) {
if (i == j) {
digitalWrite(LEDs_PINs[j], HIGH);
}
else {
digitalWrite(LEDs_PINs[j], LOW);
}
}
delay(250);
}
}
void CUSTOM_MODE() {
RESET_PINs();
for (int i = 0; i <= 7; i++) {
for (int j = 0; j <= 7; j++) {
digitalWrite(LEDs_PINs[j], customMode[i][j]);
}
delay(250);
}
}