Meu "problema" é meio confuso mas irei tentar explicar:
Por algum motivo, que não sei qual é, quando se tenta ler o ID da tag ele é exibido em "loop". Exemplo de código:
#include <SoftwareSerial.h>
SoftwareSerial rfidReader(2, 3);
char c= 0;
void setup()
{
Serial.begin(9600);
rfidReader.begin(9600);
}
void loop()
{
if (rfidReader.available() > 0)
{
c = rfidReader.read();
Serial.print(c);
}
}
Se eu executa-lo, a ID aparecerá normalmente, mas se eu trocar o 'print' por 'println' (da quebra de linha automática) aparecerá em linhas diferentes o ID, cada caractere em uma linha. Ex:
6
6
0
0
6
C
1
5
5
5
4
A
E eu não quero que isso aconteça, pois resgato o ID via serial e insiro o valor no banco de dados, mas insere 12 valores, um com cada caractere e isso não pode acontecer.
Como resolver??
Tags:
As respostas para este tópico estão encerradas.
Vc ta mandando para o serial monitor o caracter de cada vez, tanto é que se vc tentar ler outra tag, o codigo dela vai aparecer do lado da anterior.Faça a leitura do código inteiro e só depois mande imprimir usando o println().
#include <SoftwareSerial.h>
SoftwareSerial rfidReader(2, 3);
char c[12];
void setup()
{
Serial.begin(9600);
rfidReader.begin(9600);
}
void loop()
{
int i = 0;
if (rfidReader.available() > 0)
{
c[i] = rfidReader.read();
i++;
if(i == 11)
Serial.println(c);
}
}
Esse código não exibi nada... Eu fiz esse:
#include <SoftwareSerial.h>
SoftwareSerial rfidReader(2, 3);
char r[15], c;
void setup()
{
Serial.begin(9600);
rfidReader.begin(9600);
}
void loop()
{
if(rfidReader.available() > 0){
int i;
for(i=0;i<=12;i++){
c = rfidReader.read();
r[i] = c;
}
Serial.println(r);
}
}
Porém aparece vários caracteres inválidos. Alguém sabe resolver??
Pessoal... Com a ajuda do Almir Filho eu consegui resolver esse problema. Segue código com a solução:
#include <SoftwareSerial.h>
SoftwareSerial rfid(2, 3);
char c, conc[12];
int i;
void setup(){
Serial.begin(9600);
rfid.begin(9600);
}
void loop(){
if(rfid.available()){
c = rfid.read();
if ((c >= 32) && (c <= 126)){
conc[i] = c;
i++;
}
if(i==12){
Serial.println(conc);
i=0;
}
}
}
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por