Taula de continguts:

Luces RGB Con RFID Y Arduino: 3 passos
Luces RGB Con RFID Y Arduino: 3 passos

Vídeo: Luces RGB Con RFID Y Arduino: 3 passos

Vídeo: Luces RGB Con RFID Y Arduino: 3 passos
Vídeo: Control de Tiras de LED RGB con Arduino - PWM - Teoria y Practica 2024, De novembre
Anonim
Luces RGB Con RFID Y Arduino
Luces RGB Con RFID Y Arduino

Controlador de luces empleat per al projecte en conjunt denominat "Escenari d'històries interactives" del curs Video i televisió digital de la Universitat Autònoma d'Occident. L’objectiu d’aquest controlador és controlar les luces de dia i nit, és dir, controlar la quantitat de llum per fer una representació de la zona horari que es desee.

El projecte de composició de diferents etapes com son:

  1. Construcció del circuit i els components electrònics necessaris.
  2. Construcció del sistema de reconeixement igual que el sistema programari per al control de les luces.

Materials a utilitzar:

  • Protoboard ver
  • Computador
  • Arduino UNO ver
  • Sensor RFID 522 ver
  • Bateria de 12V
  • Jumpers Wires ver
  • Transistor TIP31 ver
  • Tira led ver

Pas 1: Montar El Circuit

Montar El Circuito
Montar El Circuito

Com s’observa en la gràfica, el muntatge del circuit es fa d’aquesta manera tenint en compte les polaritats de la bateria, la tira led consta de 4 cables que corresponen als colors vermells, verds, blaus i blancs.

Cada un dels colors es representa en la gràfica, el color blanc correspon a la terra (GND) que es connecta al positiu de la font, en aquest cas de la bateria de 12V.

Pas 2: Conectar El Módulo RFID

Conectar El Módulo RFID
Conectar El Módulo RFID

Per controlar les luces es fa ús del RFID, on cada vegada que passem la targeta les luces han de canviar de color, depenent dels colors definits en el sketch d’Arduino.

Pas 3: Sketch Arduino

En el següent esbós es podrà trobar la configuració de programari per realitzar pràctica.

#incloure

#incloure

#define RST_PIN 5 // Pin 9 per al reset del RC522

#define SS_PIN 10 // Pin 10 para el SS (SDA) del RC522

MFRC522 mfrc522 (SS_PIN, RST_PIN); /// Creamos el objeto para el RC522

int ledrojo = 1; int ledverde = 2;

int ledazul = 3;

configuració nul·la () {Serial.begin (9600); // Iniciamos La comunicacion serial

pinMode (ledrojo, OUTPUT); // El LED Rojo com una sortida

pinMode (ledverde, OUTPUT); // El LED Verde como una salida

pinMode (ledazul, OUTPUT); // El LED Azul com una sortida

SPI.begin (); // Iniciamos el Bus SPI mfrc522. PCD_Init (); // Iniciamos el MFRC522

//Serial.println ("--- Leyendo tarjetas ---");

}

byte ActualUID [4]; // emmagatzemarà el codi del Tag leídobyte dia [4] = {0xD3, 0xAD, 0x3B, 0x5B};

byte tarda [4] = {0xD7, 0x22, 0x1D, 0x01};

byte noche [4] = {0xA0, 0x78, 0xBD, 0x4F};

int contdia = 0, conttarde = 0, contnoche = 0;

bucle buit () {if (mfrc522. PICC_IsNewCardPresent ()) {

bucle buit () {if (mfrc522. PICC_IsNewCardPresent ()) {

// Enviamos serialemente su UID Serial.println ("Id targejta:");

for (byte i = 0; i <mfrc522.uid.size; i ++) {

Serial.print (mfrc522.uid.uidByte <0x10? "0": "");

Serial.print (mfrc522.uid.uidByte , HEX);

ActualUID = mfrc522.uid.uidByte ;

}

Serial.println (""); // comparem els UID per determinar si és un dels nostres usuaris

if (compareArray (ActualUID, dia)) {contdia ++;

if (contdia == 1) {

analogWrite (ledrojo, 75);

analogWrite (ledverde, 75);

analogWrite (ledazul, 255);

Serial.println ("Dato 1 dia"); } else if (contdia == 2) {

contdia = 0;

analogWrite (ledrojo, 0); analogWrite (ledverde, 0);

analogWrite (ledazul, 0);

Serial.println ("Dato 2 dia");

}

}

if (compareArray (ActualUID, tarda)) {conttarde ++;

if (conttarde == 1) {

analogWrite (ledrojo, 255);

analogWrite (ledverde, 75);

analogWrite (ledazul, 93);

Serial.println ("Dato 1 tarda"); } else if (conttarde == 2) {

conttarde = 0;

analogWrite (ledrojo, 0);

analogWrite (ledverde, 0);

analogWrite (ledazul, 0);

Serial.println ("Dato 2 tarda"); }

}

if (compareArray (ActualUID, noche)) {contnoche ++;

if (contnoche == 1) {

analogWrite (ledrojo, 87);

analogWrite (ledverde, 87);

analogWrite (ledazul, 87);

Serial.println ("Dato 1 noche");

} else if (contnoche == 2) {

contnoche = 0;

analogWrite (ledrojo, 0);

analogWrite (ledverde, 0);

analogWrite (ledazul, 0);

Serial.println ("Dato 2 noche"); }

}

// Terminem la lectura de la targeta targeta actual mfrc522. PICC_HaltA ();

}

}

}

// Funció per comparar dos vectoresboolean compareArray (byte array1 , byte array2 ) {

if (array1 [0]! = array2 [0]) return (false);

if (array1 [1]! = array2 [1]) return (false);

if (array1 [2]! = array2 [2]) return (false);

if (array1 [3]! = array2 [3]) return (false);

retorn (cert);

}

Recomanat: