สารบัญ:
วีดีโอ: Luces RGB Con RFID Y Arduino: 3 ขั้นตอน
2025 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2025-01-13 06:58
ตัวควบคุม 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 ลูกชาย:
- Construcción del circuito y las componentes electrónicas necesarias. การก่อสร้าง
- โครงสร้างระบบของ reconocimiento al igual que el sistema ซอฟต์แวร์สำหรับการควบคุมของ las luces
วัสดุใช้ประโยชน์:
- Protoboard เวอร์ชั่น
- คอมพิวเตอร์
- Arduino UNO เวอร์ชั่น
- เซ็นเซอร์ RFID 522 เวอร์ชั่น
- แบตเตอรี่ 12V
- สายจัมเปอร์ ver
- ทรานซิสเตอร์ TIP31 เวอร์ชั่น
- Tira led ver
ขั้นตอนที่ 1: 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
ตัวควบคุมสุดท้ายสำหรับ 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 (เท็จ);
ผลตอบแทน (จริง);
}