Cuprins:
Video: Luces RGB Con RFID Y Arduino: 3 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:41
Controlador de luces empleado para el proyecto en conjunto denominado "Escenario de historias interactivas" din curs Video și televiziune digitală a Universității Autonome de Occident. El target de este controlador is control the luces de day y night, es say, control the quantity of luz for make una representation of the zone horario that se desee.
El proyecto de compone de diferentes etapas como son:
- Construcția del circuit și componentele electronice necesare.
- Construcția sistemului de recunoaștere la fel ca sistemul software pentru controlul lucrurilor.
Materiale a utiliza:
- Protoboard ver
- Calculator
- Arduino UNO ver
- Senzor RFID 522 ver
- Bateria de 12V
- Jersee fire ver
- Tranzistor TIP31 ver
- Tira led ver
Pasul 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 cabluri care corespund culorilor roșu, verde, albastru și alb.
Cada unul al culorilor se reprezintă în grafică, el color blanco corresponde la la tierra (GND) care se conectează la pozitiv de la sursă, în acest caz de baterie de 12V.
Pasul 2: Conectare El Módulo RFID
Pentru a controla lucurile se face folosirea RFID, unde fiecare dată când pasăm cardul lucrurilor trebuie să se schimbe de culoare, depinzând de culorile definite în schița de Arduino.
Pasul 3: Schițați Arduino
Următorul schiță poate găsi configurarea software-ului pentru realizarea dicha practice.
#include
#include
#define RST_PIN 5 // Pin 9 pentru resetarea RC522
#define SS_PIN 10 // Pin 10 pentru SS (SDA) din RC522
MFRC522 mfrc522 (SS_PIN, RST_PIN); /// Creamos el objeto para el RC522
int ledrojo = 1; int ledverde = 2;
int ledazul = 3;
void setup () {Serial.begin (9600); // Iniciamos La comunicacion serial
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 ---");
}
octet ActualUID [4]; // stocará el code del Tag leídobyte dia [4] = {0xD3, 0xAD, 0x3B, 0x5B};
byte tarde [4] = {0xD7, 0x22, 0x1D, 0x01};
byte noche [4] = {0xA0, 0x78, 0xBD, 0x4F};
int contdia = 0, conttarde = 0, contnoche = 0;
bucla void () {if (mfrc522. PICC_IsNewCardPresent ()) {
bucla void () {if (mfrc522. PICC_IsNewCardPresent ()) {
// Enviamos serialemente su UID Serial.println ("Id targejta:");
for (octet 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 ++;
if (contdia == 1) {
analogWrite (ledrojo, 75);
analogWrite (ledverde, 75);
analogWrite (ledazul, 255);
Serial.println ("Dato 1 dia"); } else 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"); } else 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 noche");
} else if (contnoche == 2) {
contnoche = 0;
analogWrite (ledrojo, 0);
analogWrite (ledverde, 0);
analogWrite (ledazul, 0);
Serial.println ("Dato 2 noche"); }
}
// Terminăm lectura lectura cardului card actual mfrc522. PICC_HaltA ();
}
}
}
// Funcția pentru a compara doi vectoresboolean compareArray (byte array1 , byte array2 ) {
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);
retur (adevărat);
}
Recomandat:
Mișcarea fără RGB a luminii RGB fără contact: 4 pași
Mișcarea RGB cu lumină RGB fără contact: lumină RGB de noapte, cu capacitatea de a controla culoarea luminii de noapte folosind mișcările mâinilor. Folosind trei senzori de distanță, vom schimba luminozitatea fiecăreia dintre cele trei componente ale culorii RGB atunci când ne apropiem sau scoatem mâna. Un Ar
Luces Direccionales Para Bicicleta: 3 Steps
Luces Direccionales Para Bicicleta: hola that tal gente! Many times hay personas that usan the bicicleta as medium of transport, ya que es amigable with the world, y es mas economico, pero el problem es que las bicicletas no cuentan with iluminacion for ser vistos por los automovilista
Luces De Navidad Con Relevadores (Luminile de Crăciun cu releu): 17 pași
Luces De Navidad Con Relevadores (Christmas Lights With Relay): Como configurar Relevadores using Vixen Lights y ArduinoQue es Vixen Lights? Vixen Lights este un software de DIY (h á galo usted mismo) secuencias de luces. La ultimo versi ó n 3.x se redise ñ o complet pentru suport p í xel
Luces De Navidad Con Pixeles (Lumini de Crăciun Pixeles) Español - Engleză: 18 pași (cu imagini)
Luces De Navidad Con Pixeles (Christmas Lights Pixeles) Español - English: EspañolQue es Vixen Lights? Vixen Lights este un software de DIY (hágalo usted mismo) secuencias de luces. La ultima versiune 3.x se rediseño complet pentru suport píxeles RGB inteligente.Lo puteți descărca în următoarea ligă http: //www.vixenl
Luces De Auto Fantástico: 3 pași
Luces De Auto Fantástico: le quiero share un circuit, el cual emula los efectos de kit el auto fantastico, el corazon de este circuito es el digispark, o placa de dezvoltare parecida al arduino, se programează cu același IDE și asta lo face mas facilMateriales1 protobo