Olá a todos, gostaria de saber se alguém poderia me ajudar com uma sketch, eu consigo através do monitor serial gravar dados no cartão e depois ler e mostrar no monitor serial, mas eu não consigo pegar esses valores para incrementar ou decrementar e ate mesmo fazer comparação, acredito que seja porque não esta sendo gravado na unidade correta, mas eu não estou entendendo como gravar os dados de maneira correta, o código que estou usando esta mesclado vários exemplos que achei na internet . Basicamente só quero gravar um numero no cartão depois somar e subtrai a ele, e fazer a leitura desse valor.

Exibições: 398

Responder esta

Respostas a este tópico

Boa tarde, hoje tive disponibilidade pra dar uma olhada nas modificações, agradeço pela atenção, tenho uma duvida nessa parte:

String valueRdr = "";
//long rdValor = 0;
for (byte i = 1; i < 16; i++)
{
valueRdr += (buffer[i] & 0xF0) >> 4;
valueRdr += (buffer[i] & 0x0F) ;


}
Serial.println( valueRdr.toInt());

A variavel pra eu fazer as operações é essa value Rdr ou a long rdValor comentada?

Boa tarde, 

se voce observar, verá que a variável para fazer operações

é a rdValor , pois é uma variável numérica, e com a ValueRdr

não é possível operar, já que é uma String.

Eu comentei esta variável (//long rdValor = 0;)  dentro da função, e a

defini no começo do codigo, pois senão ela seria uma variável local,

e definido fora de função ela é uma variável global.

RV  mineirin

eu peguei essa parte: valueRdr.toInt(); e salvei numa variável inteira, ai a partir disso eu consegui realizar as operações matemáticas com a variável nova, depois eu só copiei a parte de gravação alterando algumas variáveis pra gravar o novo valor, aparentemente está funcionando quase 100%

Cuidado,

variável inteira só tem 2 bytes

ou seja só aceita valores

de: -32.768 até 32.767,

por isto eu usei variáveis tipo long que aceita valores

de :  -2.147.483.648 até 2.147.483.647

RV mineirin

Gostaria de ver o que eu modifiquei pra ver se funciona bem?

Acho que voce é que precisa saber se funciona bem como você precisa.

RV mineirin

Bom dia, 

Usando a inteligência artificial do ChatGPT:

https://openai.com/blog/chatgpt

Arduino code - RFID RC522 - Basicamente só quero gravar um numero no cartão SD card depois somar e subtrai a ele, e fazer a leitura desse valor.

Aqui está um exemplo básico de código Arduino usando o módulo RFID RC522 para gravar um número em um cartão SD e realizar operações de soma e subtração nele, além de fazer a leitura do valor:

Estou enviando em anexo o arquivo do sketch acima.

Faça correções e alterações. O chatGPT só ajuda. 

Anexos

Bom dia. 

Não tenho nada contra o uso de IA para nosso benefício, mas,

acho que a IA que voce usou tinha tomado umas e outras, pois veja.

O OP precisa de um código que leia um valor digitado na serial  ou um valor de uma tag RFID,

em seguida serão feitas operações aritméticas e finalmente grave o resultado na tag RFID.

Os dados lidos de uma tag RFID vem na forma de caractere, lidos em uma array, portanto precisam

ser montados para realmente formar um numero "operável".

Este codigo que voce postou criado pela IA, 

no setup(), abre um arquivo em um cartão SD, ("valor.txt"),

em seguida grava um valor (0) neste arquivo e fecha o arquivo no cartão SD.

No loop(), verifica se tem uma tag RFID no leitor, le o numero da tag e imprime.  

em seguida abre o arquivo no cartão SD,  ("valor.txt"), le um valor deste arquivo e fecha o

arquivo no cartão SD.

Continuando, ele opera matematicamente o valor lido e

finalmente salva este valor alterado no cartão SD.

RV mineirin

Rui boa tarde,

Como eu informei - Faça correções e alterações. O chatGPT só ajuda. 

O código pode ser refinado, fazendo mais perguntas. 

Quando um erro é encontrado pelo usuário, pode questionar o IA e ele mesmo sugere correções. Muito interessante. 

Grande abraço

Gustavo

oi Gustavo, bom dia.

Gravar e ler em tag RDIF é muito mais complexo que gravar e ler em um SD Card.

Não é só corrigir este código.

Terá que incluir rotinas de autenticação, e a gravação é feita após carregar um buffer com os dados que se quer gravar.

A biblioteca MFRC522 usa um buffer de caracteres tipo "char".

Então tem que separar o numero que vai gravar na tag, em bytes tipo char ,

carregar no buffer e então autenticar o setor e em seguida gravar os dados.

No SD é bem simples o processo. Basta dar um myFile.print(dados).

RV mineirin

Olá, mineirin.

   Eu tenho certas reservas com IA mas, depois que você falou que ela tomou umas e outras, confesso que até senti uma certa simpatia, pois, se bebe, faz parte do meu grupo!   :-)

   Na década de 1980, na empresa em que trabalhava, recebíamos revistas técnicas do mundo inteiro, algumas com secções de humor.

   Numa destas, vi a melhor frase já dita até hoje sobre IA:

   "Um ano trabalhando com IA é suficiente para acreditar em Deus"

Abração!

D. T. Ribeiro.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço