Kazalo:

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

Video: Luces RGB Con RFID Y Arduino: 3 koraki

Video: Luces RGB Con RFID Y Arduino: 3 koraki
Video: Programar una tira de LEDs RGB direccionable con Arduino 2024, Julij
Anonim
Luces RGB z RFID Y Arduino
Luces RGB z RFID Y Arduino

Controlador de luces empleado para el proyecto en il conconnto denominado "Escenario de historias interactivas" del curso Video y televisión 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 reprezentación de la zona horario que se desee.

Glavni element, ki razlikuje med različnimi etapami:

  1. Construcción del circuito y las componentsntes electrónicas necesarias.
  2. Konstrukcija del sistema za ponovno odkritje al igual que el sistema programske opreme za el nadzor nad las luces.

Uporabljeni materiali:

  • Protoboard ver
  • Computador
  • Arduino UNO ver
  • Senzor RFID 522 ver
  • Napajanje 12V
  • Žice skakalcev ver
  • Tranzistor TIP31 ver
  • Tira vodil ver

1. korak: 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 koresponden a los colores rojo, verde, azul y blanco.

Cada uno de los colores se reprezentance en la gráfica, el color blanco ustreza a la tierra (GND) que se conecta al positivo de la fuente, en este caso de la batería de 12V.

Korak: Conectar El Módulo RFID

Konektor El Módulo RFID
Konektor El Módulo RFID

Para controlar las luces se uporablja za RFID, donde cada vez que pasemos la tarjeta las luces deben cambiar de color, dependiendo de los colores definidos en el skica de Arduino.

3. korak: Skicirajte Arduino

En el siguiente sketch podrás encontrar la configuración de software para realizar dicha Practica.

#vključi

#vključi

#define RST_PIN 5 // Pin 9 za ponastavitev RC522

#define SS_PIN 10 // Pin 10 za SS (SDA) del RC522

MFRC522 mfrc522 (SS_PIN, RST_PIN); /// Ustvarjanje objektov za 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 ---");

}

bajt ActualUID [4]; // almacenará el código del Tag leídobyte dia [4] = {0xD3, 0xAD, 0x3B, 0x5B};

bajt tarde [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 ()) {{100} {101}

void loop () {if (mfrc522. PICC_IsNewCardPresent ()) {{100} {101}

// Enviamos serialemente so UID Serial.println ("Id targetjta:");

for (bajt 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 (""); // primerjam los UID para determinar si es uno de nuestros usuarios

if (compareArray (ActualUID, dia)) {contdia ++;

če (contdia == 1) {

analogWrite (ledrojo, 75);

analogWrite (ledverde, 75);

analogWrite (ledazul, 255);

Serial.println ("Dato 1 dia"); } drugače če (contdia == 2) {

contdia = 0;

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

analogWrite (ledazul, 0);

Serial.println ("Dato 2 dia");

}

}

if (compareArray (ActualUID, tarde)) {conttarde ++;

če (conttarde == 1) {

analogWrite (ledrojo, 255);

analogWrite (ledverde, 75);

analogWrite (ledazul, 93);

Serial.println ("Dato 1 tarde"); } drugače če (conttarde == 2) {

konttarda = 0;

analogWrite (ledrojo, 0);

analogWrite (ledverde, 0);

analogWrite (ledazul, 0);

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

}

if (compareArray (ActualUID, noche)) {contnoche ++;

če (contnoche == 1) {

analogWrite (ledrojo, 87);

analogWrite (ledverde, 87);

analogWrite (ledazul, 87);

Serial.println ("Dato 1 noche");

} drugače če (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 dejanski mfrc522. PICC_HaltA ();

}

}

}

// Funkcija para comparar dos vectoresboolean compareArray (matrika bajtov1 , matrika bajtov2 ) {

če (niz1 [0]! = niz2 [0]) vrne (napačno);

če (niz1 [1]! = niz2 [1]) vrne (napačno);

če (niz1 [2]! = niz2 [2]) vrne (napačno);

če (niz1 [3]! = niz2 [3]) vrne (napačno);

return (res);

}

Priporočena: