İçindekiler:
Batı Özerk Üniversitesi Dijital Video ve Televizyon kursu "Etkileşimli öyküler senaryosu" olarak adlandırılan ortak proje için kullanılan ışık denetleyicisi. Bu kontrolörün amacı, gece ve gündüz ışıklarını kontrol etmek, yani istediğiniz zaman dilimini göstermek için ışık miktarını kontrol etmektir.
Proje aşağıdaki gibi farklı aşamalardan oluşmaktadır:
- Devre inşaatı ve gerekli elektronik bileşenler.
- Tanıma sisteminin yanı sıra ışıkların kontrolüne yönelik yazılım sisteminin oluşturulması.
Kullanılacak malzemeler:
- Protokol görmek
- bilgisayar
- Arduino UNO görmek
- RFID sensörü 522 bkz.
- 12V akü
- Süveter telleri bkz.
- Transistör TIP31 bkz.
- Led şerit görmek
Malzemeleri:
Adım 1: Devreyi Monte Et
Grafikte gösterildiği gibi, devrenin montajı akünün kutupları dikkate alınarak bu şekilde yapılır, LED şeridi kırmızı, yeşil, mavi ve beyaz renklere karşılık gelen 4 telden oluşur.
Renklerin her biri grafikte gösterilir, beyaz renk kaynağın pozitifine bağlı olan toprağa (GND) karşılık gelir, bu durumda 12V akü.
Adım 2: RFID Modülünü Bağlayın
Işıkları kontrol etmek için, RFID kullanılır, burada kartı her geçtiğimizde, Arduino taslağında tanımlanan renklere bağlı olarak ışıkların renk değiştirmesi gerekir.
Adım 3: Arduino'nun Kroki
Bir sonraki çizimde, bu uygulamayı gerçekleştirmek için yazılım yapılandırmasını bulabilirsiniz.
#include #include #define RST_PIN 5 // RC522'nin sıfırlanması için Pin 9 #define SS_PIN 10 // RC522'nin SS (SDA) için 10 Pin'i MFRC522 mfrc522 (SS_PIN, RST_PIN); /// RC522 için nesneyi yaratıyoruz int redrojo = 1; int led yeşil = 2; int ledazul = 3; geçersiz kurulum () { Seri.begin (9600); // Seri haberleşmeye başladık pinMode (kızıl saçlı, ÇIKIŞ); // Bir çıkış olarak Kırmızı LED pinMode (yeşil led, ÇIKIŞ); // Bir çıkış olarak Yeşil LED pinMode (ledazul, ÇIKIŞ); // Bir çıkış olarak Mavi LED SPI.begin (); // SPI Bus’a başlıyoruz mfrc522.PCD_Init (); // MFRC522'yi başlatıyoruz //Serial.println ("--- Okuma kartları ---"); } bayt ActualUID 4; // Tag kodunu oku bayt günü 4 = {0xD3, 0xAD, 0x3B, 0x5B}; geç bayt 4 = {0xD7, 0x22, 0x1D, 0x01}; gece baytı 4 = {0xA0, 0x78, 0xBD, 0x4F}; int contdia = 0, conttarde = 0, contnot = 0; boşluk döngüsü () { if (mfrc522.PICC_IsNewCardPresent ()) { boşluk döngüsü () { if (mfrc522.PICC_IsNewCardPresent ()) { // UID'nizi ciddiye gönderiyoruz Serial.println ("Id targejta:"); (bayt i = 0; i <mfrc522.uid.size; i ++) { Serial.print (mfrc522.uid.uidByte i <0x10? "0": ""); Seri baskısı (mfrc522.uid.uidByte i, HEX); CurrentUID i = mfrc522.uid.uidByte i; } Seri.println (""); // kullanıcılarımızdan biri olup olmadığını belirlemek için UID'yi karşılaştırırız if (compareArray (ActualUID, day)) { contdia ++; eğer (contdia == 1) { analog yazma (kızıl saçlı, 75); analog yazma (ledverde, 75); analogWrite (ledazul, 255); Serial.println ("Veriler 1 gün"); } else eğer (contdia == 2) { contdia = 0; analog yazma (kızıl saçlı, 0); analogWrite (ledverde, 0); analogWrite (ledazul, 0); Seri.println ("Veri 2 gün"); } } if (compareArray (ActualUID, geç)) { conttarde ++; eğer (conttarde == 1) { analog yazma (kızıl saçlı, 255); analog yazma (ledverde, 75); analogWrite (ledazul, 93); Serial.println ("Veri 1 öğleden sonra"); } else eğer (conttarde == 2) { conttarde = 0; analog yazma (kızıl saçlı, 0); analogWrite (ledverde, 0); analogWrite (ledazul, 0); Serial.println ("Veriler 2 geç"); } } if (compareArray (GerçekUID, gece)) { contn ++; eğer (contnoche == 1) { analogWrite (kızıl saçlı, 87); analog yazma (ledver, 87); analogWrite (ledazul, 87); Serial.println ("Dato 1 noche"); } else eğer (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 fiili mfrc522.PICC_HaltA (); } } } // Función para comparar dos vektörleri boolean compareArray (bayt dizisi1, bayt dizisi2) { if (array1 0! = array2 0) return (yanlış); if (array1 1! = array2 1) return (yanlış); if (array1 2! = array2 2) return (yanlış); if (array1 3! = array2 3) return (yanlış); dönüş (doğru); }