Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <SPI.h>
- #include <SD.h>
- #include <MD_MAX72xx.h>
- /////////////////////////////////
- //declarações
- File myFile;
- int tecla = 2;
- int leitura;
- int contador;
- char c;
- ///////////////////////////////
- // Numero de modulos utilizados
- #define MAX_DEVICES 2
- // Ligacoes matrix
- #define DATA_PIN 4
- #define CS_PIN 5
- #define CLK_PIN 6
- MD_MAX72XX mx = MD_MAX72XX(DATA_PIN, CLK_PIN, CS_PIN, MAX_DEVICES);
- // Velocidade do scroll
- #define SCROLL_DELAY 80
- // Colunas entre cada caracter
- #define CHAR_SPACING 1
- #define BUF_SIZE 75
- char curMessage[BUF_SIZE];
- char newMessage[BUF_SIZE];
- // int scrollDelay;
- uint8_t scrollDataSource(uint8_t dev, MD_MAX72XX::transformType_t t)
- {
- static char *p = curMessage;
- static uint8_t state = 0;
- static uint8_t curLen, showLen;
- static uint8_t cBuf[8];
- uint8_t colData;
- switch(state)
- {
- case 0:
- showLen = mx.getChar(*p++, sizeof(cBuf)/sizeof(cBuf[0]), cBuf);
- curLen = 0;
- state++;
- if (*p == '\0')
- {
- p = curMessage;
- }
- case 1:
- colData = cBuf[curLen++];
- if (curLen == showLen)
- {
- showLen = CHAR_SPACING;
- curLen = 0;
- state = 2;
- }
- break;
- case 2:
- colData = 0;
- curLen++;
- if (curLen == showLen)
- state = 0;
- break;
- default:
- state = 0;
- }
- return(colData);
- }
- void scrollText(void)
- {
- static uint32_t prevTime = 0;
- if (millis()-prevTime >= SCROLL_DELAY)
- {
- mx.transform(MD_MAX72XX::TSR);
- prevTime = millis();
- }
- }
- void setup(){
- mx.begin();
- mx.setShiftDataInCallback(scrollDataSource);
- // Define o nivel de luminosidade
- mx.control(MD_MAX72XX::INTENSITY, 1);
- ////////////////////////////////////////
- Serial.begin(9600);
- pinMode(tecla, INPUT);
- while (!Serial) {
- }
- if (!SD.begin(7)){return;}
- }
- void loop(){
- leitura = digitalRead(tecla);
- if (leitura != 0) {
- contador = contador + 1;
- while(digitalRead(tecla) != 0) {}
- }
- if(contador == 3){
- contador = 0;}
- ///////////////////////////////
- // caso 1
- if (contador == 0){
- myFile = SD.open("texto1.txt");
- if (myFile) {
- scrollText();
- while (myFile.available()) {
- c = (myFile.read());
- char msg[75];
- sprintf(msg, "%d", c);
- strcpy(curMessage, msg );
- Serial.print(msg);
- newMessage[0] = '\0';
- }
- // feixando
- myFile.close();
- }
- else {
- // erro de arquivo
- Serial.println("erro ao abrir o arquivo");
- }}
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement