Isi kandungan:

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

Video: Luces RGB Con RFID Y Arduino: 3 Langkah

Video: Luces RGB Con RFID Y Arduino: 3 Langkah
Video: Led Chaser Circuit Using Arduino Uno | Arduino Uno Projects | #shorts #arduino #electronics 2024, November
Anonim
Luces RGB Con RFID Y Arduino
Luces RGB Con RFID Y Arduino

Controlador de luces empleado para el proyecto en conjunto denominado "Escenario de historias interactivas" del curso Video dan televisyen 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:

  1. Pembinaan rangkaian litar komponen dan elektronika necesarias.
  2. Pembinaan perisian sistema de reconocimiento al igual que el sistema perisian untuk kawalan elektronik.

Bahan yang digunakan:

  • Protoboard ver
  • Komputador
  • Arduino UNO ver
  • Sensor RFID 522 ver
  • Bateria de 12V
  • Wayar jumper ver
  • Transistor TIP31 ver
  • Tira mengetuai ver

Langkah 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 sesuai dengan los colores rojo, verde, azul y blanco.

Cada uno de los colores se representan en la gráfica, el warna blanco sesuai dengan 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

Conectar El Módulo RFID
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.

Langkah 3: Lakarkan Arduino

En el siguiente sketsa podrás encontrar la configuración de software untuk realizar dicha praktikum.

#sertakan

#sertakan

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

#tentukan 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;

batal persediaan () {Serial.begin (9600); // Siri comunicacion 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.begin (); // 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};

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

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

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

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

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

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

untuk (byte i = 0; i <mfrc522.uid.size; i ++) {

Serial.print (mfrc522.uid.uidByte <0x10? "0": "");

Serial.print (mfrc522.uid.uidByte , HEX);

SebenarUID = mfrc522.uid.uidByte ;

}

Serial.println (""); // perbandingan antara UID para penentu

jika (bandingkanArray (ActualUID, dia)) {contdia ++;

jika (contdia == 1) {

analogWrite (ledrojo, 75);

analogWrite (ledverde, 75);

analogWrite (ledazul, 255);

Serial.println ("Dato 1 dia"); } lain jika (contdia == 2) {

contdia = 0;

analogWrite (ledrojo, 0); analogWrite (ledverde, 0);

analogWrite (ledazul, 0);

Serial.println ("Dato 2 dia");

}

}

jika (bandingkanArray (ActualUID, tarde)) {conttarde ++;

jika (conttarde == 1) {

analogWrite (ledrojo, 255);

analogWrite (ledverde, 75);

analogWrite (ledazul, 93);

Serial.println ("Dato 1 tarde"); } lain jika (conttarde == 2) {

conttarde = 0;

analogWrite (ledrojo, 0);

analogWrite (ledverde, 0);

analogWrite (ledazul, 0);

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

}

jika (bandingkanArray (ActualUID, noche)) {contnoche ++;

jika (contnoche == 1) {

analogWrite (ledrojo, 87);

analogWrite (ledverde, 87);

analogWrite (ledazul, 87);

Serial.println ("Dato 1 noche");

} lain jika (contnoche == 2) {

contnoche = 0;

analogWrite (ledrojo, 0);

analogWrite (ledverde, 0);

analogWrite (ledazul, 0);

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

}

// Terminamos la lectura de la tarjeta tarjeta sebenar mfrc522. PICC_HaltA ();

}

}

}

// Función para perbandingan dos vectoresboolean membandingkanArray (byte array1 , byte array2 ) {

if (array1 [0]! = array2 [0]) kembali (salah);

if (array1 [1]! = array2 [1]) kembali (salah);

if (array1 [2]! = array2 [2]) kembali (salah);

if (array1 [3]! = array2 [3]) kembali (salah);

kembali (benar);

}

Disyorkan: