#include "Arduino.h"
// # Define DEBUG
SoftwareSerial mySerial (5,6);
unsigned char incomingByte;
invalidar sendIdentifyCmd ()
{
mySerial.write (0x7c);
mySerial.write (0xFF);
mySerial.write (0xFF);
mySerial.write (0x01);
mySerial.write (0x08);
mySerial.write (0x7D);
#ifdef DEBUG
Serial.print (0x7c);
Serial.print (0xFF);
Serial.print (0xFF);
Serial.print (0x01);
Serial.print (0x08);
Serial.print (0x7D);
Serial.println ();
#acabar se
}
void setup ()
{
Serial.begin (9600);
mySerial.begin (9600);
Serial.println ("começar Serial inicial! \ N");
}
void loop ()
{
sendIdentifyCmd ();
atraso (2);
enquanto (mySerial.available () 0>)
{
incomingByte mySerial.read = ();
Serial.print (incomingByte, HEX);
Serial.print ('');
}
Serial.println ();
delay (1000);
}
Tags:
Para melhor analise comparei com esse outro codigo!!!
onde obtive resposta mais falta o principal o hex !!!
//#define DEBUG
void setup()
{
Serial.begin(9600);
pinMode(13, OUTPUT);
}
void loop()
{
// Verifica se recebeu algo pela serial
if ( Serial.available() > 0)
{
// Lê toda string recebida
leStringSerial();
Serial.println( "" );
Serial.println( "******" );
Serial.println( "" );
}
}
/**
* Função que lê uma string da Serial
* e retorna-a
*/
String leStringSerial()
{
char caracterBufferSerial; // Tipo "char" armazena apenas um cdaractere
String idTag;
delay(10);
Serial.print( "Qtde caracteres a serem lidos na serial:" );
Serial.println( Serial.available() );
// Laço pra ler caractere por caractere e armazenar na variavel palavraSerial
while( Serial.available()>0 )
{
// Lê o caractere da vez no buffer da serial
caracterBufferSerial = Serial.read();
// Monta a palavra que esta na serial dentro da matriz "palavraSerial[]"
// caractere por caractere
// Ignora caractere de quebra de linha
if ( caracterBufferSerial != '\n')
{
idTag.concat( caracterBufferSerial );
}
// Aguarda o buffer serial ler o próximo caractere
delay(10);
}
Serial.print( "Codigo de identificacao: " );
// if( idTag == "1" )
// {
Serial.println( idTag );
// }
Serial.println("");
Serial.println("");
Serial.println("");
// #ifdef DEBUG
digitalWrite( 13, HIGH );
delay( 2000 );
digitalWrite( 13, 0 );
// #endif
return idTag;
}
Oi Max, boa tarde,
voce usou algum tradutor no primeiro código que voce postou?
De onde voce baixou ele?
Rui
Oi Max,
o primeiro problema é que o sketch foi traduzido e algumas linhas de códigos ficaram em Português, e provocam erros.
Vou postar o código da forma correta.
Neste código do site falta uma linha no inicio :
#include <SoftwareSerial.h>
E inclui esta linha e funcionou. Consegui "uploadar" no arduino!!
Rui
#include "Arduino.h"
#include <SoftwareSerial.h>
//#define DEBUG
SoftwareSerial mySerial (5,6);
unsigned char incomingByte;
void sendIdentifyCmd ()
{
mySerial.write (0x7c);
mySerial.write (0xff);
mySerial.write (0xff);
mySerial.write (0x01);
mySerial.write (0x08);
mySerial.write (0x7d);
#ifdef DEBUG
Serial.print (0x7c);
Serial.print (0xff);
Serial.print (0xff);
Serial.print (0x01);
Serial.print (0x08);
Serial.print (0x7d);
Serial.println ();
#endif
}
void setup ()
{
Serial.begin (9600);
mySerial.begin (9600);
Serial.println ("begin initial Serial!\n");
}
void loop ()
{
sendIdentifyCmd ();
delay (2);
while(mySerial.available () > 0)
{
incomingByte=mySerial.read ();
Serial.print (incomingByte,HEX);
Serial.print (' ');
}
Serial.println ();
delay (1000);
}
Max,
retira o // de //#define DEBUG e aparecerão valores na tela do serial.
Rui
Oi Max, segue a nova versão.
Ao detectar a Tag o LED do arduino acende por 1/2 segundo.
#include "Arduino.h"
#include <SoftwareSerial.h>
//#define DEBUG
SoftwareSerial mySerial (2,3); // Modificado
unsigned char incomingByte;
void sendIdentifyCmd ()
{
mySerial.write (0x7c);
mySerial.write (0xff);
mySerial.write (0xff);
mySerial.write (0x01);
mySerial.write (0x08);
mySerial.write (0x7d);
#ifdef DEBUG
Serial.print (0x7c);
Serial.print (0xff);
Serial.print (0xff);
Serial.print (0x01);
Serial.print (0x08);
Serial.print (0x7d);
Serial.println ();
#endif
}
void setup ()
{
Serial.begin (9600);
mySerial.begin (9600);
Serial.println ("begin initial Serial!\n");
pinMode(13, OUTPUT); // Modificado
}
void loop ()
{
sendIdentifyCmd ();
delay (2);
while(mySerial.available () > 0)
{
incomingByte=mySerial.read ();
Serial.print (incomingByte,HEX);
Serial.print (' ');
digitalWrite(13, HIGH); // Modificado
delay(500); // Modificado
digitalWrite(13, LOW); // Modificado
}
Serial.println ();
delay (1000);
}
Oi MP,
segue o code para você testar,
veja como identar e comentar um code.
Rui
Oi Max,
É assim que deveria funcionar isso?
https://www.youtube.com/watch?v=2KnhB6uTwIo&feature=youtu.be
Abs.
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por