Week 05
Example
int row[] = {2};
int numRows = sizeof(row)/sizeof(int);
int col[] = {3,4,5};
int numCols = sizeof(col)/sizeof(int);
void setup() {
off();
for(int i=0; i<numRows; i++){
digitalWrite(row[i], LOW);
}
for(int i=0; i<numCols; i++){
digitalWrite(col[i], HIGH);
}
on(0,0);
}
void loop() {
int disp1[2][2] = {{0,0},{0,1}};
multiOn(disp1, 2, 1000);
int disp2[2][2] = {{0,1},{0,2}};
multiOn(disp2, 2, 1000);
int disp3[2][2] = {{0,0},{0,2}};
multiOn(disp3, 2, 1000);
}
void off() {
for(int i=0; i<numRows; i++){
pinMode(row[i], INPUT);
}
for(int i=0; i<numCols; i++){
pinMode(col[i], INPUT);
}
}
void on(int rowNum, int colNum) {
off();
pinMode(row[rowNum], OUTPUT);
pinMode(col[colNum], OUTPUT);
}
void multiOn(int coords[][2], int numCoords, int timeMS) {
for(int t=0; t<timeMS/numCoords; t++){
for(int i=0; i<numCoords; i++){
on(coords[i][0], coords[i][1]);
delay(1);
}
}
}