Vídeo: Luces RGB Con RFID Y Arduino: 3 etapas
2025 Autor: John Day | [email protected]. Última modificação: 2025-01-13 06:58
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:
- Construcción del circuito y las componentes electrónicas necesarias.
- 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
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
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);
}