Advertisement
RuiViana

SD_Read_Linha

Jun 28th, 2016
229
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.35 KB | None | 0 0
  1. #include <SD.h> // Biblioteca SD card
  2. File MeuArquivo; // Instancia meu arquivo
  3.  
  4. char Conteudo = 0; // Valores lido do arquivo
  5. char Temp2 = 0; // Valor se utilidade
  6. char Digitado = 0; // Valor digitado na serial
  7. byte Lido = 0; // Valor lido nas duas primeiras posicoes do SD card
  8. String Temp1 = "" ; // Valor temporario para conversao
  9. //---------------------------------
  10. void setup()
  11. {
  12. Serial.begin(9600); // Inicialisa serial
  13.  
  14. while (!Serial) // Aguarda pela comunicacao com a serial. Somente port USB nativo
  15. {
  16. ;
  17. }
  18. if (!SD.begin(4)) // Se nao encontro o SD card
  19. {
  20. Serial.println("Falha na inicializacao"); // Print
  21. return; // Retorna
  22. }
  23. Serial.println("inicializacao estabelecida."); // Print
  24. }
  25. //---------------------------------
  26. void loop()
  27. {
  28. while (Digitado == 0) // Enquanto valor dsigitado na serial for zero
  29. {
  30. while (Serial.available() > 0) // Se existir valor na serial
  31. {
  32. Digitado = Serial.parseInt(); // Le valor digitado
  33. }
  34. }
  35.  
  36. MeuArquivo = SD.open("test.txt"); // Abre arquivo teste.txt para leitura
  37. if (MeuArquivo) // Se abriu, faca
  38. {
  39. while (MeuArquivo.available()) // Enquanto tiver linhas no arquivo
  40. {
  41. Conteudo = MeuArquivo.read(); // Le primeira posição da linha
  42. Lido = Conteudo & 0x0F; // Separa a parte baixa do byte lido
  43. Conteudo = MeuArquivo.read(); // Le segunda posição da linha
  44. Lido = Lido << 4 | (Conteudo & 0x0F); // Convete valor para Hexa
  45. Temp1 = String(Lido, HEX); // Transforma em string como Hexa
  46. Lido = Temp1.toInt(); // Transforma para int
  47. while (Temp2 != 0x0A) // Enquanto não for fim de linha faca
  48. {
  49. if (Lido == Digitado) // Se valor lido na linha for igual valor a digitado
  50. {
  51. Conteudo = MeuArquivo.read(); // Leia o valor nas proximas posicoes da linha
  52. Temp2 = Conteudo; // Guarda valor pra saber qdo acaba linha
  53. Serial.print(Conteudo); // mostra valor lido
  54. }
  55. else // Se valor lido na linha for diferente de valor digitado
  56. {
  57. Temp2 = MeuArquivo.read(); // Dispensa valores lidos
  58. }
  59. }
  60. Temp2 = 0; // Limpa valor em Temp2
  61. Lido = 0; // Limpa valor lido
  62. }
  63. MeuArquivo.close(); // Fecha arquivo de dados
  64. }
  65. else // Se nao abriu, faca
  66. {
  67. Serial.println("erro abrindo test.txt"); // Print
  68. }
  69. Digitado = 0; // Prepara para receber nova digitacao
  70. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement