Per offrirti il miglior servizio possibile questo sito utilizza cookies. Continuando la navigazione nel sito autorizzi l'uso dei cookies.
In order to give you a better service we use cookies. When navigating or using our services, you agree to our use of them.
Orario: 19-12-2017, 12:32 AM Benvenuto ospite! (Log inRegistrati)


Rispondi 
 
Valutazione discussione:
  • 0 voti - 0 media
  • 1
  • 2
  • 3
  • 4
  • 5


codice uid esadecimale con zero iniziale
24-11-2017, 01:29 PM (Questo messaggio è stato modificato l'ultima volta il: 24-11-2017 01:36 PM da miomiomio.)
Messaggio: #1
codice uid esadecimale con zero iniziale
ciao a tutti, sono al mi oprimo messaggio.
Vi scrivo perchè ho realizzato a livello molto amatoriale un lettore di card nfc.
Ho notato però che quando una card ha il codice uid che inizia con 0 (zero in esadecimale) omette di trascrivere in seriale lo zero.
invece io avrei necessità che venga riportata ogni cifra anche se zero ma non so come intervenire.
Potreste darmi una mano?
Grazie.
questo è il mio codice

Codice:
#include<SPI.h>
#include<MFRC522.h>
#include<SoftwareSerial.h>
#define SS_PIN 4
#define RST_PIN 9
#define No_Of_Card 3
SoftwareSerial mySerial(8,9);    
MFRC522 rfid(SS_PIN,RST_PIN);
MFRC522::MIFARE_Key key;


byte i;
byte id_temp[3][3];


String inStringHex;


void setup()
{


  Serial.begin(9600);
  mySerial.begin(9600);
  SPI.begin();
  rfid.PCD_Init();
  for(byte i=0;i<6;i++)
  {
    key.keyByte[i]=0xFF;
  }
  }


void loop() {

inStringHex="";
  if(!rfid.PICC_IsNewCardPresent())
  return;
  if(!rfid.PICC_ReadCardSerial())
  return;
  for(i=0;i<4;i++)
    {
   id_temp[0][i]=rfid.uid.uidByte[i];
inStringHex += String(rfid.uid.uidByte[i], HEX);
Serial.print(rfid.uid.uidByte[i], HEX);
   }


      // Halt PICC
  rfid.PICC_HaltA();
  // Stop encryption on PCD
  rfid.PCD_StopCrypto1();


}
Trova tutti i messaggi di questo utente
Cita questo messaggio nella tua risposta
24-11-2017, 01:29 PM

24-11-2017, 07:22 PM
Messaggio: #2
RE: codice uid esadecimale con zero iniziale
Potresti formattare la stringa con sprintf in un array e poi stampare la variabile con serial.print(variabile);
Trova tutti i messaggi di questo utente
Cita questo messaggio nella tua risposta
24-11-2017, 09:54 PM
Messaggio: #3
RE: codice uid esadecimale con zero iniziale
la variabile "stringa" può contenere solo caratteri e non valori puri

Registrati al forum qui per vedere questo link.
Trova tutti i messaggi di questo utente
Cita questo messaggio nella tua risposta
24-11-2017, 09:56 PM
Messaggio: #4
codice uid esadecimale con zero iniziale
Si per questo avevo pensato ad un array...
char variabile[16] ad esempio
Trova tutti i messaggi di questo utente
Cita questo messaggio nella tua risposta
25-11-2017, 01:47 PM
Messaggio: #5
RE: codice uid esadecimale con zero iniziale
Prova così:

aggiungi
if ((rfid.uid.uidByte[i] < 16) && i == 0) Serial.print('0');

prima di
Serial.print(rfid.uid.uidByte[i], HEX);
Trova tutti i messaggi di questo utente
Cita questo messaggio nella tua risposta
27-11-2017, 12:06 AM
Messaggio: #6
RE: codice uid esadecimale con zero iniziale
(25-11-2017 01:47 PM)Mardook Ha scritto: Registrati al forum qui per vedere questo link.Prova così:

aggiungi
if ((rfid.uid.uidByte[i] < 16) && i == 0) Serial.print('0');

prima di
Serial.print(rfid.uid.uidByte[i], HEX);

grazie mille!!! così è ok!!!
Trova tutti i messaggi di questo utente
Cita questo messaggio nella tua risposta
Rispondi 



Vai al forum:


Powered by MyBB, © 2002-2017 MyBB Group. myBB new designed for MyBB
Modifiche a cura di Mattia - Copyright 2007-2017 Methack.it
Questo sito e tutti i suoi contenuti sono pubblicati sotto licenza Creative Commons 2.5.