Repozytorium projektów — oprogramowanie sprzętowe Shareware dla RFID Dominator: Airsoft Domination Timer firmware
Jeśli jesteś zainteresowany firmware dla RFID Stoper dominacji, skontaktuj się z autorem w języku ANGIELSKIM pod adresem:

martinius96@gmail.com

Arduino LCD RFID, NFC RC522 Stopwatch Schematics Airsoft (ASG) Paintball Stoper dominacji

RFID Stoper dominacji - Airsoft | Paintball


Nowa wersja projektu Domination Timer (RFID) obsługuje następujące typy oprogramowania czytnika RFID NXP RC522:
  • Wersja oprogramowania układowego: 0x12 = podrobiony układ — (nieoryginalny układ NXP, zamiennik)
  • Wersja oprogramowania układowego: 0x91 = Wersja 1.0 — (oryginalny układ NXP Semiconductors)
  • Wersja oprogramowania układowego: 0x92 = Wersja 2.0 — (oryginalny układ NXP Semiconductors)

  • Podmioty w RFID Stoper dominacji dla Airsoft:


    Standard bransoletki RFID ISO/IEC 14443-A - Drużyna RED
    Drużyna RED
    Standard bransoletki RFID ISO/IEC 14443-A - Drużyna GRE
    Drużyna GRE
    Standard bransoletki RFID ISO/IEC 14443-A - Sędzia
    Sędzia
    Standard bransoletki RFID ISO/IEC 14443-A - Gumka
    Gumka

    Opis projektu RFID Stoper dominacji dla Airsoftu:


    Stoper dominacji (Domination Timer / DOMINATOR) to urządzenie przystosowane do trybu gry Airsoft / Paintball DOMINACJA, ew. Zdobądź wzgórze. Stoper składa się z mikrokontrolera ATmega328P (AVR), który może być częścią zestawu uruchomieniowego Arduino (Uno / Nano / Pro Mini) lub używany samodzielnie. Wyświetlacz znakowy LCD (rozmiar 16x2 lub 20x4) służy do wizualizacji czasów. Czasy są podane w dwóch wierszach poniżej siebie i są dynamicznie aktualizowane, jeśli w danym punkcie znajduje się aktywna drużyna (punkt zajmowany przez drużynę). Stoper wyposażony jest również w elementy do sygnalizacji aktywnej drużyny (diody LED w formach drużynowych) oraz detektor (przetwornik piezoelektryczny), który zapowiada zmianę w punkcie po włożeniu karty RFID. Tryb gry DOMINACJA jest przeznaczony dla 2 drużyn - RED team i GRE team którzy grają przeciwko sobie i starają się zająć i utrzymać punkt DOMINATORA tak długo, jak to możliwe. Na początku gry wyświetlacz pokazuje czasy 00 godzin, 00 minut, 00 sekund dla RED team , zespół GRE . Każdy członek zespołu jest wyposażony w chip RFID, który jest zintegrowany z bransoletką (lub kartą/brelokiem). Chip RFID przekazuje swój identyfikator – UID, który jest odczytywany przez czytnik RFID i weryfikowany w logice systemu, do którego należy podmiot. Poszczególne bransoletki można kodować kolorami (czerwony, zielony w zależności od zespołu i funkcji podmiotu), co pozwala na szybsze rozdawanie ich graczom, ale także archiwizowanie i przechowywanie. Drużyna RED zajmie punkt, w którym członek drużyny RED dołącza swoją kartę do czytnika RFID. Ta akcja uruchamia brzęczyk, który ogłasza zmianę punktu krótkim sygnałem dźwiękowym. Następnie dioda LED drużyny RED na tej stacji zaświeci się, a wyświetlacz zacznie dodawać czas dla tej drużyny, aż do włożenia karty drużyny członka , Sędzia lub Gumka . Jeśli punkt jest zajęty przez odtwarzacz GRE i karta jest podłączona do czytnika RFID, brzęczyk zasygnalizuje tę zmianę krótkim sygnałem dźwiękowym, zapali się dioda GRE (CZERWONA dioda LED wyłącza się), aktualny czas RED zatrzymuje się , a czas GRE jest liczony.


    Jeśli Sędzia przymocuje swoją kartę RFID, obydwa czasy zostaną zatrzymane. Przerwa trwa do momentu, gdy członek RED lub GRE team przedstawi swoją kartę. Ten typ karty nadaje się zatem do tymczasowego zatrzymania trwającej gry, kontrolowania interwencji gracza lub kontuzji. Jednocześnie karta może być użyta pod koniec rundy gry, aby ocenić rundę, odrodzić drużyny przed kontynuowaniem. Jeśli Gumka podłączy kartę, oba czasy zostaną zatrzymane i zresetowane do początkowej wartości 00 godzin, 00 minut, 00 sekund, która zostanie wyświetlona. Karta gumki służy do ponownego uruchomienia gry, aby zainicjować nową grę bez konieczności włączania cyklu. Czytnik RFID natychmiast reaguje na włożenie karty RFID, uwzględniając całą logikę projektu Dominator. Projekt nadaje się na imprezy Airsoft (MilSim, LARP), obiekty sportowe, czy zespoły Airsoft, które mogą zbudować dane urządzenie Dominator z funkcjonalnym oprogramowaniem, do którego jest schemat elektryczny i projekt płytki drukowanej do produkcji maszynowej z wierceniem. Zaletą projektu RFID Stoper dominacji jest to, że licencja umożliwia klonowanie i tworzenie X punktów z tą samą konfiguracją za pomocą kodu maszynowego. Możliwe jest więc umieszczenie w grze dowolnej liczby niezależnie działających punktów RFID Stoper dominacji, które reagują na identyczne karty RFID. System jest przetestowany, funkcjonalny, można go szybko wdrożyć na kompatybilnym sprzęcie. Czytnik NXP RC522 pracuje na częstotliwości 13,56 MHz, rejestruje tagi RFID z dokładnością do ok. 3 centymetrów (wymagany jest prawie fizyczny kontakt z czytnikiem), zgodny format tagów ISO/IEC 14443-A (MIFARE CLASSIC 1K, DesFire EV1, kompatybilność wsteczna z ISO/IEC 14443 -4). ISIC, karty magistrali, które działają jak karty NFC i mogą przekazywać swój fizyczny adres - UID do czytnika znajdującego się w zasięgu - również wchodzą w zakres danego standardu tagów.


    Lista czasów na wyświetlaczu znakowym LCD 20x4:


    Wyświetlacz znakowy LCD 20x4 - Arduino Domination Timer - Stoper dominacji

    Kompatybilny sprzęt sterujący dla RFID Stoper dominacji:


    Mikrokontroler sterujący ATmega328P DIP
    ATmega328P - DIP28
    Mikrokontroler sterujący ATmega328P SMD
    ATmega328P - SMD

    Kompatybilne urządzenia peryferyjne do RFID Stoper dominacji:


    RFID Stoper dominacji - DOMINATION TIMER

    Zasada funkcjonalności projektu RFID Stoper dominacji od strony sprzętowej:


    Czytnik RFID NXP RC522 komunikuje się z mikrokontrolerem (układ Arduino / samodzielny ATmega328P) za pośrednictwem magistrali SPI z sygnałem zegarowym (SCLK) 4 MHz. Czytnik RC522 reaguje na chip RFID w odległości ok. 3 cm od anteny, z konfigurowalnym wzmocnieniem anteny w zakresie od 18 do 48 dB (48 dB jest używane w finalnej aplikacji dla Stoper dominacji). Odczytuje UID (identyfikator) chipów RFID znajdujących się w zasięgu, przekazuje ten identyfikator do Arduino. Arduino porównuje adres odczytanej karty w wielu warunkach, wyzwala sygnał dźwiękowy, stosuje stany cyfrowe na diody LED, uruchamia uniwersalny licznik sterowany wewnętrzną funkcją millis(), która odpowiada za zliczanie obu czasów. W oparciu o spełniony warunek, licznik zostanie zastosowany do danej drużyny, do której należy UID i licznik czasu jest uruchomiony. Czas kreślony jest na wyświetlaczu LCD 16x2 lub 20x4. Dane czasowe są przesyłane magistralą I2C z sygnałem zegarowym (SCL) o częstotliwości 100 kHz (standardowa prędkość). Aby jak najszybciej przywrócić wyświetlanie, nadpisywany jest tylko numer na danej pozycji (podany znak). Godziny i minuty i sekundy są przepisywane tylko przy zmianie i zawsze tylko dla danej drużyny. W przypadku dużego zainteresowania można stworzyć firmware w kodzie maszynowym dla ATmega328P do pomiaru dla innych typów czytników RFID: RDM6300, PN532, Wiegand W26, zwiększenie sygnału zegara magistrali I2C do 400 kHz (Fast Speed). Możliwość rozszerzenia oprogramowania dla gry Stoper dominacji do 3 lub 4 drużyn.

    RFID Domination Timer - game with 4 teams
    Maksymalny czas, jaki można wyświetlić: 99 godzin, 59 minut i 59 sekund
    Zużycie: ok. 110mAh przy zasilaniu 5V. Wygodny do zasilania przez power bank, ładowarkę z telefonu z wyjściem USB.

    Ustalenie projektu RFID Stoper dominacji:


    Projekt RFID Stoper dominacji pod względem wszechstronności nadaje się do wdrożenia w akcjach Airsoft, a dzięki możliwości klonowania oprogramowania, możliwe jest umieszczenie X punktów DOMINATOR na polu gry z identycznym oprogramowaniem, w które gracze mogą grać z te same karty RFID. Stoper dominacji jest również odpowiedni dla zespołów, obiektów sportowych i placów zabaw, które mogą wykorzystać to urządzenie do rozszerzenia usług i trybów gry oferowanych dla różnej liczby graczy. Jeśli karty RFID, bransoletki lub breloki są oznaczone kolorami, jest to bardzo łatwe i uniwersalne dla graczy w oparciu o ich drużynę. Ich archiwizacja jest również łatwa. Korzystanie z kart, bransoletek lub breloczków jest łatwe i poradzi sobie w grach Airsoft w każdym wieku. Sam chip RFID jest chroniony w plastikowej obudowie, nie przeszkadza mu błoto, brud, woda, mróz, jest w pełni bezobsługowy. Nie posiada baterii, chip aktywuje czytnik RFID, który ładuje go transmitowanym polem elektromagnetycznym i umożliwia przesłanie identyfikatora UID, jeśli znajduje się w zasięgu czytnika RFID. Stoper dominacji nadaje się do trybów gry z taką samą liczbą graczy w obu drużynach, m.in. DOMINACJA, Punkt kontrolny (Punkty za wiele sklonowanych punktów Stopera dominacji). Zastosowanie jest głównie do sportów Airsoft, Paintball, Nerf Wars.


    Demonstracja funkcjonalna - RFID Stoper dominacji:



    DPłytka drukowana - (PCB) - RFID Stoper dominacji - GERBER / produkcja według trasy fotograficznej


    Projekt PCB uwzględnia zastosowanie płytki Arduino Nano
  • PCB jest dwustronna z nawisami o wymiarach 100x105mm

  • Produkcja PCB dla RFID Stoper dominacji w Chinach/Słowacji


    Obwody drukowane mogą być produkowane na Słowacji w PB Spoj , gdzie mogą produkować dwustronne PCB. Produkcja może być realizowana na przykład w Chinach, gdzie mogą produkować dwustronne PCB z projektu GERBER. Jednym z najpopularniejszych i najtańszych producentów jest JLCPCB, gdzie pliki GERBER można przesyłać bezpośrednio jako archiwum .zip. Płytka jest wizualizowana, warstwy, wymiary płytki, dwustronna płytka są ustawiane automatycznie. Produkcja trwa 1-2 dni. Ten producent słynął kiedyś z akcji wyprodukowania 10 sztuk płytek PCB za 2 dolary.


    Dziś JLCPCB pozwala wyprodukować 5 sztuk tej płytki do RFID Stoper dominacji za 6,96 €, 10 sztuk za 10,16 € (obecnie od stycznia 2021 ceny rosną). Wysyłka - najtańsza alternatywa jest dostępna w cenie 7,44 € za dostawę DHL w ciągu 3-5 dni roboczych, natomiast cena przesyłki to 23,16 €. JLCPCB automatycznie zastosuje kupon rabatowy o wartości 8 € na wysyłkę, który zostanie Ci przydzielony po rejestracji. Tak więc, przy najtańszej alternatywie wysyłki z dostawą w ciągu 25 dni, ta wysyłka jest bezpłatna z kuponem przy pierwszym zakupie. Ciekawym producentem PCB jest również firma AISLER, która oferuje produkcję PCB już od 3 sztuk w cenie około 7,6 € za sztukę z darmową wysyłką, czy też oferuje możliwość dostawy za dodatkową opłatą za pośrednictwem UPS. Możliwe jest również wykorzystanie innych dostępnych producentów, np. PCBWay, AllPCB, NextPCB, SeeedStudio, które posiadają technologię produkcji PCB metodą maszynową z plików GERBER.

    Płytka do Airsoftu Stoper dominacji - AISLER Wyposażony w płytkę drukowaną z elementami do RFID Dominator

    Listwa pinowa w konstrukcji PCB:


  • 2x female pin-header 15-pin (dla Arduino Nano)
  • 1x female pin-header 8-pin (do czytnika RFID NXP RC522)
  • 1x female 90° pin-header 4-pin (dla konwertera I2C LCD displeja 20x4)

  • Przekładki w projektowaniu PCB:


  • 4x przekładka do wyświetlacza znakowego LCD 20x4 (Ø max 2,5 mm)
  • 2x rozpórka RFID NXP RC522 (Ø max 3,5 mm)

  • Wymiary elementów:


    Dostępny jest dokument PDF z wymiarami części użytych do montażu PCB: TUTAJ

    Okablowanie płytki drukowanej - RFID Stoper dominacji - w pełni odpowiada schematowi elektrycznemu:


    Arduino Uno / Nano (ATmega328P) NXP RFID RC522
    GND GND
    3V3 3V3
    D9 RST
    D10 SDA (SS)
    D11 MOSI
    D12 MISO
    D13 SCK
    Arduino Uno / Nano (ATmega328P) Konwerter I2C do wyświetlacza LCD
    GND GND
    5V Vcc
    A4 (Hardware SDA) SDA
    A5 (Hardware SCL) SCL
    Arduino Uno / Nano (ATmega328P) Brzęczyk
    GND GND
    D5 IN
    Arduino Uno / Nano (ATmega328P) Diody LED
    GND GND
    D4 IN (RED)
    D3 IN (GREEN)

    Schemat połączeń - RFID Stoper dominacji:


    Airsoft Dominator RFID

    Program testowy (Shareware) - RFID Stoper dominacji z kodem maszynowym


    Wersja Shareware w postaci kodu maszynowego (.hex) jest dostępna dla projektu RFID Stoper dominacji dla mikrokontrolera Arduino (ATmega328P, czyli Arduino Uno / Nano / Pro Mini). Wersja pozwala na wstępne zapisanie 4 różnych kart RFID UID, które są przypisane do zespołów RED, GRE, Referee i Eraser. Żądanie wprowadzenia konkretnej karty wyświetlane jest na wyświetlaczu LCD 16x2 lub 20x4 z konwerterem I2C. W dalszej kolejności możliwe jest przetestowanie mechaniki gry oraz reakcji czytnika na kartę RFID z wizualizacją czasu na wyświetlaczu. Możliwe jest zmierzenie maksymalnie 15 sekund gry dla każdej drużyny z możliwością zresetowania jej za pomocą karty Gumka i ponowne mierzenie przez 15 sekund w nieskończoność. Celem wersji jest weryfikacja zgodności z Twoim sprzętem. Kody maszynowe oparte na adresie konwertera I2C dla wyświetlacza LCD są dostępne w repozytorium Github. Najczęściej używane adresy konwerterów I2C to 0x27 i 0x3F. Jeśli nie znasz adresu swojego konwertera, skorzystaj z przykładu wbudowanego w Arduino IDE -> I2C Scanner (dostępny również na tej stronie na końcu), który zapisze adres do interfejsu UART (Serial Monitor). Kod maszynowy można wgrać do mikrokontrolera Arduino Uno za pomocą oprogramowania AVRDUDE - części Arduino IDE lub za pomocą interfejsu GUI za pośrednictwem XLoader - łatwiejszy w użyciu.

  • AVRDUDE musi być uruchamiany przez CMD (wiersz poleceń) zainstalowany z Arduino IDE. Znajduje się w C: /Users/User/Documents/ArduinoData/packages/arduino/tools/avrdude/6.X.X-arduino/bin
  • Przykładowe polecenie do wgrania programu do Arduino Uno / Nano (ATmega328P):
  • avrdude -CC: avrdude.conf -v -patmega328p -carduino -PCOM21 -b115200 -D -Uflash:w:sketch.ino.hex:i
  • XLoader to aplikacja Windows (narzędzie wykonywalne .exe) z prostym interfejsem graficznym co pozwala wybrać firmware - kod maszynowy (.hex), platformę docelową i może dynamicznie pokazywać port COM, na którym znajduje się urządzenie.
  • Po prostu klikając Prześlij, kod maszynowy może zostać załadowany automatycznie ( XLoader używa podobny do narzędzia Arduino IDE AVRDUDE). Okno XLoader informuje o pomyślnym przesłaniu, podając liczbę przesłanych bajtów.
  • Wersję oprogramowania sprzętowego projektu RFID Dominator można pobrać z repozytorium: < Firmware dostępny TUTAJ . Firmware znajduje się w folderze Github repozytorium projektu /rfid_dominator/ podzielony według adresu konwertera I2C (dowiedziałeś się z wyjścia skanera I2C na interfejsie UART).

    Dostępne oprogramowanie (Shareware) - RFID Stoper dominacji


    Nazwa oprogramowania układowego (w folderze rfid_dominator) Funkcjonalność Pobierać
    RFID_Dominator_0x27.hex Testowe oprogramowanie projektu RFID Dominator pozwala na pomiar czasu 15 sekund dla każdego zespołu. Przeznaczony do wyświetlacza LCD 16x2 lub 20x4 z konwerterem I2C, który komunikuje się pod adresem 0x27 Pobierz oprogramowanie
    RFID_Dominator_0x3F.hex Testowe oprogramowanie projektu RFID Dominator pozwala na pomiar czasu 15 sekund dla każdego zespołu. Przeznaczony do wyświetlacza LCD 16x2 lub 20x4 z konwerterem I2C, który komunikuje się pod adresem 0x3F Pobierz oprogramowanie

    Demonstracja funkcjonalna - Shareware RFID Stoper dominacji:


    W przypadku najnowszych chińskich klonów Arduino Nano, które posiadają "Stary Bootloader", konieczne jest nagrywanie z prędkością 57600 bodów/s! Dla innych wersji z nowszym Bootloaderem 115200 bodów/s (ta prędkość jest również wykorzystywana w poleceniu AVRDUDE do ładowania kodu maszynowego).

    Program do odczytu adresów UID kart RFID dla Stoper dominacji


    Program służy do pobierania identyfikatorów (UID) tagów RFID, kart, które będą używane w programie dla RFID Stoper dominacji - ten kod źródłowy nie reprezentuje DOMINATOR RFID lub jego logika! . Karta UID RFID jest zapisywana do monitora szeregowego (UART) - stosowana prędkość to 9600 bodów/s (znaków na sekundę). Oświadczenie powinno zostać zapisane i przepisane w czytelnym dokumencie .xls (EXCEL), co ułatwi zarządzanie przypisanymi kartami RFID do określonych zespołów i podmiotów do ostatecznej aplikacji RFID DOMINATOR, której kod maszynowy jest powiązany z dostarczone karty UID. Musisz zaimportować bibliotekę MFRC522 do swojego Arduino IDE, aby pomyślnie załadować kod źródłowy w celu załadowania kart UID.


    Dostępne biblioteki dla mikrokontrolerów (Arduino)


    Archiwum biblioteki (.zip) rozwiń do C:/Users/[User]/Documents/Arduino/libraries
    Nazwa biblioteki Funkcja biblioteki Ściągnij
    MFRC522

    Biblioteka dla mikrokontrolerów AVR (ATmega) Arduino Uno / Nano / Mega. Umożliwia komunikację z czytnikiem RFID NXP RC522 poprzez magistralę SPI.

    Ściągnij
    LiquidCrystal_I2C

    Biblioteka dla mikrokontrolerów AVR (ATmega) Arduino Uno / Nano / Mega. Umożliwia komunikację z wyświetlaczem znakowym LCD poprzez magistralę I2C.

    Ściągnij

    Przykład zapisanych kart RFID UID - dokument Excel .xls:


    Fizyczne karty RFID UID przechowywane w przejrzystym dokumencie Excel

    Szablon programu Excel (.xls) do pisania UID — Arkusze kalkulacyjne Google online: Google Tabuľky - RFID DOMINATOR Template

    Wdrażanie oprogramowania - DOMINATION TIMER RFID
    Szablon dostępny również w wersji offline w formacie .xlsx: Template.xlsx
    /*|-------------------------------------------------------------|*/
    /*|Tytuł: Ładowanie kart RFID UID                               |*/
    /*|Opis: Czyta przez czytnik RFID RC522 adres dołączonej        |*/
    /*|i wydrukowanej karty RFID UID na interfejsie UART.           |*/
    /*|Zarejestrowane karty UID zostaną wykorzystane do DOMINATORA  |*/
    /*|Autor: Ing. Martin Chlebovec                                 |*/
    /*|E-mail: martinius96@gmail.com                                |*/
    /*|Licencja na użytkowanie: MIT                                 |*/
    /*|Wersja: 12 marca 2021 r.                                     |*/
    /*|-------------------------------------------------------------|*/
    
    
    // Szablon - Google SpreadSheet: https://docs.google.com/spreadsheets/d/1EHpdJi8v84eJ-6ExEPT6JuPkxI9Tfbm8v85zGRFvJ1Q/edit?usp=sharing
    
    
    /*
     * Typical pin layout used:
     * -----------------------------------------------------------------------------------------
     *             MFRC522      Arduino       Arduino   Arduino    Arduino          Arduino
     *             Reader/PCD   Uno/101       Mega      Nano v3    Leonardo/Micro   Pro Micro
     * Signal      Pin          Pin           Pin       Pin        Pin              Pin
     * -----------------------------------------------------------------------------------------
     * RST/Reset   RST          9             5         D9         RESET/ICSP-5     RST
     * SPI SS      SDA(SS)      10            53        D10        10               10
     * SPI MOSI    MOSI         11 / ICSP-4   51        D11        ICSP-4           16
     * SPI MISO    MISO         12 / ICSP-1   50        D12        ICSP-1           14
     * SPI SCK     SCK          13 / ICSP-3   52        D13        ICSP-3           15
     *
     */
    #include <SPI.h>
    #include <MFRC522.h>
    #define SS_PIN 10
    #define RST_PIN 9
    
    MFRC522 rfid(SS_PIN, RST_PIN); // Instance of the class
    void setup() {
      Serial.begin(9600);
      while (!Serial);
      SPI.begin();
      rfid.PCD_Init(); // Init MFRC522
      rfid.PCD_SetAntennaGain(rfid.RxGain_max);
      rfid.PCD_DumpVersionToSerial();
    }
    
    void loop() {
      if (rfid.PICC_IsNewCardPresent() && rfid.PICC_ReadCardSerial()) {
        Serial.print(F("Card UID: "));
        dump_byte_array(rfid.uid.uidByte, rfid.uid.size);
        Serial.println();
        Serial.print(F("PICC type: "));
        MFRC522::PICC_Type piccType = rfid.PICC_GetType(rfid.uid.sak);
        Serial.println(rfid.PICC_GetTypeName(piccType));
        rfid.PICC_HaltA();
        rfid.PCD_StopCrypto1();
      }
    
    }
    
    void dump_byte_array(byte *buffer, byte bufferSize) {
      for (byte i = 0; i < bufferSize; i++) {
      }
      Serial.print("Przeczytany kod: ");
      unsigned long kod = 10000 * buffer[4] + 1000 * buffer[3] + 100 * buffer[2] + 10 * buffer[1] + buffer[0]; //finalny kod karty
      Serial.println(kod);
    }
    

    Použitia výstupu programu do hlavnej RFID Dominator aplikácie:


    Zarejestrowane karty RFID UID dla RED, GRE, sędziego i gumki są wprowadzane w pola. Pola można łatwo skalować, aby zwiększyć liczbę graczy, sędziów ... UID musi być podany w danych wyjściowych .xls. Możesz użyć szablonu publicznego dla arkuszy kalkulacyjnych Google nad kodem źródłowym (ikona arkusza kalkulacyjnego Google). Całe pola są przechowywane w pamięci flash mikrokontrolera jako segmenty tylko wierszowe, dzięki czemu pola nie muszą działać w pamięci RAM, aby zajmować pamięć operacyjną używaną przez DOMINATOR. Jednocześnie pola nie są rozszerzalne podczas działania programu. Ich ustawienie, rozmiar jest ustalony dla konkretnego zastosowania. Standardowy program RFID Stoper dominacji dla 10x UID dla drużyny RED i GRE oraz 2x UID dla Sędziego i Gumki (łącznie 24x UID) zajmuje 9512 bajtów pamięci flash, m.in. 30% i 501 bajtów pamięci RAM, tj. 24%. Ciągi statyczne (const) zmienne przechowywane w PROGMEM. Używane makro F do raportów statycznych na monitorze UART lub na wyświetlaczu znakowym LCD.


    Skaner I2C - program do odczytu adresu konwertera I2C dla wyświetlacza LCD


    Oczekiwane wyjście skanera I2C:


    Lista adresów I2C na których komunikuje się konwerter I2C dla wyświetlacza 16x2 / 20x4

    Biblioteka Wire jest wbudowana w Arduino IDE, nie jest wymagana instalacja. Program można skompilować i zweryfikować komunikację poprzez magistralę I2C z wyświetlaczem znakowym LCD. Konwerter I2C należy przed wczytaniem programu podłączyć do Arduino do sprzętowych terminali I2C (SCL na A5, SDA na A4), wystarczy nawet bez wyświetlacza. Pobrany adres wyświetlacza musi być dostarczony do pomyślnej kompilacji dla Arduino wraz z identyfikatorem UID kart RFID.

    #include <Wire.h>
     
     
    void setup()
    {
      Wire.begin();
     
      Serial.begin(9600);
      while (!Serial);             // Leonardo: wait for serial monitor
      Serial.println("\nI2C Scanner");
    }
     
     
    void loop()
    {
      byte error, address;
      int nDevices;
     
      Serial.println("Scanning...");
     
      nDevices = 0;
      for(address = 1; address < 127; address++ )
      {
        // The i2c_scanner uses the return value of
        // the Write.endTransmisstion to see if
        // a device did acknowledge to the address.
        Wire.beginTransmission(address);
        error = Wire.endTransmission();
     
        if (error == 0)
        {
          Serial.print("I2C device found at address 0x");
          if (address < 16)
            Serial.print("0");
          Serial.print(address,HEX);
          Serial.println("  !");
     
          nDevices++;
        }
        else if (error==4)
        {
          Serial.print("Unknown error at address 0x");
          if (address < 16)
            Serial.print("0");
          Serial.println(address,HEX);
        }    
      }
      if (nDevices == 0)
        Serial.println("No I2C devices found\n");
      else
        Serial.println("done\n");
     
      delay(5000);           // wait 5 seconds for next scan
    }