תוכן עניינים:

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 שלבים
וִידֵאוֹ: Programar una tira de LEDs RGB direccionable con Arduino 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 interactivas" 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. בניית מערכת ההפעלה מחדש של תוכנות מערכת ההפעלה לכל בקרת ההפקות.

חומרים שימושיים:

  • Protoboard ver
  • מחשב
  • Arduino UNO ver
  • חיישן RFID 522 ver
  • Bateria de 12V
  • מגשרים חוטי ver
  • טרנזיסטור TIP31 ver
  • טירה הובילה ver

שלב 1: מונטאר אל סירקיטו

מונטאר אל סירקיטו
מונטאר אל סירקיטו

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 kabels que correspondonden a los colores rojo, verde, azul y blanco.

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

שלב 2: RFID של קונקטאר אל מודולו

קונקטאר אל מודולו RFID
קונקטאר אל מודולו RFID

עבור הבקרה לאס לוקס ניתן להשתמש ב- RFID, ולדעתי לא ניתן לקלוט את הטרג'אטה לא לאסוס לבנות את הצבעים, לתלות את הצבעים ולהגדיר את הסקירה של ארדואינו.

שלב 3: רישום Arduino

כל הסקיצות מופיעות בתכנות לתכנות עבור ריאליזציה בפועל.

#לִכלוֹל

#לִכלוֹל

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

#define SS_PIN 10 // Pin 10 עבור SS (SDA) del RC522

MFRC522 mfrc522 (SS_PIN, RST_PIN); /// Creamos el objeto עבור RC522

int ledrojo = 1; int ledverde = 2;

int ledazul = 3;

הגדרת void () {Serial.begin (9600); // סדרת Iniciamos La comunicacion

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

}

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

בייט טארדה [4] = {0xD7, 0x22, 0x1D, 0x01};

note noche [4] = {0xA0, 0x78, 0xBD, 0x4F};

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

לולאת void () {if (mfrc522. PICC_IsNewCardPresent ()) {

לולאת void () {if (mfrc522. PICC_IsNewCardPresent ()) {

// Enviamos serialemente su UID Serial.println ("מזהה מזהה:");

עבור (בת 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 ++;

אם (contdia == 1) {

analogWrite (ledrojo, 75);

analogWrite (ledverde, 75);

analogWrite (ledazul, 255);

Serial.println ("Dato 1 dia"); } אחר אם (contdia == 2) {

contdia = 0;

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

analogWrite (ledazul, 0);

Serial.println ("Dato 2 dia");

}

}

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

אם (conttarde == 1) {

analogWrite (ledrojo, 255);

analogWrite (ledverde, 75);

analogWrite (ledazul, 93);

Serial.println ("Dato 1 tarde"); } אחר אם (conttarde == 2) {

conttarde = 0;

analogWrite (ledrojo, 0);

analogWrite (ledverde, 0);

analogWrite (ledazul, 0);

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

}

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

אם (contnoche == 1) {

analogWrite (ledrojo, 87);

analogWrite (ledverde, 87);

analogWrite (ledazul, 87);

Serial.println ("Dato 1 noche");

} אחר אם (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 בפועל mfrc522. PICC_HaltA ();

}

}

}

// פונקציה עבור השוואה בין וקטורים בולניים comparArray (מערך בתים 1 , מערך בתים 2 ) {

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

החזר (נכון);

}

מוּמלָץ: