Created
May 29, 2021 09:18
-
-
Save pknowledge/90e4a819b791f02518e74303a504a269 to your computer and use it in GitHub Desktop.
Arduino Tutorial for Beginners – LED Matrix With Arduino
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#define ROW_1 2 | |
#define ROW_2 3 | |
#define ROW_3 4 | |
#define ROW_4 5 | |
#define ROW_5 6 | |
#define ROW_6 7 | |
#define ROW_7 8 | |
#define ROW_8 9 | |
#define COL_1 10 | |
#define COL_2 11 | |
#define COL_3 12 | |
#define COL_4 13 | |
#define COL_5 A0 | |
#define COL_6 A1 | |
#define COL_7 A2 | |
#define COL_8 A3 | |
const byte rows[] = { | |
ROW_1, ROW_2, ROW_3, ROW_4, ROW_5, ROW_6, ROW_7, ROW_8 | |
}; | |
byte A[] = { B00011000, B00111100, B01100110, B01100110, B01111110, B01111110, B01100110, B01100110 }; | |
byte B[] = { B01111100, B01100110, B01100110, B01111100, B01111110, B01100110, B01100110, B01111100 }; | |
byte C[] = { B00111110, B01111110, B01100000, B01100000, B01100000, B01100000, B01111110, B00111110 }; | |
byte D[] = { B01111000, B01111100, B01100110, B01100110, B01100110, B01100110, B01111100, B01111000 }; | |
byte E[] = { B01111110, B01111110, B01100000, B01111110, B01111110, B01100000, B01111110, B01111110 }; | |
byte F[] = { B01111110, B01111110, B01100000, B01111100, B01111100, B01100000, B01100000, B01100000 }; | |
byte G[] = { B00111000, B01111100, B01100100, B01100000, B01101110, B01100100, B01111100, B00111000 }; | |
byte H[] = { B01100110, B01100110, B01100110, B01111110, B01111110, B01100110, B01100110, B01100110 }; | |
byte I[] = { B01111110, B01111110, B00011000, B00011000, B00011000, B00011000, B01111110, B01111110 }; | |
byte J[] = { B01111110, B01111110, B00011000, B00011000, B00011000, B00011000, B01111000, B01110000 }; | |
byte K[] = { B01100110, B01101100, B01111000, B01110000, B01110000, B01111000, B01101100, B01100110 }; | |
byte L[] = { B01100000, B01100000, B01100000, B01100000, B01100000, B01100000, B01111110, B01111110 }; | |
byte M[] = { B01000010, B01100110, B01111110, B01011010, B01000010, B01000010, B01000010, B01000010 }; | |
byte N[] = { B01000110, B01100110, B01100110, B01110110, B01111110, B01101110, B01100110, B01100110 }; | |
byte O[] = { B00111100, B01111110, B01100110, B01100110, B01100110, B01100110, B01111110, B00111100 }; | |
byte P[] = { B01111000, B01111100, B01100110, B01100110, B01111100, B01111000, B01100000, B01100000 }; | |
byte Q[] = { B00111100, B01000010, B01000010, B01000010, B01000010, B01001010, B00111100, B00000010 }; | |
byte R[] = { B01111100, B01100110, B01100110, B01101100, B01111000, B01111000, B01101100, B01100110 }; | |
byte S[] = { B00111100, B01111110, B01100000, B01111100, B00111110, B00000110, B01111110, B00111100 }; //{B00111000,B01111100,B01100000,B00110000,B00011000,B00001100,B00111100,B01111000}; | |
byte T[] = { B01111110, B01111110, B00011000, B00011000, B00011000, B00011000, B00011000, B00011000 }; | |
byte U[] = { B01100110, B01100110, B01100110, B01100110, B01100110, B01100110, B01111110, B00111100 }; | |
byte V[] = { B01100110, B01100110, B01100110, B01100110, B01100110, B01100110, B00111100, B00011000 }; | |
byte W[] = { B01000010, B01000010, B01000010, B01000010, B01000010, B01011010, B01011010, B00100100 }; | |
byte X[] = { B01100110, B01100110, B01100110, B00111100, B00011000, B00111100, B01100110, B01100110 }; | |
byte Y[] = { B01100110, B01100110, B01100110, B01111110, B00111100, B00011000, B00011000, B00011000 }; | |
byte Z[] = { B01111110, B01111110, B00000110, B00001100, B00011000, B00110000, B01111110, B01111110 }; | |
byte Zero[] = { B00111100, B01111110, B01100110, B01100110, B01100110, B01100110, B01111110, B00111100 }; | |
byte One[] = { B00011000, B00111000, B01111000, B00011000, B00011000, B00011000, B01111110, B01111110 }; | |
byte Two[] = { B00111100, B01111110, B01000110, B00001100, B00011000, B00110000, B01111110, B01111110 }; | |
byte Three[] = { B01111100, B01111110, B00000110, B00111110, B00111110, B00000110, B01111110, B01111100 }; | |
byte Four[] = { B00001100, B00011100, B00111100, B01101100, B01111110, B01111110, B00001100, B00001100 }; | |
byte Five[] = { B01111110, B01111110, B01100000, B01111100, B00111110, B00000110, B01111110, B01111100 }; | |
byte Six[] = { B00001100, B00011000, B00110000, B01111100, B01111110, B01100110, B01100110, B00111100 }; | |
byte Seven[] = { B01111110, B01111110, B00000110, B00000110, B00001100, B00011000, B00110000, B01100000 }; | |
byte Eight[] = { B00111100, B01100110, B01100110, B00111100, B01111110, B01100110, B01100110, B00111100 }; | |
byte Nine[] = { B00111100, B01100110, B01100110, B01111110, B00111110, B00001100, B00011000, B00110000 }; | |
void setColumns(byte b) | |
{ | |
digitalWrite(COL_1, (~b >> 0) & 0x01); // Get the 1st bit: 10000000 | |
digitalWrite(COL_2, (~b >> 1) & 0x01); // Get the 2nd bit: 01000000 | |
digitalWrite(COL_3, (~b >> 2) & 0x01); // Get the 3rd bit: 00100000 | |
digitalWrite(COL_4, (~b >> 3) & 0x01); // Get the 4th bit: 00010000 | |
digitalWrite(COL_5, (~b >> 4) & 0x01); // Get the 5th bit: 00001000 | |
digitalWrite(COL_6, (~b >> 5) & 0x01); // Get the 6th bit: 00000100 | |
digitalWrite(COL_7, (~b >> 6) & 0x01); // Get the 7th bit: 00000010 | |
digitalWrite(COL_8, (~b >> 7) & 0x01); // Get the 8th bit: 00000001 | |
} | |
void drawScreen(byte buffer2[]) | |
{ | |
for (byte i = 0; i < 8; i++) { | |
setColumns(buffer2[i]); // Set columns for this specific row | |
digitalWrite(rows[i], HIGH); | |
delay(2); // Set this to 50 or 100 if you want to see the multiplexing effect! | |
digitalWrite(rows[i], LOW); | |
} | |
} | |
void setup() | |
{ | |
// Serial.begin(9600); | |
for (byte i = 2; i <= 13; i++) | |
pinMode(i, OUTPUT); | |
pinMode(A0, OUTPUT); | |
pinMode(A1, OUTPUT); | |
pinMode(A2, OUTPUT); | |
pinMode(A3, OUTPUT); | |
} | |
void loop() | |
{ | |
drawScreen(A); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment