Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <SPI.h> // Incluímos as bibliotecas necessárias
- #include <SD.h> // Para o funcionamento do módulo
- File arquivo; // Dizemos que nosso arquivo é da classe File
- int recNum = 0; // Contador de linhas
- #include<EEPROM.h > // Biblioteca de EEPROM
- int ponteiro = 1; // Numero da linha salvo na EEPROM
- #define Abotao 7 // Botão A de acionar leitura no port 7
- #define Bbotao 8 // Botao B para inicializar port 8
- int flag = 0; // Controle do botao
- String list = "";
- //-----------------------------------------
- void sdRead() //essa função vai ler o nosso arquivo e escrever na serial
- {
- arquivo = SD.open("ARDUINO.txt"); // como sempre, devemos abrir nosso arquivo antes de qualquer operação, note que para ler é só abrir o arquivo
- if (arquivo) // verificamos se foi aberto para podermos manipular o arquivo
- {
- if (arquivo.available()) // Se o nosso arquivo está disponível...
- {
- while (recNum != ponteiro) // Enquanto forem diferentes
- {
- list = arquivo.readStringUntil('\r'); // Leia uma linha até encontra linha ponteiro
- recNum++; // Incremente contador
- }
- Serial.println(list);
- if (recNum == ponteiro) // Se encontrou a linha
- {
- EEPROM.put(0,recNum); // Salva valor da ultima linha lida
- // int xpto = EEPROM.get(0,ponteiro);
- // Serial.print("recNum :");Serial.println(xpto);
- }
- ponteiro = recNum + 1;
- recNum = 0;
- }
- }
- else // se o arquivo não foi aberto...
- {
- Serial.println("Erro ao ler ARDUINO.txt"); // imprimimos na serial que não foi possível ler
- }
- arquivo.close(); // e por fim, fechamos nosso arquivo
- }
- //-----------------------------------------
- void setup()
- {
- Serial.begin(9600); // iniciamos a serial com 9600 bauds
- pinMode(Abotao, INPUT_PULLUP);
- pinMode(Bbotao, INPUT_PULLUP); // Botao de inicialiuzacao como entrada pullup
- // while (!Serial) ;
- Serial.print("Iniciando SDCard..."); // escrevemos na serial que estamos iniciando o SDCard
- if (!SD.begin(4)) // se o sdcard com o CS na 4 não for iniciado
- {
- Serial.println("Falhou."); //escrevemos na serial que falhou
- return;
- }
- EEPROM.get(0,ponteiro); // Le o valor guardado na EEPROM
- Serial.println(ponteiro,HEX);
- Serial.println("Terminado."); // dizemos q a tentativa de iniciar terminou
- Serial.println("Aperte A para proxima linha e B para reiniciar");
- }
- //-----------------------------------------
- void loop()
- {
- if (digitalRead(Bbotao) == LOW) // Se botao B foi pressionado
- {
- delay(30); // Deboucing
- if (digitalRead(Bbotao) == LOW) // Se botao B continua pressionado
- {
- ponteiro = 1; // Reinicia leitura
- recNum = 0;
- }
- }
- //Serial.println(digitalRead(botao));
- if (digitalRead(Abotao) == HIGH) // Se botao A esta liberado
- {
- flag = 0;
- }
- if (flag == 0) // Se não foi pressionado botao
- {
- if (digitalRead(Abotao) == LOW) // Se botao A foi pressionado
- {
- delay(30); // Deboucing
- if (digitalRead(Abotao) == LOW) // Se botao A continua pressionado
- {
- flag = 1; // Informa que botao A foi pressionado
- sdRead(); // Chamar metodo de leitura
- }
- }
- }
- }
- //---------------------------------------
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement