สารบัญ:

Luces RGB Con RFID Y Arduino: 3 ขั้นตอน
Luces RGB Con RFID Y Arduino: 3 ขั้นตอน

วีดีโอ: Luces RGB Con RFID Y Arduino: 3 ขั้นตอน

วีดีโอ: Luces RGB Con RFID Y Arduino: 3 ขั้นตอน
วีดีโอ: Music Reactive RGB LEDs with Arduino LED 5050 RGB Strip control LED RGB 2024, พฤศจิกายน
Anonim
Luces RGB Con RFID และ Arduino
Luces RGB Con RFID และ Arduino

ตัวควบคุม empleado para el proyecto en conjunto denominado "Escenario de historias interactiveivas" 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เป็นตัวแทน ของ ลา zona horario que se desee

El proyecto de compone de diferentes etapas como ลูกชาย:

  1. Construcción del circuito y las componentes electrónicas necesarias. การก่อสร้าง
  2. โครงสร้างระบบของ reconocimiento al igual que el sistema ซอฟต์แวร์สำหรับการควบคุมของ las luces

วัสดุใช้ประโยชน์:

  • Protoboard เวอร์ชั่น
  • คอมพิวเตอร์
  • Arduino UNO เวอร์ชั่น
  • เซ็นเซอร์ RFID 522 เวอร์ชั่น
  • แบตเตอรี่ 12V
  • สายจัมเปอร์ ver
  • ทรานซิสเตอร์ TIP31 เวอร์ชั่น
  • Tira led ver

ขั้นตอนที่ 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 cables que ติดต่อ a los colores rojo, verde, azul y blanco

Cada uno de los colores se เป็นตัวแทนของ en la gráfica, el color blanco สอดคล้อง a la tierra (GND) que se conecta al positivo de la fuente, en este caso de la batería de 12V.

ขั้นตอนที่ 2: Conectar El Módulo RFID

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

ตัวควบคุมสุดท้ายสำหรับ RFID, donde cada vez que pasemos ลา luces deben cambiar de color, การพึ่งพาอาศัยกันของสี definidos en el ร่างของ Arduino

ขั้นตอนที่ 3: ร่าง Arduino

En el siguiente sketch podrás encontrar la configuración de software para realizar dicha practica. ภาพรวม

#รวม

#รวม

#define RST_PIN 5 // พิน 9 สำหรับรีเซ็ตเดล RC522

#define SS_PIN 10 // พิน 10 สำหรับ SS (SDA) del RC522

MFRC522 mfrc522(SS_PIN, RST_PIN); ///Creamos el objeto สำหรับ el RC522

int ledrojo = 1;int ledverde = 2;

int ledazul = 3;

การตั้งค่าเป็นโมฆะ () { Serial.begin (9600); //Iniciamos La comunicacion อนุกรม

โหมดพิน (ledrojo, OUTPUT); //El LED Rojo como una salida

โหมดพิน (ledverde, OUTPUT); //El LED Verde como una salida

โหมดพิน (ledazul, OUTPUT); //El LED Azul como una salida

SPI.begin(); //เริ่มต้น el Bus SPI mfrc522. PCD_Init(); // Iniciamos el MFRC522

//Serial.println(" ---Leyendo tarjetas---");

}

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

ไบต์ tarde[4] = {0xD7, 0x22, 0x1D, 0x01};

ไบต์โนช[4]= {0xA0, 0x78, 0xBD, 0x4F};

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

วงเป็นโมฆะ () { ถ้า (mfrc522. PICC_IsNewCardPresent ()) {

วงเป็นโมฆะ () { ถ้า (mfrc522. PICC_IsNewCardPresent ()) {

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

สำหรับ (ไบต์ 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(""); // เปรียบเทียบ los UID para determinar si es uno de nuestros usuarios

ถ้า (compareArray (ActualUID, dia)) { contdia ++;

ถ้า (contdia ==1) {

analogWrite (ledrojo, 75);

analogWrite(เลเวอร์เด, 75);

analogWrite (ledazul, 255);

Serial.println(" Dato 1 dia"); } else if (contdia ==2) {

คอนเดีย = 0;

analogWrite (ledrojo, 0); analogWrite(เลเวอร์เด, 0);

analogWrite (ledazul, 0);

Serial.println(" Dato 2 dia");

}

}

ถ้า (compareArray (ActualUID, tarde)) { conttarde ++;

ถ้า (conttarde ==1) {

analogWrite (ledrojo, 255);

analogWrite(เลเวอร์เด, 75);

analogWrite(ledazul, 93);

Serial.println(" Dato 1 tarde"); } else if (conttarde ==2) {

conttarde = 0;

analogWrite (ledrojo, 0);

analogWrite(เลเวอร์เด, 0);

analogWrite (ledazul, 0);

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

}

ถ้า (compareArray (ActualUID, noche)) { contnoche ++;

ถ้า (contnoche ==1) {

analogWrite (ledrojo, 87);

analogWrite(เลเวอร์เด, 87);

analogWrite (ledazul, 87);

Serial.println(" Dato 1 noche");

} else if (contnoche ==2) {

contnoche = 0;

analogWrite (ledrojo, 0);

analogWrite(เลเวอร์เด, 0);

analogWrite (ledazul, 0);

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

}

// Terminamos la lectura de la tarjeta tarjeta จริง mfrc522. PICC_HaltA();

}

}

}

// Función para comparar dos vectoresboolean comparisonArray (ไบต์ array1, ไบต์ array2) {

if (array1[0] != array2[0])return (false);

if (array1[1] != array2[1])return (false);

if (array1[2] != array2[2])return (false);

ถ้า (array1[3] != array2[3])return (เท็จ);

ผลตอบแทน (จริง);

}

แนะนำ: