Si, si al final lo tengo en el 53. El problema es que tengo la pantalla y el lector de micro sd. Si los pongo por separado me funcionan los dos pero en cuando combino los dos codigos, deja de funcionar. Adjunto el codigo:
#include <SD.h>
#include "RGBmatrixPanel.h"
#include "bit_bmp.h"
#include "fonts.h"
#include <string.h>
#include <stdlib.h>
#define CLK 11
#define OE 9
#define LAT 10
#define A A0
#define B A1
#define C A2
#define D A3
RGBmatrixPanel matrix(A, B, C, D, CLK, LAT, OE, false, 64);
void setup()
{
Serial.begin(115200);
while (!Serial) {
; // wait for serial port to connect. Needed for Leonardo only
}
Reginit();
matrix.begin();
Serial.println("Initializing SD card...");
if (!SD.begin(53)) {
Serial.println("initialization failed!");
return;
}
Serial.println("initialization done.");
delay(500);
}
void Reginit() {
pinMode(24, OUTPUT); //R1
pinMode(25, OUTPUT); //G1
pinMode(26, OUTPUT); //B1
pinMode(27, OUTPUT); //R2
pinMode(28, OUTPUT); //G2
pinMode(29, OUTPUT); //B2
pinMode(CLK, OUTPUT);
pinMode(OE, OUTPUT);
pinMode(LAT, OUTPUT);
digitalWrite(OE, HIGH);
digitalWrite(LAT, LOW);
digitalWrite(CLK, LOW);
int MaxLed = 64;
int C12[16] = {0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1};
int C13[16] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0};
for (int l = 0; l < MaxLed; l++)
{
int y = l % 16;
digitalWrite(24, LOW);
digitalWrite(25, LOW);
digitalWrite(26, LOW);
digitalWrite(27, LOW);
digitalWrite(28, LOW);
digitalWrite(29, LOW);
if (C12[y] == 1)
{
digitalWrite(24, HIGH);
digitalWrite(25, HIGH);
digitalWrite(26, HIGH);
digitalWrite(27, HIGH);
digitalWrite(28, HIGH);
digitalWrite(29, HIGH);
}
if (l > MaxLed - 12)
{
digitalWrite(LAT, HIGH);
}
else
{
digitalWrite(LAT, LOW);
}
digitalWrite(CLK, HIGH);
delayMicroseconds(2);
digitalWrite(CLK, LOW);
}
digitalWrite(LAT, LOW);
digitalWrite(CLK, LOW);
// Send Data to control register 12
for (int l = 0; l < MaxLed; l++)
{
int y = l % 16;
digitalWrite(24, LOW);
digitalWrite(25, LOW);
digitalWrite(26, LOW);
digitalWrite(27, LOW);
digitalWrite(28, LOW);
digitalWrite(29, LOW);
if (C13[y] == 1)
{
digitalWrite(24, HIGH);
digitalWrite(25, HIGH);
digitalWrite(26, HIGH);
digitalWrite(27, HIGH);
digitalWrite(28, HIGH);
digitalWrite(29, HIGH);
}
if (l > MaxLed - 13)
{
digitalWrite(LAT, HIGH);
}
else
{
digitalWrite(LAT, LOW);
}
digitalWrite(CLK, HIGH);
delayMicroseconds(2);
digitalWrite(CLK, LOW);
}
digitalWrite(LAT, LOW);
digitalWrite(CLK, LOW);
}
Si quito las siguientes lineas me funciona la SD:
Reginit();
matrix.begin();
o si quito estas otras, me funciona la pantalla
Serial.println("Initializing SD card...");
if (!SD.begin(53)) {
Serial.println("initialization failed!");
return;
}
Serial.println("initialization done.");
Pero si combino las dos, se jodió el invento.