Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Params for width and height
- const uint8_t kMatrixWidth = 10;
- const uint8_t kMatrixHeight = 5;
- #define NUM_LEDS (kMatrixWidth * kMatrixHeight)
- // Param for different pixel layouts
- const bool kMatrixSerpentineLayout = true;
- uint8_t row[NUM_LEDS];
- uint8_t column[NUM_LEDS];
- uint8_t findRow(uint8_t n)
- {
- row[n] = n / kMatrixWidth;
- return row[n];
- }
- uint8_t findColumn(uint8_t n)
- {
- if ( kMatrixSerpentineLayout == false) {
- column[n] = (n - (kMatrixWidth * (n / kMatrixWidth)));
- }
- if ( kMatrixSerpentineLayout == true) {
- if ( (n / kMatrixWidth) & 0x01) {
- // Odd rows run backwards
- column[n] = (kMatrixWidth - 1) - (n - (kMatrixWidth * (n / kMatrixWidth)));
- } else {
- // Even rows run forwards
- column[n] = (n - (kMatrixWidth * (n / kMatrixWidth)));
- }
- }
- return column[n];
- }
- void setup() {
- delay(3000);
- Serial.begin(9600);
- while (!Serial);
- //Print labels
- Serial.print("LED");
- Serial.print("\t");
- Serial.print("ROW");
- Serial.print("\t");
- Serial.print("COLUMN");
- Serial.println("\t");
- for ( uint8_t n = 0; n < NUM_LEDS; n++) {
- findRow(n);
- findColumn(n);
- Serial.print(n);
- Serial.print("\t");
- Serial.print(row[n]);
- Serial.print("\t");
- Serial.print(column[n]);
- Serial.println("\t");
- }
- }
- void loop() {
- // put your main code here, to run repeatedly:
- }
Advertisement
Add Comment
Please, Sign In to add comment