rfid e led

è 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:

Luca, mi potresti mandare il codice che ti va??'
Perchè o scrivo sbagliato oppure non va su mac (improbabile)

#define LED 13
#define BUFFER_SIZE 13

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;
      }
    }
  }
}