Índice:

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

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

Vídeo: Luces RGB Con RFID Y Arduino: 3 etapas
Vídeo: Encendido y apagado de un LED con Radiofrecuencia y placa micro:bit 2024, Julho
Anonim
Luces RGB Con RFID Y Arduino
Luces RGB Con RFID Y Arduino

Controlador de luces empleado para o projeto em conjunto denominado "Escenario de historias interactivas" do curso Vídeo e televisão digital da Universidad Autónoma de Occidente. O objetivo de este controlador es controlar las luces de dia y noche, es decir, controlar la cantidad de luz para hacer una representación de la zona horario that se desee.

El proyecto de compone de diferentes etapas como son:

  1. Construcción del circuito y las componentes electrónicas necesarias.
  2. Construir o sistema de reconhecimento ao mesmo tempo que o software do sistema para o controle das vitórias.

Materiales a utilizar:

  • Protoboard versão
  • Computador
  • Arduino UNO versão
  • Sensor RFID 522 ver
  • Bateria de 12V
  • Fios de jumpers ver
  • Transistor TIP31 ver
  • Tira led ver

Etapa 1: Montar El Circuito

Montar El Circuito
Montar El Circuito

Como se observa na gráfica, a montagem do circuito se torna esta manera tenenciada na cor das polaridades da bateria, a tira led consta de 4 cabos que correspondem às cores vermelho, verde, azul e branco.

Cada um das cores é representado na gráfica, a cor blanco corresponde à terra (GND) que se conecta ao positivo do futuro, neste caso da bateria de 12V.

Etapa 2: Conectar El Módulo RFID

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

Para controlar as luces se hace uso do RFID, faça cada vez que passar a tarjeta las luces deben cambiar de cor, dependendo das cores definidas no sketch de Arduino.

Etapa 3: Sketch Arduino

No seguinte esboço podrás encontrar a configuração de software para realizar dicha prática.

#incluir

#incluir

#define RST_PIN 5 // Pino 9 para el reset del RC522

# define SS_PIN 10 // Pino 10 para o SS (SDA) del RC522

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

int ledrojo = 1; int ledverde = 2;

int ledazul = 3;

void setup () {Serial.begin (9600); // Iniciamos La comunicacion serial

pinMode (ledrojo, OUTPUT); // El LED Rojo como una salida

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

pinMode (ledazul, OUTPUT); // El LED Azul como una salida

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

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

}

byte ActualUID [4]; // almacenará o código do Tag leídobyte dia [4] = {0xD3, 0xAD, 0x3B, 0x5B};

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

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

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

void loop () {if (mfrc522. PICC_IsNewCardPresent ()) {

void loop () {if (mfrc522. PICC_IsNewCardPresent ()) {

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

para (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 (""); // comparamos los UID para determinar si es uno de nuestros usuarios

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, tarde)) {conttarde ++;

if (conttarde == 1) {

analogWrite (ledrojo, 255);

analogWrite (ledverde, 75);

analogWrite (ledazul, 93);

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

conttarde = 0;

analogWrite (ledrojo, 0);

analogWrite (ledverde, 0);

analogWrite (ledazul, 0);

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

}

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"); }

}

// Terminamos a leitura da tarjeta tarjeta atual mfrc522. PICC_HaltA ();

}

}

}

// Função para 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);

return (true);

}

Recomendado: