Hi guys, i want to learn how multiplexing LED using arduino, so i create 3x3 LED connected to my arduino. row(anode) connected to pin 8,9,10. coloum(cathode) connected resistor then to pin 2,3,4
basicly i set each row HIGH step by step, then i set coloum to LOW to turn on the LED i want.
it works, but i get problem that if i set delay time faster, my LED will be more dim. I dont know what's the reason.
Here is the code i use
int a = 1000; //delay time
void setup() {
pinMode(2, OUTPUT); // 2, 3, 4 is chatode
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(8, OUTPUT); // 8, 9, 10 is anode
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
digitalWrite(8, HIGH);
digitalWrite(9, HIGH);
digitalWrite(10, HIGH);
}
void loop() { // this is for turn on the first led on first row
scanFirstRow();
delay(a);
turnon1();
delay(a);
scanSecondRow();
delay(a);
scanThirdRow();
delay(a);
}
void scanFirstRow() { // this is for scanning first row
digitalWrite(8, HIGH);
digitalWrite(9, LOW);
digitalWrite(10, LOW);
}
void scanSecondRow() { // this is for scanning second row
digitalWrite(8, LOW);
digitalWrite(9, HIGH);
digitalWrite(10, LOW);
}
void scanThirdRow() { // this is for scanning third row
digitalWrite(8, LOW);
digitalWrite(9, LOW);
digitalWrite(10, HIGH);
}
void turnon1(){ // this is for turn on first light on first row
digitalWrite(2, LOW);
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
delay(a);
digitalWrite(2, HIGH);
}


