Project Repository - Firmware Shareware pour RFID Domination Timer: Micrologiciel Airsoft Domination Timer
Si vous êtes intéressé par le firmware du RFID Domination Timer, veuillez contacter l'auteur en anglais à:

martinius96@gmail.com

Arduino LCD RFID, NFC RC522 Chronomètre Schème Airsoft Paintball Domination Timer

RFID Domination Timer - Chronomètre pour Airsoft | Paintball


La nouvelle version du projet RFID Domination Timer prend en charge les types suivants de micrologiciel de lecteur RFID NXP RC522 :
  • Version du micrologiciel : 0x12 = puce contrefaite - (puce NXP non originale, remplacement)
  • Version du micrologiciel : 0x91 = Version 1.0 - (puce NXP Semiconductors d'origine)
  • Version du micrologiciel : 0x92 = Version 2.0 - (puce NXP Semiconductors d'origine)

  • Entités du jeu RFID Domination Timer pour Airsoft:


    Bracelet RFID ISO/CEI 14443-A - Equipe RED
    L'équipe RED
    Bracelet RFID ISO/CEI 14443-A - Equipe GRE
    L'équipe GRE
    Bracelet RFID ISO/CEI 14443-A - Arbitre
    Arbitre
    Bracelet RFID norme ISO/IEC 14443-A - Gomme
    Gomme

    Description du projet RFID Domination Timer pour Airsoft:


    Domination Timer (DOMINATOR) est un compteur de temps (chronomètre) conçu pour 2 équipes qui jouent l'une contre l'autre. Le chronomètre convient au mode de jeu Airsoft / Paintball DOMINATION, resp. Capturer la colline. Ils se composent d'un microcontrôleur ATmega328P (AVR), qui peut faire partie du kit de développement Arduino (Uno / Nano / Pro Mini) ou être utilisé de manière autonome. Un afficheur à caractères LCD (taille 16x2 ou 20x4) permet de visualiser les temps, qui est relié au microcontrôleur et communique avec lui. Les temps sont listés sur deux lignes l'une en dessous de l'autre et sont mis à jour dynamiquement s'il y a une équipe active au point (un point occupé par une équipe). Le chronomètre est équipé d'indicateurs LED sous la forme d'équipes individuelles, qui signalent l'équipe active au point et d'un détecteur (transducteur piézo), qui annonce le changement au point après avoir fixé la carte RFID. Les équipes sont implémentées dans le jeu - équipe RED et équipe GRE qui jouent les uns contre les autres et essaient d'occuper le point puis de le garder le plus longtemps possible. Au début du jeu, l'écran affiche les temps 00 heures, 00 minutes, 00 secondes pour l'équipe ROUGE , équipe GRE . Chaque membre de l'équipe est équipé d'une puce RFID intégrée au bracelet (ou carte/porte-clés). La puce RFID transmet son identifiant unique - UID (identifiant unique), qui est lu par un lecteur RFID et vérifié dans la logique du système auquel appartient l'entité (équipe). Les bracelets individuels peuvent être codés par couleur (rouge, vert par fonction d'équipe et d'entité), ce qui permet de les distribuer plus rapidement aux joueurs, mais aussi de les archiver et de les stocker par couleur. L'équipe RED occupera le point où le membre de l'équipe RED attachera sa carte au lecteur RFID. Cette action déclenche un buzzer qui annonce le changement de point par un bip court. Par la suite, la LED de l'équipe ROUGE à cette station s'allumera et l'affichage commencera à ajouter le temps pour cette équipe jusqu'à ce que la carte d'équipe du membre soit insérée , Arbitre , ou Gomme . Si le point est occupé par un lecteur GRE et que la carte est attachée à un lecteur RFID, le buzzer annoncera ce changement avec un bip court, la LED GRE s'allumera (la LED ROUGE s'éteint), l'heure actuelle de RED s'arrête et l'heure de GRE est comptée.


    Si l'arbitre attache sa carte RFID, le temps de course s'arrêtera à la valeur actuelle. Le point devient neutre, la LED de l'équipe active s'éteint. L'arrêt dure jusqu'à ce qu'un membre de l' équipe RED ou l'équipe GRE présente sa carte. Ce type de carte est ainsi adapté pour arrêter momentanément une partie en cours, contrôler l'intervention d'un joueur ou des blessures. Dans le même temps, la carte peut être utilisée à la fin d'un tour de jeu, pour évaluer le tour, respawn des équipes avant de continuer. Si Eraser attache la carte, les deux temps s'arrêteront et se réinitialiseront à la valeur initiale de 00 heures, 00 minutes, 00 secondes, qui sera affichée. La carte Eraser est utilisée pour redémarrer le jeu, pour initialiser un nouveau jeu sans avoir besoin d'un cycle de mise sous tension. Le lecteur RFID répond immédiatement à l'insertion d'une carte RFID, y compris toute la logique du projet Domination Timer. Le projet convient aux événements Airsoft (MilSim, LARP), aux installations sportives ou aux équipes Airsoft, qui peuvent construire un Domination Timer avec leur propre matériel. Le firmware est universel, basé sur le schéma de câblage, il est également possible d'utiliser la conception de PCB disponible pour la production de cartes de circuits imprimés. L'avantage du projet RFID Domination Timer est que la licence d'utilisation autorise l'utilisateur à cloner et créer X points avec la même configuration via le code machine. Le code machine (.hex) est un format de micrologiciel compilé pour le projet RFID Domination Timer pour les cartes RFID UID fournies qui sont intégrées dans le code avant la compilation. Il est ainsi possible de placer n'importe quel nombre de points RFID Domination Timer fonctionnant indépendamment dans le jeu, qui répondent à des cartes RFID identiques selon une configuration uniforme. Le système RFID Domination Timer est réglé, il peut être mis en jeu immédiatement. Téléchargements du micrologiciel dans les 10 secondes via XLoader .


    Liste des temps sur l'affichage à caractères LCD 20x4 :


    LCD character display 20x4 - Arduino Domination Timer - Domination Timer

    Matériel de contrôle compatible pour RFID Domination Timer:



    Périphériques compatibles pour RFID Domination Timer :


    RFID Domination Timer - DOMINATION TIMER

    Le principe de fonctionnalité du projet RFID Domination Timer en termes de matériel:


    Le lecteur RFID NXP RC522 communique avec le microcontrôleur (puce Arduino / autonome ATmega328P) via le bus SPI avec un signal d'horloge (SCLK) de 4 MHz. Le RC522 répond à la puce RFID à une distance d'environ 3 cm de l'antenne, avec un gain d'antenne configurable dans la plage de 18 à 48 dB (48 dB est utilisé dans l'application finale pour le Domination Timer). Lit l'UID (identifiant) des puces RFID à portée, transmet cet identifiant à Arduino. Arduino compare l'adresse de la carte lue dans plusieurs conditions, déclenche un bip sonore, applique des états numériques aux LED, exécute un compteur universel contrôlé par la fonction interne millis (), qui est responsable du comptage des deux fois. Sur la base de la condition remplie, le compteur sera appliqué à l'équipe donnée à laquelle appartient l'UID et le compteur de temps est en cours d'exécution. L'heure est tracée sur un écran LCD 16x2 ou 20x4 caractères. Les données temporelles sont envoyées via le bus I2C avec un signal d'horloge (SCL) de 100 kHz (vitesse standard). Pour rétablir l'affichage le plus rapidement possible, seul le numéro à la position donnée (caractère donné) est écrasé. Les heures, les minutes et les secondes ne sont réécrites que lorsqu'elles sont modifiées et toujours uniquement pour une équipe donnée. En cas d'intérêt sérieux, un firmware peut être créé dans le code machine pour ATmega328P à mesurer pour d'autres types de lecteurs RFID : RDM6300, PN532, Wiegand W26, augmentation du signal d'horloge du bus I2C jusqu'à 400 kHz (Fast Speed). Extension possible du firmware du jeu Domination Timer à 3 ou 4 équipes par accord individuel.

    RFID Domination Timer - game with 4 teams
    La plage de temps maximale pouvant être affichée: 99 heures, 59 minutes et 59 secondes
    Consommation : environ 110 mAh sous 5V. Convient pour alimenter via une banque d'alimentation, un chargeur à partir d'un téléphone avec sortie USB.

    Détermination du projet RFID Domination Timer:


    En termes de polyvalence, le projet RFID Domination Timer est adapté à la mise en œuvre dans les actions Airsoft, et avec la possibilité de clonage de firmware, il est possible d'installer X points Domination Timer avec un firmware identique dans le champ de jeu, que les joueurs peuvent jouer avec le mêmes cartes RFID. Domination Timer convient également aux équipes, aux installations sportives et aux terrains de jeux, qui peuvent utiliser cet appareil pour étendre les services et les modes de jeu pour différents nombres de joueurs. Si les cartes, bracelets ou porte-clés RFID sont codés par couleur, c'est très facile et universellement distribué aux joueurs en fonction de leur équipe. Leur archivage est également facile. L'utilisation de cartes, de bracelets ou de porte-clés est facile et peut gérer tous les âges dans les jeux Airsoft. La puce RFID elle-même est protégée dans un boîtier en plastique, elle ne craint pas la boue, la saleté, l'eau, le gel, elle ne nécessite aucun entretien. Il n'a pas de batterie, la puce active le lecteur RFID, qui le charge avec le champ électromagnétique transmis et lui permet d'envoyer un UID - identifiant s'il est à portée du lecteur RFID. Domination Timer convient aux modes de jeu avec le même nombre de joueurs dans les deux équipes, par ex. DOMINATION, Capture Point (Points pour plusieurs points Domination Timer clonés). L'utilisation est principalement pour les sports Airsoft, Paintball, Nerf Wars.


    Démonstration fonctionnelle - Minuterie de domination RFID :



    Circuit imprimé - (DPS) - Minuterie de domination RFID - GERBER / production de chemin photo


    La conception du PCB prend en compte l'utilisation de la carte Arduino Nano
  • PCB est double face avec perforations, dimensions : 100x105mm

  • Production de PCB pour RFID Domination Timer en Chine/Slovaquie


    Les PCB peuvent être fabriqués en Slovaquie chez PB Spoj , où ils peuvent produire des PCB double face. La production peut être réalisée, par exemple, en Chine, où ils peuvent produire des PCB double face de conception GERBER. L'un des fabricants les plus populaires et les moins chers est JLCPCB, où les fichiers GERBER peuvent être téléchargés directement sous forme d'archive .zip. Le PCB est visualisé, les couches, les dimensions du PCB, le PCB double face sont réglés automatiquement. La production prend 1-2 jours. Ce fabricant était célèbre pour l'action de produire 10 pièces de PCB pour 2 $.


    Aujourd'hui, JLCPCB vous permet de produire 5 pièces de ce PCB pour RFID Domination Timer pour 6,96 €, 10 pièces pour 10,16 € (actuel à partir de janvier 2021, les prix sont en hausse). Expédition - l'alternative la moins chère est disponible à 7,44 € pour une livraison DHL dans les 3-5 jours ouvrables, tandis que le prix de l'envoi est de 23,16 €. JLCPCB appliquera automatiquement un bon de réduction de 8€ pour les frais de port, qui vous sera attribué lors de votre inscription. Ainsi, avec l'alternative d'expédition la moins chère avec livraison sous 25 jours, cette expédition est gratuite avec le coupon lors du premier achat. Un fabricant de PCB intéressant est également AISLER, qui propose une production de PCB à partir de 3 pièces avec un prix d'environ 7,6 € par pièce avec livraison gratuite, ou offre également la possibilité d'une livraison moyennant un supplément via UPS. Il est également possible d'utiliser d'autres fabricants disponibles, par exemple : PCBWay, AllPCB, NextPCB, SeeedStudio, qui disposent de la technologie de production de PCB par méthode machine à partir de fichiers GERBER.

    DPS pre Airsoft Domination Timer - AISLER Osadená DPS s komponentami pre RFID Domination Timer

    En-tête de broche dans la conception de PCB :


  • 2x embase femelle 15 broches (pour Arduino Nano)
  • 1x embase femelle 8 broches (pour lecteur RFX NXP RC522)
  • 1x embase femelle 90° 4 broches (pour convertisseur d'affichage LCD I2C 20x4)

  • Entretoises dans le PCB de conception :


  • 4x entretoises pour afficheur LCD à caractères 20x4 (Ø max 2,5 mm)
  • 2x Entretoises RFID NXP RC522 (Ø max 3,5 mm)

  • Dimensions de la pièce :


    Un document PDF avec les dimensions des composants utilisés pour le montage sur PCB est disponible: TU

    Le câblage du circuit imprimé - RFID Domination Timer - correspond parfaitement au schéma de câblage:


    Arduino Uno / Nano (ATmega328P) NXP RFID RC522
    GND GND
    3V3 3V3
    D9 RST
    D10 SDA (SS)
    D11 (Hardware MOSI) MOSI
    D12 (Hardware MISO) MISO
    D13 (Hardware SCK) SCK
    Arduino Uno / Nano (ATmega328P) Convertisseur I2C pour écran LCD
    GND GND
    5V Vcc
    A4 (Hardware SDA) SDA
    A5 (Hardware SCL) SCL
    Arduino Uno / Nano (ATmega328P) Ronfleur
    GND GND
    D5 IN
    Arduino Uno / Nano (ATmega328P) LED
    GND GND
    D4 IN (RED)
    D3 IN (GREEN)

    Schéma de câblage - Minuterie de domination RFID:


    Airsoft Domination Timer RFID

    Programme de test (Shareware) - RFID Domination Timer avec code machine


    Une version Shareware en code machine (.hex) est disponible pour le projet RFID Domination Timer pour le microcontrôleur Arduino (ATmega328P c'est-à-dire Arduino Uno / Nano / Pro Mini). La version vous permet d'enregistrer initialement 4 cartes RFID UID différentes, qui sont attribuées aux équipes RED, GRE, Referee et Eraser. La demande de saisie d'une carte spécifique s'affiche sur un afficheur LCD 16x2 ou 20x4 caractères avec un convertisseur I2C. Par la suite, il est possible de tester la mécanique du jeu et la réponse du lecteur à la carte RFID avec visualisation du temps sur l'afficheur. Il est possible de mesurer un maximum de 15 secondes de jeu pour chaque équipe avec la possibilité de le réinitialiser avec une carte gomme et de mesurer à nouveau pendant 15 secondes indéfiniment. L'objectif de la version est de vérifier la compatibilité avec votre matériel. Les codes machine basés sur l'adresse du convertisseur I2C pour l'écran LCD sont disponibles dans le référentiel Github. Les adresses de convertisseur I2C les plus utilisées sont 0x27 et 0x3F. Si vous ne connaissez pas l'adresse de votre convertisseur, utilisez l'exemple intégré dans Arduino IDE -> I2C Scanner (également disponible sur cette page à la fin), qui écrira l'adresse sur l'interface UART (Serial Monitor). Le code machine peut être téléchargé sur le microcontrôleur Arduino Uno via le logiciel AVRDUDE - qui fait partie de l'IDE Arduino, ou avec une interface graphique via XLoader - plus facile à utiliser.

  • AVRDUDE doit être exécuté via le CMD (ligne de commande) installé avec l'IDE Arduino. Situé dans C:/Users/User/Documents/ArduinoData/packages/arduino/tools/avrdude/6.X.X-arduino/bin
  • Exemple de commande pour télécharger un programme sur Arduino Uno/Nano (ATmega328P) :
  • avrdude -CC : avrdude.conf -v -patmega328p -carduino -PCOM21 -b115200 -D -Uflash : w : sketch.ino.hex :
  • XLoader est une application Windows (outil exécutable .exe) avec une interface graphique simple qui vous permet de sélectionner le firmware - code machine (.hex), la plate-forme cible et peut afficher dynamiquement le port COM sur lequel se trouve l'appareil.
  • En cliquant simplement sur Télécharger, le code machine peut être téléchargé automatiquement ( XLoader utilise similaire à l'outil AVRDUDE d'Arduino IDE). La fenêtre XLoader vous informe d'un téléchargement réussi en indiquant le nombre d'octets téléchargés.
  • La version du firmware du projet RFID Domination Timer peut être téléchargée depuis le référentiel : Firmware disponible ICI. Le firmware se trouve dans le dossier Github du référentiel du projet / rfid_Domination Timer / divisé en fonction de l'adresse du convertisseur I2C (vous l'avez découvert à partir de la sortie du scanner I2C sur l'interface UART). Le programme prend un maximum de 10 secondes pour enregistrer. Par la suite, le firmware démarrera automatiquement et pourra être testé. Dans le cas de la version complète du projet RFID Domination Timer, il peut être utilisé en permanence sans restrictions.

    Firmware disponible (Shareware) - RFID Domination Timer


    Nom du micrologiciel (dans le dossier rfid_dominator) Fonctionnalité Télécharger
    RFID_Domination Timer_0x27.hex Le firmware de test du projet RFID Domination Timer permet de mesurer un temps de 15 secondes pour chaque équipe. Conçu pour un affichage de caractères LCD 16x2 ou 20x4 avec convertisseur I2C, qui communique à l'adresse 0x27 Télécharger le micrologiciel
    RFID_Domination Timer_0x3F.hex Le firmware de test du projet RFID Domination Timer permet de mesurer un temps de 15 secondes pour chaque équipe. Conçu pour un affichage de caractères LCD 16x2 ou 20x4 avec convertisseur I2C qui communique à 0x3F Télécharger le micrologiciel

    Démonstration fonctionnelle - Shareware RFID Domination Timer:


    Pour les derniers clones chinois d'Arduino Nano qui ont un "Old Bootloader", il faut uploader le firmware à 57600 baud/s ! Pour les autres versions avec le plus récent Bootloader 115200 baud/s (cette vitesse est également utilisée dans la commande AVRDUDE pour charger le code machine).

    Programme de lecture des adresses UID des cartes RFID pour Domination Timer


    Le programme est utilisé pour récupérer les identifiants (UID) des étiquettes RFID, des cartes qui seront utilisées dans le programme pour RFID Domination Timer - ce code source ne représentent RFID Domination Timer, ni sa logique ! . La carte RFID UID est écrite sur le moniteur série (UART) - la vitesse utilisée est de 9600 bauds / s (caractères par seconde). La déclaration doit être enregistrée et transcrite dans un document clair .xls (EXCEL), ce qui facilitera la gestion des cartes RFID attribuées à des équipes et entités spécifiques pour l'application finale RFID Domination Timer, dont le code machine est lié à les cartes UID fournies. Vous devez importer la bibliothèque MFRC522 dans votre IDE Arduino pour charger avec succès le code source afin de charger les cartes UID.


    Bibliothèques disponibles pour les microcontrôleurs (Arduino)


    Archive de la bibliothèque (.zip) développer en C:/Users/[User]/Documents/Arduino/libraries
    Le nom de la bibliothèque Fonction bibliothèque Télécharger
    MFRC522

    Bibliothèque pour microcontrôleurs AVR (ATmega) Arduino Uno / Nano / Mega. Il permet de communiquer avec le lecteur RFID NXP RC522 via le bus SPI.

    Télécharger
    LiquidCrystal_I2C

    Bibliothèque pour microcontrôleurs AVR (ATmega) Arduino Uno / Nano / Mega. Il permet de communiquer avec l'afficheur à caractères LCD via le bus I2C.

    Télécharger

    Exemple de cartes RFID UID stockées - document Excel .xls :


    Fyzické UID RFID kariet uložené v prehľadnom Excel dokumente

    Modèle d'inscription UID Excel (.xls) - Feuilles de calcul Google en ligne: Google Tabuľky - RFID Domination Timer Template

    Programová implementácia - DOMINATION TIMER RFID
    Modèle également disponible en version hors ligne au format .xlsx : Template.xlsx
    /*|---------------------------------------------------------------------|*/
    /*|Titre : Chargement des cartes UID RFID                               |*/
    /*|Description : Lecture via le lecteur RFID RC522                      |*/
    /*|l'adresse de la carte RFID attachée et imprimée UID sur l'interface  |*/
    /*|UART.                                                                |*/
    /*|Les cartes UID enregistrées sont utilisées pour le Domination Timer  |*/
    /*|l'auteur: Martin Chlebovec                                           |*/
    /*|E-mail: martinius96@gmail.com                                        |*/
    /*|Licence d'utilisation: MIT                                           |*/
    /*|Révision: 12. Mars 2021                                              |*/
    /*|---------------------------------------------------------------------|*/
    
    
    // Modèle - 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("Code of card: ");
      unsigned long kod = 10000 * buffer[4] + 1000 * buffer[3] + 100 * buffer[2] + 10 * buffer[1] + buffer[0]; //finalny kod karty
      Serial.println(kod);
    }
    

    Utilisez la sortie du programme pour l'application principale RFID Domination Timer:


    Les cartes UID RFID enregistrées pour RED, GRE, Referee et Eraser sont saisies dans les champs. Les terrains peuvent être facilement redimensionnés pour augmenter le nombre de joueurs, d'arbitres... L'UID doit être fourni en sortie .xls. Vous pouvez utiliser le modèle public pour Google Spreadsheets au-dessus du code source (icône Google SpreadSheet). Des tableaux entiers sont stockés dans la mémoire flash du microcontrôleur sous forme de segments de ligne uniquement, de sorte que les tableaux n'ont pas à s'exécuter dans la RAM pour occuper la mémoire de fonctionnement que le Domination Timer utilise pour le comptage continu des temps. En même temps, les champs ne sont pas extensibles pendant l'exécution du programme. Leur réglage, taille est fixé pour une application spécifique adaptée. Le programme standard RFID Domination Timer pour 10x UID pour les équipes RED et GRE et 2x UID pour l'arbitre et l'effaceur (24x UID au total) occupe 9512 octets de mémoire flash, c.-à-d. 30% et 501 octets de RAM, i. 24 %. Variables de chaînes statiques (const) stockées dans PROGMEM. Macro F utilisée pour les rapports statiques sur le moniteur UART ou sur l'affichage de caractères LCD.


    Scanner I2C - un programme pour lire l'adresse du convertisseur I2C pour l'écran LCD


    Sortie attendue du scanner I2C:


    Výpis I2C adresy, na ktorej komunikuje I2C prevodník pre displej 16x2 / 20x4

    La bibliothèque Wire est intégrée à l'IDE Arduino, aucune installation n'est requise. Le programme peut être compilé et vérifié la communication via le bus I2C avec affichage de caractères LCD. Le convertisseur I2C doit être connecté à Arduino aux bornes matérielles I2C (SCL à A5, SDA à A4) avant de charger le programme, cela suffit même sans affichage. L'adresse d'affichage récupérée doit être fournie pour une construction réussie pour Arduino avec l'UID des cartes 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
    }
    
    Získejte registraci domén s tld .online, .space, .store, .tech zdarma!
    Stačí si k jedné z těchto domén vybrat hosting Plus nebo Mega a registraci domény od nás dostanete za 0 Kč!
    Objednat