Sadržaj:

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

Video: Luces RGB Con RFID Y Arduino: 3 koraka

Video: Luces RGB Con RFID Y Arduino: 3 koraka
Video: Interactive light up window using a Raspberry Pi and Micro:bit 2024, Juli
Anonim
Luces RGB sa RFID Y Arduino
Luces RGB sa RFID Y Arduino

Controlador de luces empleado para el proyecto en enconto denominado "Escenario de historias interactivas" del curso Video i digitalni televizor sa Univerziteta 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.

Sljedeće komponente razlikuju etape kao što su:

  1. Konstrukcija električnog kola i komponente potrebne elektronike.
  2. Konstrukcija sistema za ponovno otkrivanje igualnog softvera sistema za kontrolu rada u luci.

Materijali za upotrebu:

  • Protoboard ver
  • Computador
  • Arduino UNO ver
  • Senzor RFID 522 ver
  • Baterija od 12V
  • Žice kratkospojnika ver
  • Tranzistor TIP31 ver
  • Tira vodio ver

Korak 1: Montar El Circuito

Montar El Circuito
Montar El Circuito

Como se promatra u en la gráfica, el montaje del circuito 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 predstavlja u la grafici, a boja blanco odgovara a la tierra (GND) koja se povezuje na poziciju de la fuente, en caso de la batería de 12V.

Korak 2: Konektor El Módulo RFID

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

Para kontroler luces se može koristiti kao RFID, donde cada vez que pasemos la tarjeta las luces deben cambiar de color, dependiendo de los colores definidos en skica de Arduino.

Korak 3: Skicirajte Arduino

En el siguiente skice podržavaju encontrar konfiguracije softvera za realizaciju dicha prakse.

#include

#include

#define RST_PIN 5 // Pin 9 za resetiranje RC522

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

MFRC522 mfrc522 (SS_PIN, RST_PIN); /// Napravi objekat za RC522

int ledrojo = 1; int ledverde = 2;

int ledazul = 3;

void setup () {Serial.begin (9600); // Iniciamos La comunicacion serial

pinMode (ledrojo, OUTPUT); // LED LED Rojo como una salida

pinMode (ledverde, OUTPUT); // El LED Verde como una salida

pinMode (ledazul, OUTPUT); // LED 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 leidobyte 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 su 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 (""); // uspoređujemo UID parametre koji određuju upotrebu nuestrosa

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

if (contdia == 1) {

analogWrite (ledrojo, 75);

analogWrite (ledverde, 75);

analogWrite (ledazul, 255);

Serial.println ("Datoteka 1 dia"); } inace 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"); } inace 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 noć");

} inace if (contnoche == 2) {

contnoche = 0;

analogWrite (ledrojo, 0);

analogWrite (ledverde, 0);

analogWrite (ledazul, 0);

Serial.println ("Dato 2 noći"); }

}

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

}

}

}

// Funkcija za usporedbu dos vectoresboolean compareArray (niz bajtova1 , niz bajtova2 ) {

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);

return (tačno);

}

Preporučuje se: