Cuprins:

Luces RGB Con RFID Y Arduino: 3 pași
Luces RGB Con RFID Y Arduino: 3 pași

Video: Luces RGB Con RFID Y Arduino: 3 pași

Video: Luces RGB Con RFID Y Arduino: 3 pași
Video: Arduino RGB LED Light Effect Tutorial #shorts 2024, Noiembrie
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" din curs Video și televiziune digitală a Universității Autonome de Occident. El target de este controlador is control the luces de day y night, es say, control the quantity of luz for make una representation of the zone horario that se desee.

El proyecto de compone de diferentes etapas como son:

  1. Construcția del circuit și componentele electronice necesare.
  2. Construcția sistemului de recunoaștere la fel ca sistemul software pentru controlul lucrurilor.

Materiale a utiliza:

  • Protoboard ver
  • Calculator
  • Arduino UNO ver
  • Senzor RFID 522 ver
  • Bateria de 12V
  • Jersee fire ver
  • Tranzistor TIP31 ver
  • Tira led ver

Pasul 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 cabluri care corespund culorilor roșu, verde, albastru și alb.

Cada unul al culorilor se reprezintă în grafică, el color blanco corresponde la la tierra (GND) care se conectează la pozitiv de la sursă, în acest caz de baterie de 12V.

Pasul 2: Conectare El Módulo RFID

Conectar El Módulo RFID
Conectar El Módulo RFID

Pentru a controla lucurile se face folosirea RFID, unde fiecare dată când pasăm cardul lucrurilor trebuie să se schimbe de culoare, depinzând de culorile definite în schița de Arduino.

Pasul 3: Schițați Arduino

Următorul schiță poate găsi configurarea software-ului pentru realizarea dicha practice.

#include

#include

#define RST_PIN 5 // Pin 9 pentru resetarea RC522

#define SS_PIN 10 // Pin 10 pentru SS (SDA) din 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 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 ---");

}

octet ActualUID [4]; // stocará el code 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;

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

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

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

for (octet 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"); }

}

// Terminăm lectura lectura cardului card actual mfrc522. PICC_HaltA ();

}

}

}

// Funcția pentru a compara doi 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);

retur (adevărat);

}

Recomandat: