Leitura de Cartão SD e comparação de dados - Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)2024-03-28T18:18:08Zhttps://labdegaragem.com/forum/topics/leitura-de-cart-o-sd-e-compara-o-de-dados?feed=yes&xn_auth=noOlá meu amigo EDS!
Concordo c…tag:labdegaragem.com,2017-05-22:6223006:Comment:6134532017-05-22T15:43:06.727ZMarcio A. Pinheirohttps://labdegaragem.com/profile/MarcioAPinheiro
<p>Olá meu amigo EDS!</p>
<p>Concordo com você, todo código deve ser comentado e feito da forma mais simples possível.</p>
<p>Obrigado!</p>
<p>Olá meu amigo EDS!</p>
<p>Concordo com você, todo código deve ser comentado e feito da forma mais simples possível.</p>
<p>Obrigado!</p> Parabéns, MAP!
Desculpe por d…tag:labdegaragem.com,2017-05-22:6223006:Comment:6136222017-05-22T15:33:01.283ZEdson E.S. (softelli)https://labdegaragem.com/profile/EdsonES
<p>Parabéns, MAP!</p>
<p>Desculpe por demorar responder, mas foi até bom vc tentar mais um pouco e resolver!Apenas um comentário sobre o seu IF...</p>
<p>if((h2==h1 && m2==m1 && s2.toInt()==s1.toInt()) || (h2==h1 && m2==m1 && s2.toInt()==s1.toInt()+1) || (h2==h1 && m2==m1 && s2.toInt()==s1.toInt()+2)){...}</p>
<p>Eu prefiro fazer IF aninhados, mais fácil procurar erros. <br></br>Então vc pode ir comentando também:</p>
<p>if(h2==h1){ //se a hora for…</p>
<p>Parabéns, MAP!</p>
<p>Desculpe por demorar responder, mas foi até bom vc tentar mais um pouco e resolver!Apenas um comentário sobre o seu IF...</p>
<p>if((h2==h1 && m2==m1 && s2.toInt()==s1.toInt()) || (h2==h1 && m2==m1 && s2.toInt()==s1.toInt()+1) || (h2==h1 && m2==m1 && s2.toInt()==s1.toInt()+2)){...}</p>
<p>Eu prefiro fazer IF aninhados, mais fácil procurar erros. <br/>Então vc pode ir comentando também:</p>
<p>if(h2==h1){ //se a hora for igual<br/> if(m2==m1){ //...e se o minuto for igual<br/> if(s2.toInt() >= s1.toInt() && s2.toInt() <= s1.toInt() + 2) { // ...entre dois valores<br/> //... aqui executar procedimento<br/> }<br/> }<br/>}</p>
<p>Observe que, nesse caso, se h2 <> h1, o resto do código nem é executado.<br/>Abraços!</p> EDS!
Consegui fazer, hehe!
T…tag:labdegaragem.com,2017-05-21:6223006:Comment:6135092017-05-21T20:26:48.874ZMarcio A. Pinheirohttps://labdegaragem.com/profile/MarcioAPinheiro
<p>EDS! </p>
<p>Consegui fazer, hehe!</p>
<p>Tive que mudar algumas coisas, veja o anexo de como ficou o Código:</p>
<p>Não precisei converter para segundos. Tinha um problema no laço "for" onde ele conseguia ler apenas os dois primeiros registros de horas, e depois repetia o segundo registro nos demais, assim como está na minha resposta anterior.</p>
<p>Veja o código e você irá entender o que eu fiz, no laço for e na comparação das horas.</p>
<p></p>
<p>Meu amigo muito obrigado, um grande…</p>
<p>EDS! </p>
<p>Consegui fazer, hehe!</p>
<p>Tive que mudar algumas coisas, veja o anexo de como ficou o Código:</p>
<p>Não precisei converter para segundos. Tinha um problema no laço "for" onde ele conseguia ler apenas os dois primeiros registros de horas, e depois repetia o segundo registro nos demais, assim como está na minha resposta anterior.</p>
<p>Veja o código e você irá entender o que eu fiz, no laço for e na comparação das horas.</p>
<p></p>
<p>Meu amigo muito obrigado, um grande abraço, e se um dia precisar da minha ajuda, conte comigo!</p> Bom dia EDS, antes de mais na…tag:labdegaragem.com,2017-05-21:6223006:Comment:6132682017-05-21T15:18:57.290ZMarcio A. Pinheirohttps://labdegaragem.com/profile/MarcioAPinheiro
<p>Bom dia EDS, antes de mais nada, bom domingo a você!</p>
<p>Obrigado por me ajudar.</p>
<p>Tentei das duas formas como você citou à cima, porem ambas não dá certo, ai fiz um debug na variável "String hora". Veja o resultado:</p>
<p>Hora 1: 01<br></br>Hora 2: 0<br></br>Hora 3: 2:<br></br>Hora 4: 2:<br></br>Hora 5: 2:<br></br>Hora 6: 2:<br></br>Hora 7: 2:<br></br>Hora 8: 2:<br></br>Hora 9: 2:<br></br>Hora 10: 2:<br></br>Hora 11: 2:<br></br>Hora 12: 2:<br></br>Hora 13: 2:<br></br>Hora 14: 2:<br></br>Hora 15: 2:<br></br>Hora 16: 2:<br></br>Hora 17:…</p>
<p>Bom dia EDS, antes de mais nada, bom domingo a você!</p>
<p>Obrigado por me ajudar.</p>
<p>Tentei das duas formas como você citou à cima, porem ambas não dá certo, ai fiz um debug na variável "String hora". Veja o resultado:</p>
<p>Hora 1: 01<br/>Hora 2: 0<br/>Hora 3: 2:<br/>Hora 4: 2:<br/>Hora 5: 2:<br/>Hora 6: 2:<br/>Hora 7: 2:<br/>Hora 8: 2:<br/>Hora 9: 2:<br/>Hora 10: 2:<br/>Hora 11: 2:<br/>Hora 12: 2:<br/>Hora 13: 2:<br/>Hora 14: 2:<br/>Hora 15: 2:<br/>Hora 16: 2:<br/>Hora 17: 2:<br/>Hora 18: 2:<br/>Hora 19: 2:<br/>Hora 20: 2:<br/>Hora 21: 2:<br/>Hora 22: 2:<br/>Hora 23: 2:<br/>Hora 24: 2:</p>
<p></p>
<p>Repare que a partir da 2º linha começa os problemas, ele lista apenas o primeiro ZERO e dai por diante, repete o segundo registro de hora em todas as linhas até o fim.</p> Desculpe, MAP
É tanto JAVA qu…tag:labdegaragem.com,2017-05-21:6223006:Comment:6130752017-05-21T03:16:25.813ZEdson E.S. (softelli)https://labdegaragem.com/profile/EdsonES
<p>Desculpe, MAP</p>
<p>É tanto JAVA que esqueço do C++.</p>
<p>Vc colocou o k como a quantidade de horários a serem armazenados. </p>
<p>Pena que estava ZERO... então esses valores que vc obteve são sujeiras...</p>
<p></p>
<p>Vc deve estabelecer uma constante suficiente para o número máximo de registros de horas que vc terá no arquivo txt. Por exemplo: </p>
<p></p>
<p>long horario[24]; // 0 a 23 posições de horários</p>
<p></p>
<p>ou pode também pegar o valor conforme o tamanho da string…</p>
<p>Desculpe, MAP</p>
<p>É tanto JAVA que esqueço do C++.</p>
<p>Vc colocou o k como a quantidade de horários a serem armazenados. </p>
<p>Pena que estava ZERO... então esses valores que vc obteve são sujeiras...</p>
<p></p>
<p>Vc deve estabelecer uma constante suficiente para o número máximo de registros de horas que vc terá no arquivo txt. Por exemplo: </p>
<p></p>
<p>long horario[24]; // 0 a 23 posições de horários</p>
<p></p>
<p>ou pode também pegar o valor conforme o tamanho da string obtida em hor:</p>
<p></p>
<p>int qt = hor.length()/8;//tamanho do string dividido por 8...</p>
<p>long horario[qt];</p>
<p></p>
<p>Tenta ai...</p> Legal EDS!
Obrigado!
Cara a I…tag:labdegaragem.com,2017-05-20:6223006:Comment:6133292017-05-20T22:28:42.204ZMarcio A. Pinheirohttps://labdegaragem.com/profile/MarcioAPinheiro
<p>Legal EDS!</p>
<p>Obrigado!</p>
<p>Cara a IDE do arduino não está deixando declarar a variável "<span>long horario[]; " </span></p>
<p><span>está retornando um erro dizendo que tenho que especificar um tamanho entre [];</span></p>
<p><span>"storage size of 'horario' isn't known"</span></p>
<p><span>declarei desta forma:</span></p>
<p>int k = 0;<br></br> long horario[k];</p>
<p>e veja o resultado à baixo!</p>
<p></p>
<p>Hora 1: 214761474<br></br>Hora 2: 1769499<br></br>Hora 3: 396542<br></br>Hora 4:…</p>
<p>Legal EDS!</p>
<p>Obrigado!</p>
<p>Cara a IDE do arduino não está deixando declarar a variável "<span>long horario[]; " </span></p>
<p><span>está retornando um erro dizendo que tenho que especificar um tamanho entre [];</span></p>
<p><span>"storage size of 'horario' isn't known"</span></p>
<p><span>declarei desta forma:</span></p>
<p>int k = 0;<br/> long horario[k];</p>
<p>e veja o resultado à baixo!</p>
<p></p>
<p>Hora 1: 214761474<br/>Hora 2: 1769499<br/>Hora 3: 396542<br/>Hora 4: 1572870<br/>Hora 5: 0<br/>Hora 6: 567541760<br/>Hora 7: 19<br/>Hora 8: 1638934<br/>Hora 9: 1246382594<br/>Hora 10: -1296911694<br/>Hora 11: -1296911694<br/>Hora 12: -1296911694<br/>Hora 13: -1296911694<br/>Hora 14: -1296911694<br/>Hora 15: -1296911694<br/>Hora 16: -1296911694<br/>Hora 17: -1296911694<br/>Hora 18: -1296911694<br/>Hora 19: -1296911694<br/>Hora 20: -1296911694<br/>Hora 21: -1296911694<br/>Hora 22: -1296911694<br/>Hora 23: -1296911694<br/>Hora 24: -1296911694</p>
<p></p>
<p>Será que devo usar alguma biblioteca específica?</p> Ficou exatamente como eu lhe…tag:labdegaragem.com,2017-05-20:6223006:Comment:6132422017-05-20T20:34:29.002ZEdson E.S. (softelli)https://labdegaragem.com/profile/EdsonES
<p>Ficou exatamente como eu lhe disse.</p>
<p>Agora é só fazer um loop, exemplo:</p>
<p></p>
<p>Long horario[]; //para armazenar os horarios em segundos</p>
<p>int k = 0;</p>
<p>for(int i=0; i<hor.length(); i+=8){</p>
<p> String atual = hor.substring(i,9); //pega uma substring de 8 elementos</p>
<p> String hora = atual.substring(0,2)// pega hora</p>
<p> String minuto = atual.substring(3,5)// pega minuto</p>
<p> String segundo =…</p>
<p>Ficou exatamente como eu lhe disse.</p>
<p>Agora é só fazer um loop, exemplo:</p>
<p></p>
<p>Long horario[]; //para armazenar os horarios em segundos</p>
<p>int k = 0;</p>
<p>for(int i=0; i<hor.length(); i+=8){</p>
<p> String atual = hor.substring(i,9); //pega uma substring de 8 elementos</p>
<p> String hora = atual.substring(0,2)// pega hora</p>
<p> String minuto = atual.substring(3,5)// pega minuto</p>
<p> String segundo = atual.substring(6,8) //pega segundo</p>
<p> horario[k] = (long) hora.toInt()*(24*60) + minuto.toInt()*60 + segundo.toInt(); //armazena a hora em segundos</p>
<p> k++; //incrementa o índice de horas</p>
<p>}</p>
<p></p>
<p>Dessa maneira será possível obter o valor do RTC (convertido em segundos) e comparar com o valor armazenado em horario[];</p> Segue anexo do novo esquema d…tag:labdegaragem.com,2017-05-19:6223006:Comment:6130412017-05-19T22:50:43.348ZMarcio A. Pinheirohttps://labdegaragem.com/profile/MarcioAPinheiro
<p>Segue anexo do novo esquema de gravação para facilitar a quebra de dados.</p>
<p>Segue anexo do novo esquema de gravação para facilitar a quebra de dados.</p> Olá TO, Obrigado!
não entendi…tag:labdegaragem.com,2017-05-10:6223006:Comment:6114692017-05-10T02:47:38.474ZMarcio A. Pinheirohttps://labdegaragem.com/profile/MarcioAPinheiro
<p>Olá TO, Obrigado!</p>
<p>não entendi muito bem, mas acho que vc se refere nessa parte do código:<br/><br/></p>
<pre>for(int i=0;i<=Linhas;i++){ //Laço de repetição para contar <br/> while(Cartao_SD.available()){ //Enquanto encontrar algum caracter... <br/> Hor = Cartao_SD.readString(); //Variável Hor recebe o conteúdo do cartão <br/> } </pre>
<pre>Serial.print(Hor); //Imprime o conteúdo</pre>
<pre>} <br/><br/><br/></pre>
<p>Olá TO, Obrigado!</p>
<p>não entendi muito bem, mas acho que vc se refere nessa parte do código:<br/><br/></p>
<pre>for(int i=0;i<=Linhas;i++){ //Laço de repetição para contar <br/> while(Cartao_SD.available()){ //Enquanto encontrar algum caracter... <br/> Hor = Cartao_SD.readString(); //Variável Hor recebe o conteúdo do cartão <br/> } </pre>
<pre>Serial.print(Hor); //Imprime o conteúdo</pre>
<pre>} <br/><br/><br/></pre>