Sommario:

Luces RGB Con RFID e Arduino: 3 passaggi
Luces RGB Con RFID e Arduino: 3 passaggi

Video: Luces RGB Con RFID e Arduino: 3 passaggi

Video: Luces RGB Con RFID e Arduino: 3 passaggi
Video: Музыкальные реактивные светодиоды RGB с Arduino LED 5050 RGB Strip Control LED RGB 2024, Luglio
Anonim
Luces RGB Con RFID e Arduino
Luces RGB Con RFID e Arduino

Controlador de luces empleado para el proyecto en conjunto denominato "Escenario de historias interactivas" del corso Video e televisione digitale de la Universidad Autónoma de Occidente. El objetivo de este controlador es controlar las luces de día y noche, es decir, controlar la cantidad de luz para hacer una rappresentanza de la zona horario que se desee.

El proyecto de compone de diferentes etapas como son:

  1. Costruzione del circuito e dei componenti elettronici necessari.
  2. Costruzione del sistema di riconoscimento al proprio software per il controllo delle luci.

Materiali da utilizzare:

  • Versione scheda prototipi
  • calcolatore
  • Arduino UNO versione
  • Sensore RFID 522 versione
  • Batteria da 12V
  • Cavi dei ponticelli ver
  • Transistor TIP31 versione
  • Tira led ver

Fase 1: Montar El Circuito

Montar El Circuito
Montar El Circuito

Como se observa en la gráfica, el montaje del circuito se hace de esta manera teniendo en cuenta las polaridades de la batería, la tira led consta de 4 cable que corrispondenti a los colores rojo, verde, azul y blanco.

Cada uno de los colores se rappresentante en la grafica, el color blanco corrisponde a la tierra (GND) que se conecta al positivo de la fuente, en este caso de la batería de 12V.

Passaggio 2: collegare il modulo RFID

Conectar El Modulo RFID
Conectar El Modulo RFID

Para controlar las luces se hace uso del RFID, donde cada vez que pasemos la tarjeta las luces deben cambiar de color, dependiendo de los colores definidos en el sketch de Arduino.

Passaggio 3: disegna Arduino

En el siguiente sketch podrás encontrar la configurazione de software para realizar dicha practica.

#includere

#includere

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

#define SS_PIN 10 //Pin 10 per 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;

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

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

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

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

SPI.begin(); //Iniziamo al Bus SPI mfrc522. PCD_Init(); // Iniziamo il MFRC522

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

}

byte ActualUID[4]; //almacenará el codice del 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 target: ");

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(""); //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)) { conttard++;

if (contardo ==1) {

analogWrite(ledrojo, 255);

analogWrite(ledverde, 75);

analogWrite(ledazul, 93);

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

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

}

// Termina la lezione della tarjeta tarjeta attuale mfrc522. PICC_HaltA();

}

}

}

//Funzione per comparare 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);

ritorno (vero);

}

Consigliato: