Hace mucho que no escribo nada,, ya que estuve muy ocupado con el trabajo, y luego las fiestas y las vacaciones,
Any way,, hace poco me llego un modulo RFID por SPI que habia comprado y me puse a probarlo,
Para ello utilce tambien un display LCD de 16x2 al cual le agregue un conversor a I2C, de esta manera lo controlamos solo con dos hilos (SDA, SCL), pines A4 y A5 en el Arduino uno.
El modulo RFID es un RC522
Algunas imagenes mas:
En cuanto al codigo,,
Use un ejemplo de la libreria RFID,, y lo modifique para ver los valores leidos en el display, lo cual quedó algo asi:
#include <Wire.h> #include <LCD.h> #include <LiquidCrystal_I2C.h> #include <SPI.h> #include <RFID.h> RFID rfid(10,5); #define I2C_ADDR 0x27 // aca la direccion,, mejor usar el I2C_Scanner ! #define BACKLIGHT_PIN 3 #define En_pin 2 #define Rw_pin 1 #define Rs_pin 0 #define D4_pin 4 #define D5_pin 5 #define D6_pin 6 #define D7_pin 7 int n = 1; LiquidCrystal_I2C lcd(I2C_ADDR,En_pin,Rw_pin,Rs_pin,D4_pin,D5_pin,D6_pin,D7_pin); void setup() { Serial.begin(9600); SPI.begin(); rfid.init(); lcd.begin (16,2); // Aca ponen el tipo de LCD, en mi caso, 16x2 lcd.setBacklightPin(BACKLIGHT_PIN,POSITIVE); lcd.setBacklight(HIGH); lcd.home (); // go home lcd.print("Lector RFID. v1"); lcd.setCursor (0, 2 ); lcd.print("****************"); delay(3000); lcd.clear(); } void loop() { if (rfid.isCard()) { Serial.println("Es Una Tarjeta!"); if (rfid.readCardSerial()) { Serial.println(" "); Serial.println("El numero de serie de la tarjeta es : "); Serial.print(rfid.serNum[0],HEX); Serial.print(" , "); Serial.print(rfid.serNum[1],HEX); Serial.print(" , "); Serial.print(rfid.serNum[2],HEX); Serial.print(" , "); Serial.print(rfid.serNum[3],HEX); Serial.print(" , "); Serial.print(rfid.serNum[4],HEX); Serial.println(" "); } } lcd.setCursor (0, 0); lcd.print("**Tarjeta S/N:**"); lcd.setCursor (0, 1); lcd.print(rfid.serNum[0],HEX); lcd.setCursor (3, 1); lcd.print(rfid.serNum[1],HEX); lcd.setCursor (6, 1); lcd.print(rfid.serNum[2],HEX); lcd.setCursor(9, 1); lcd.print(rfid.serNum[3],HEX); lcd.setCursor(12, 1); lcd.print(rfid.serNum[4],HEX); }
Y el video de como queda funcionando:
Espero escribir mas seguido,
Saludos!