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);
}
            

