So i made an 3x3 led matrix (this is the first time i am using arduino and this language btw), and i made this code taken from various sources (the multiplexing thing got me mad), but it seams kinda repetitive is there another way to do it ?
2,3,4, are anodes and 567 are catodes, and here is the code:
void setup() {
pinMode (2, OUTPUT);
pinMode (3, OUTPUT);
pinMode (4, OUTPUT);
pinMode (5, OUTPUT);
pinMode (6, OUTPUT);
pinMode (7, OUTPUT);
}
void loop() {
for(int a= 0; a <70; a++){
digitalWrite(4, HIGH);
digitalWrite(5, HIGH);
digitalWrite(7, HIGH);
delay(1);
digitalWrite(4, LOW);
digitalWrite(5, LOW);
digitalWrite(7, LOW);
digitalWrite(3, HIGH);
digitalWrite(5, HIGH);
digitalWrite(7, HIGH);
delay(1);
digitalWrite(3, LOW);
digitalWrite(5, LOW);
digitalWrite(7, LOW);
digitalWrite(2, HIGH);
digitalWrite(5, HIGH);
digitalWrite(7, HIGH);
delay(1);
digitalWrite(2, LOW);
digitalWrite(5, LOW);
digitalWrite(7, LOW);
}
for(int b= 0; b <70; b++){
digitalWrite(2, HIGH);
digitalWrite(6, HIGH);
digitalWrite(7, HIGH);
delay(1);
digitalWrite(2, LOW);
digitalWrite(6, LOW);
digitalWrite(7, LOW);
digitalWrite(3, HIGH);
digitalWrite(5, HIGH);
digitalWrite(7, HIGH);
delay(1);
digitalWrite(3, LOW);
digitalWrite(5, LOW);
digitalWrite(7, LOW);
digitalWrite(4, HIGH);
digitalWrite(5, HIGH);
digitalWrite(6, HIGH);
delay(1);
digitalWrite(4, LOW);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
}
for(int c= 0; c <70; c++){
digitalWrite(3, HIGH);
digitalWrite(6, HIGH);
digitalWrite(7, HIGH);
delay(1);
digitalWrite(3, LOW);
digitalWrite(6, LOW);
digitalWrite(7, LOW);
digitalWrite(3, HIGH);
digitalWrite(5, HIGH);
digitalWrite(7, HIGH);
delay(1);
digitalWrite(3, LOW);
digitalWrite(5, LOW);
digitalWrite(7, LOW);
digitalWrite(3, HIGH);
digitalWrite(5, HIGH);
digitalWrite(6, HIGH);
delay(1);
digitalWrite(3, LOW);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
}
for(int d= 0; d <70; d++){
digitalWrite(4, HIGH);
digitalWrite(6, HIGH);
digitalWrite(7, HIGH);
delay(1);
digitalWrite(4, LOW);
digitalWrite(6, LOW);
digitalWrite(7, LOW);
digitalWrite(3, HIGH);
digitalWrite(5, HIGH);
digitalWrite(7, HIGH);
delay(1);
digitalWrite(3, LOW);
digitalWrite(5, LOW);
digitalWrite(7, LOW);
digitalWrite(2, HIGH);
digitalWrite(5, HIGH);
digitalWrite(6, HIGH);
delay(1);
digitalWrite(2, LOW);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
}
}