//definings rows
int Row_1 = 5;
int Row_2 = 4;
int Row_3 = 3;
int Row_4 = A3;
int Row_5 = A4;
int Row_6 = A0;
int Row_7 = A1;
int Row_8 = A2;
//defining columns.
int Column_1 = 6;
int Column_2 = 7;
int Column_3 = 8;
int Column_4 = 9;
int Column_5 = 10;
int Column_6 = 11;
int Column_7 = 12;
int Column_8 = 13;
int position = 0;
void setup() {
pinMode(Row_1, OUTPUT);
pinMode(Row_2, OUTPUT);
pinMode(Row_3, OUTPUT);
pinMode(Row_4, OUTPUT);
pinMode(Row_5, OUTPUT);
pinMode(Row_6, OUTPUT);
pinMode(Row_7, OUTPUT);
pinMode(Row_8, OUTPUT);
pinMode(Column_1, OUTPUT);
pinMode(Column_2, OUTPUT);
pinMode(Column_3, OUTPUT);
pinMode(Column_4, OUTPUT);
pinMode(Column_5, OUTPUT);
pinMode(Column_6, OUTPUT);
pinMode(Column_7, OUTPUT);
pinMode(Column_8, OUTPUT);
digitalWrite(Row_1, HIGH);
digitalWrite(Row_2, HIGH);
digitalWrite(Row_3, HIGH);
digitalWrite(Row_4, HIGH);
digitalWrite(Row_5, HIGH);
digitalWrite(Row_6, HIGH);
digitalWrite(Row_7, HIGH);
digitalWrite(Row_8, HIGH);
digitalWrite(Column_1, LOW);
digitalWrite(Column_2, LOW);
digitalWrite(Column_3, LOW);
digitalWrite(Column_4, LOW);
digitalWrite(Column_5, LOW);
digitalWrite(Column_6, LOW);
digitalWrite(Column_7, LOW);
digitalWrite(Column_8, LOW);
}
void SelectRow(int row) {
if (row == 1) {
digitalWrite(Row_1, LOW);
}
else {
digitalWrite(Row_1, HIGH);
}
if (row == 2) {
digitalWrite(Row_2, LOW);
}
else {
digitalWrite(Row_2, HIGH);
}
if (row == 3) {
digitalWrite(Row_3, LOW);
}
else {
digitalWrite(Row_3, HIGH);
}
if (row == 4) {
digitalWrite(Row_4, LOW);
}
else {
digitalWrite(Row_4, HIGH);
}
if (row == 5) {
digitalWrite(Row_5, LOW);
}
else {
digitalWrite(Row_5, HIGH);
}
if (row == 6) {
digitalWrite(Row_6, LOW);
}
else {
digitalWrite(Row_6, HIGH);
}
if (row == 7) {
digitalWrite(Row_7, LOW);
}
else {
digitalWrite(Row_7, HIGH);
}
if (row == 8) {
digitalWrite(Row_8, LOW);
}
else {
digitalWrite(Row_8, HIGH);
}
}
// passing column number and signal value to the function.
void Setting_Name(int column, int led_state) {
if (column == 1) digitalWrite(Column_1, led_state);
if (column == 2) digitalWrite(Column_2, led_state);
if (column == 3) digitalWrite(Column_3, led_state);
if (column == 4) digitalWrite(Column_4, led_state);
if (column == 5) digitalWrite(Column_5, led_state);
if (column == 6) digitalWrite(Column_6, led_state);
if (column == 7) digitalWrite(Column_7, led_state);
if (column == 8) digitalWrite(Column_8, led_state);
}
// creating Dawood
int Dawood[8][40] =
{
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0},
{0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0},
{0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0},
{0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0},
{0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
};
void loop() {
for (int i = 0; i < 20; i++)
{
for (int r = 0; r < 8; r++)
{
SelectRow(r + 1);
for (int c = 0; c < 8; c++)
{
Setting_Name(c + 1, Dawood[r][(c + position) - abs((c + position) / 40) * 40]); // scaning the row table
}
delay(1);
}
}
position = position + 1;
}