è veramente impossibile
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! ![]()
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! ![]()
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;
}
}
}
}