Wideo: Luces RGB Con RFID Y Arduino: 3 kroki
2025 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2025-01-13 06:58
Controlador de lucces empleado para el proyecto en conjunto denominado „Escenario de historys interactiveivas” na temat curso Video i cyfrowej telewizji na Universidad Autónoma de Occidente. El objetivo de este controlador es controlar las luces de día y noche, es decir, es decir, control la cantidad de luz para hacer una reprezentant de la horario que se desee.
El proyecto de compone de diferentes etapas como son:
- Construcción del circuito y las componentes electrónicas necesarias.
- Construcción del sistema de reconocimiento al igual que el sistema software para el control de las luces.
Materiały do wykorzystania:
- Płyta prototypowa wer
- Computador
- Arduino UNO wersja
- Czujnik RFID 522 wer
- Bateria 12V
- Zworki przewody ver
- Tranzystor TIP31 ver
- Tira doprowadziła wer
Krok 1: Montar El Circuito
Como se observa en la grafica, el montaje del circuito se hace de esta manera teniendo en cuenta las polaridades de la batería, la tira led consta de 4 cables que koresponden a los colores rojo, verde, azul y blanco.
Cada uno de los colores sepresentan en la grafica, el color blanco korespondent a la tierra (GND) que se conecta al positivo de la fuente, en este caso de la batería de 12V.
Krok 2: Conectar El Módulo 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.
Krok 3: Szkicuj Arduino
En el siguiente szkic podrás encontrar la configuración de software para realizar dicha practica.
#włączać
#włączać
#define RST_PIN 5 //Pin 9 dla zresetowania 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;
void setup() { Serial.begin(9600); //Iniciamos La comunicacion serial
pinMode(ledrojo, WYJŚCIE); //El LED Rojo como una salida
pinMode(ledverde, WYJŚCIE); //El LED Verde como una salida
pinMode(ledazul, WYJŚCIE); //El LED Azul como una salida
SPI.początek(); //Początek interfejsu SPI magistrali mfrc522. PCD_Init(); // Początki MFRC522
//Serial.println(" ---Leyendo tarjetas---");
}
bajt RzeczywistyUID[4]; //almacenará el código del Tag leídobyte dia[4] = {0xD3, 0xAD, 0x3B, 0x5B};
tarde bajtów[4] = {0xD7, 0x22, 0x1D, 0x01};
bajt 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("Identyfikator docelowy: ");
for (bajt i = 0; i < mfrc522.uid.size; i++) {
Serial.print(mfrc522.uid.uidByte < 0x10 ? " 0": " ");
Serial.print(mfrc522.uid.uidByte, HEX);
RzeczywistyUID = mfrc522.uid.uidByte;
}
Serial.println(""); //comparamos los UID para determinar si es uno de nuestros usuarios
if (compareArray(RzeczywistyUID, dia)) { contdia++;
jeśli (kontynuacja ==1) {
analogZapis(ledrojo, 75);
analogZapis(ledverde, 75);
analogZapisz(ledazul, 255);
Serial.println("Dane 1 dia"); } else if (contdia ==2) {
kontr = 0;
analogZapis(ledrojo, 0); analogZapis(ledverde, 0);
analogZapisz(ledazul, 0);
Serial.println("Dane 2 dia");
}
}
if (compareArray(RzeczywistyUID, tarde)) { conttarde++;
jeśli (kont. ==1) {
analogZapis(ledrojo, 255);
analogZapis(ledverde, 75);
analogZapisz(ledazul, 93);
Serial.println(" Data 1 data"); } w przeciwnym razie (conttarde ==2) {
contard = 0;
analogZapis(ledrojo, 0);
analogZapis(ledverde, 0);
analogZapisz(ledazul, 0);
Serial.println(" Data 2 data"); }
}
if (compareArray(RzeczywistyUID, noche)) { contnoche++;
jeśli (kontnocha ==1) {
analogZapis(ledrojo, 87);
analogZapis(ledverde, 87);
analogZapisz(ledazul, 87);
Serial.println("Dane 1 miejsce");
} else if (contnoche ==2) {
konnocha = 0;
analogZapis(ledrojo, 0);
analogZapis(ledverde, 0);
analogZapisz(ledazul, 0);
Serial.println("Dane 2 miejsce"); }
}
// Terminamos la lectura de la tarjeta tarjeta aktualna mfrc522. PICC_HaltA();
}
}
}
//Funkcja porównania wektorów i wartości logicznych porównaniaArray(bajtowa tablica1, bajtowa tablica2) {
if (tablica1[0] != tablica2[0])return (false);
if (tablica1[1] != tablica2[1])return (false);
if (tablica1[2] != tablica2[2])return (false);
if (tablica1[3] != tablica2[3])return (false);
powrót (prawda);
}