jueves, 23 de enero de 2014

RFID SPI y LCD 16x2 I2C

Buenas,


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:






Bueno, eso fue todo por hoy!

Espero escribir mas seguido,


Saludos!


No hay comentarios.:

Publicar un comentario