5x7 dot matrix

Hi all! I was trying to get a 5x7 dot matrix to work. I started with this:

int columns[]={13, 12, 11, 10, 9};
int rows[]={8, 7, 6, 5, 4, 3, 2};
void setup(){
  for(int i=0; i<=4; i++){
    pinMode(columns[i], OUTPUT);
  }
  for(int i=0; i<=6; i++){
    pinMode(rows[i], OUTPUT);
  }
}
void loop(){
  dot(2, 1);
}
void dot(int col, int row){
  for(int i=0; i<4; i++){
    digitalWrite(rows[i], LOW);
  }
  for(int i=0; i<6; i++){
    digitalWrite(columns[i], HIGH);
  }
  digitalWrite(rows[row], LOW);
  digitalWrite(columns[col], HIGH);
}

and what I get is a whole row lighting up. Why is this?

void dot(int col, int row)
{
  for(int i=0; i<4; i++)
  {
    digitalWrite(rows[i], LOW);
  }
  for(int i=0; i<6; i++)
  {
    digitalWrite(columns[i], HIGH);
  }
  digitalWrite(rows[row], LOW);
  digitalWrite(columns[col], HIGH);
}

It looks to me as though your rows and columns are mixed up in this function. Also   for(int i=0; i<6; i++)loops 6 times and   for(int i=0; i<4; i++) loops 4 times but you say that your matrix is 5x7

How are the LEDs wired ?

Delete all the hardcoded literal values for the number of rows and columns, and replace them with defined constants. For example:

const byte COLUMN_COUNT = 5;
const byte ROW_COUNT = 7;

When looping through rows and columns always use these values, like this:

for(int r = 0; r < ROW_COUNT; r++)
{
  digitalWrite(rows[r], LOW);
}
for(int c = 0; c < COLUMN_COUNT; c++)
{
  digitalWrite(columns[c], HIGH);
}

Thanks a lot. I modified the code, here it is.

int columns[]={13, 12, 11, 10, 9};
int rows[]={8, 7, 6, 5, 4, 3, 2};
const byte COLUMN_COUNT=5;
const byte ROW_COUNT=7;
void setup(){
  for(int i=0; i<=4; i++){
    pinMode(columns[i], OUTPUT);
  }
  for(int i=0; i<=6; i++){
    pinMode(rows[i], OUTPUT);
  }
}
void loop(){
  dot(2, 1);
}
void dot(int col, int row){
  for(int i=0; i<=4; i++){
    digitalWrite(rows[i], HIGH);
  }
  for(int i=0; i<=6; i++){
    digitalWrite(columns[i], LOW);
  }
  digitalWrite(rows[row], LOW);
  digitalWrite(columns[col], HIGH);
}

My dot matrix is a generic 12 pin 5x7, I don't have a schematic. After modifing the code, the first, second, sixth and seventh rows of the first column light up.

arduinohabib:
Thanks a lot. I modified the code, here it is.

You have added the constant definitions but you have completely ignored all the other suggestions I made.

Oops... Sorry.

Why use ints to count from 0 to less than 10?
Was that a conscious choice or just following a grooved-in habit to save actual thinking?