rfid e led

ma se modifichi il tuo sketch cosi'

void loop() {
if (Serial.available() > 0) {
incomingByte = Serial.read();
Serial.print(incomingByte,DEC);
}
}

sul SerialMonitor appare qualcosa ?

no, non appare nulla!

Allora, presupposto che il Reader RFID funzioni, che sia alimentato alla tensione giusta, che il TAG sia della stessa frequenza, che il Baudrate sia identico, che...... etc etc etc

c'e' un problema di collegamenti.

Ma probabilmente il problema e' una delle cose appena menzionate.

impossibile: ho caricato uno sketch che mostra il numero del tag e funziona tutto: mi mostra l' id!
i tag e il reader sono a 125 khz!

ok c'erano un paio di errori, questo va provato inserendo via serial monitor 'XXXXXXXXXX' mi cambia lo stato del led sulla porta 6...

#define LED 6
#define BUFFER_SIZE 11

const char* RFID_ID = "XXXXXXXXXX";
char buffer[BUFFER_SIZE];
byte buffer_position;
int output_state;

void setup() {
  
  pinMode(LED, OUTPUT);
  output_state = LOW;
  digitalWrite(LED, output_state);
  Serial.begin(9600);
  buffer_position = 0;
}

void loop() {

  if(Serial.available() != 0) {
    
    byte rx_byte = Serial.read();
    if(buffer_position < BUFFER_SIZE - 1) {
      buffer[buffer_position] = rx_byte;
      buffer_position++;
      if(buffer_position == BUFFER_SIZE - 1) {
        buffer[buffer_position] = '\0';
        if(strcmp(buffer, RFID_ID) == 0) {
          if(output_state == LOW) output_state = HIGH;
          else output_state = LOW;
          digitalWrite(LED, output_state);
        }
        buffer_position = 0;
      }
    }
  }
}

METTENDO LE "X" va, ma mettendo l'id nn funzia!

hai cambiato vero

const char* RFID_ID = "XXXXXXXXXX";

inserendo al posto delle X l'ID del tuo tag?

certo!!!

e se digiti da terminale seriale il tuo ID invece che XXX non va? :astonished:

no =( :astonished: =(

è veramente impossibile :wink: posta lo sketch che non ti va...

ok:

#define LED 6
#define BUFFER_SIZE 11

const char* RFID_ID = "01003BA32AB3";
char buffer[BUFFER_SIZE];
byte buffer_position;
int output_state;

void setup() {
  
  pinMode(LED, OUTPUT);
  output_state = LOW;
  digitalWrite(LED, output_state);
  Serial.begin(9600);
  buffer_position = 0;
}

void loop() {

  if(Serial.available() != 0) {
    
    byte rx_byte = Serial.read();
    if(buffer_position < BUFFER_SIZE - 1) {
      buffer[buffer_position] = rx_byte;
      buffer_position++;
      if(buffer_position == BUFFER_SIZE - 1) {
        buffer[buffer_position] = '\0';
        if(strcmp(buffer, RFID_ID) == 0) {
          if(output_state == LOW) output_state = HIGH;
          else output_state = LOW;
          digitalWrite(LED, output_state);
        }
        buffer_position = 0;
      }
    }
  }
}/code]

ma l'ID non doveva essere di 10?

cambia
#define BUFFER_SIZE 13

MEA CULPAAAAAAA!

non va ancora!

Ciao,
parti da questo codice:

sostituisci i riferimenti alla NewSoftSerial con SoftwareSerial, se stai utilizzando l'IDE 1.0.

In questo caso attacchi il lettore RFID ai pin 2 e 3 (in realtà ti basta attaccare il TX del modulo RFID al pin 2), in questo modo hai a disposizione il Serial Monitor dove poter stampare messaggi di verifica.

ho già provato quella guida, ma ora riprovo!

ma non funziona! :fearful:

ciao

ho appena provato, modificando come ti scrivevo

#define BUFFER_SIZE 13

riesco correttamente ad accendere/spegnere il LED di Arduino inviando via serial monitor la stringa 01003BA32AB3

a me non va nulla! :stuck_out_tongue: