جدول المحتويات:

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 خطوات
فيديو: Музыкальные реактивные светодиоды RGB с Arduino LED 5050 RGB Strip Control LED RGB 2024, يوليو
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 Interactive" del curso الفيديو والتلفزيون الرقمي للجامعة المستقلة في الغرب. 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. تركيب الدوائر والمكونات الكهربية.
  2. Construcción del sistema de recocimiento all que el sistema software para el control de las luces.

المواد المستخدمة:

  • Protoboard ver
  • كمبيوتادور
  • اردوينو UNO ver
  • مستشعر RFID 522 ver
  • باتريا دي 12 فولت
  • أسلاك وصلات العبور ver
  • الترانزستور TIP31 ver
  • الصمام تيرا الإصدار

الخطوة 1: Montar El Circuito

Montar El Circuito
Montar El Circuito

Como se Observa en la gráfica، el montaje del circo 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 coloures se Representan en la gráfica، el color blanco concecta 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

كونكتار El Módulo RFID
كونكتار El Módulo RFID

طبقًا للتحكم في نظام تحديد الهوية باستخدام موجات الراديو (RFID) ، يمكنك الاعتماد على تعريفات الألوان في الرسم من Arduino.

الخطوة 3: رسم اردوينو

En el siguiente Sketch podrás encontrar la configuración de software for realizar dicha Practiceica.

#يشمل

#يشمل

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

#define 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 ؛

كثافة العمليات ليدازول = 3 ؛

إعداد باطل () {Serial.begin (9600) ؛ // Iniciamos La مسلسل comunicacion

pinMode (ledrojo ، الإخراج) ؛ // El LED Rojo como una salida

pinMode (ledverde ، الإخراج) ؛ // El LED Verde como una salida

pinMode (ليدازول ، الإخراج) ؛ // El LED Azul como una salida

SPI.begin () ، // Iniciamos 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}؛

تأخير البايت [4] = {0xD7، 0x22، 0x1D، 0x01} ؛

بايت noche [4] = {0xA0، 0x78، 0xBD، 0x4F} ؛

contdia int = 0 ، conttarde = 0 ، contnoche = 0 ؛

حلقة باطلة () {if (mfrc522. PICC_IsNewCardPresent ()) {

حلقة باطلة () {if (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 ("") ؛ // Comparamos los UID paraerminar si es uno de nuestros usuarios

if (ComparArray (ActualUID، dia)) {contdia ++ ؛

إذا (contdia == 1) {

analogWrite (ليدروجو ، 75) ؛

analogWrite (ليدفيردي ، 75) ؛

analogWrite (ليدازول ، 255) ؛

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

كونتديا = 0 ؛

analogWrite (ليدروجو ، 0) ؛ analogWrite (ليدفيردي ، 0) ؛

analogWrite (ليدازول ، 0) ؛

Serial.println ("Dato 2 dia") ؛

}

}

if (ComparArray (ActualUID، tarde)) {conttarde ++ ؛

إذا (كونتارد == 1) {

analogWrite (ليدروجو ، 255) ؛

analogWrite (ليدفيردي ، 75) ؛

analogWrite (ليدازول ، 93) ؛

Serial.println ("Dato 1 tarde") ؛ } وإلا إذا (conttarde == 2) {

كونتارد = 0 ؛

analogWrite (ليدروجو ، 0) ؛

analogWrite (ليدفيردي ، 0) ؛

analogWrite (ليدازول ، 0) ؛

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

}

if (قارنArray (ActualUID، noche)) {contnoche ++ ؛

إذا (تابع == 1) {

analogWrite (ليدروجو ، 87) ؛

analogWrite (ليدفيردي ، 87) ؛

analogWrite (ليدازول ، 87) ؛

Serial.println ("Dato 1 noche") ؛

} else if (contnoche == 2) {

contnoche = 0 ؛

analogWrite (ليدروجو ، 0) ؛

analogWrite (ليدفيردي ، 0) ؛

analogWrite (ليدازول ، 0) ؛

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

}

// Terminamos la lectura de la tarjeta tarjeta real mfrc522. PICC_HaltA () ؛

}

}

}

// Función para Comparar dos vectoresboolean compareArray (byte array1 ، byte array2 ) {

إذا (array1 [0]! = array2 [0]) إرجاع (خطأ) ؛

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

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

if (array1 [3]! = array2 [3]) return (false) ؛

العودة (صحيح) ؛

}

موصى به: