Daftar Isi:
Video: Luces RGB Con RFID Y Arduino: 3 Langkah
2025 Pengarang: John Day | [email protected]. Terakhir diubah: 2025-01-13 06:57
Controlador de luces emmpleado para el proyecto en conjunto denominado "Escenario de historias intertivas" del curso Video dan televisi digital 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 representación de la zona horario que se desee.
El proyecto de compone de diferentes etapas como son:
- Konstruksi del circuito y las componentes electrónicas necesarias.
- Membangun perangkat lunak untuk semua kontrol perangkat lunak sistem kontrol de las luces.
Bahan yang berguna:
- Versi prototipe
- komputer
- Arduino UNO versi
- Sensor RFID 522 versi
- Baterai 12V
- Kabel jumper ver
- Transistor TIP31 versi
- Tira memimpin ver
Langkah 1: 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 kabel que koresponden a los colores rojo, verde, azul y blanco.
Cada uno de los colores se representan en la gráfica, el color blanco korespondensi a la tierra (GND) que se conecta al positivo de la fuente, en este caso de la batería de 12V.
Langkah 2: Conectar El Módulo RFID
Untuk mengontrol 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.
Langkah 3: Buat sketsa Arduino
En el siguiente sketch podrás encontrar la configuración de software para realizar dicha practica.
#termasuk
#termasuk
#define RST_PIN 5 //Pin 9 untuk 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;
void setup() { Serial.begin(9600); //Serial komunikasi Iniciamos La
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.mulai(); //Iniciamos el Bus SPI mfrc522. PCD_Init(); // Iniciamos el MFRC522
//Serial.println(" ---Leyendo tarjetas---");
}
byte ActualUID[4]; //almacenará el código 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() { jika (mfrc522. PICC_IsNewCardPresent()) {
void loop() { jika (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++;
jika (lanjutan ==1) {
analogWrite(ledrojo, 75);
analogWrite(ledverde, 75);
analogWrite(ledazul, 255);
Serial.println("Data 1 dia"); } else if (lanjutan ==2) {
contdia = 0;
analogWrite(ledrojo, 0); analogWrite(ledverde, 0);
analogWrite(ledazul, 0);
Serial.println("Data 2 dia");
}
}
if (compareArray(ActualUID, tarde)) { conttarde++;
jika (kontradiksi ==1) {
analogWrite(ledrojo, 255);
analogWrite(ledverde, 75);
analogWrite(ledazul, 93);
Serial.println("Tanggal 1 data"); }else if (conttarde ==2) {
kontras = 0;
analogWrite(ledrojo, 0);
analogWrite(ledverde, 0);
analogWrite(ledazul, 0);
Serial.println("Tanggal 2 data"); }
}
if (compareArray(ActualUID, noche)) { contnoche++;
if (sambungan ==1) {
analogWrite(ledrojo, 87);
analogWrite(ledverde, 87);
analogWrite(ledazul, 87);
Serial.println("Dato 1 noche");
} else if (sambungan ==2) {
contnoche = 0;
analogWrite(ledrojo, 0);
analogWrite(ledverde, 0);
analogWrite(ledazul, 0);
Serial.println("Dato 2 noche"); }
}
// Terminamos la lectura de la tarjeta tarjeta aktual mfrc522. PICC_HaltA();
}
}
}
//Función para comparar dos vectoresboolean compareArray(byte array1, byte array2) {
if (array1[0] != array2[0])kembali (salah);
if (array1[1] != array2[1])kembali (salah);
if (array1[2] != array2[2])return (salah);
if (array1[3] != array2[3])kembali (salah);
kembali (benar);
}