Serrure RFID Robimo utilisant Arduino. Lire et écrire des étiquettes RFID

Serrure RFID Robimo utilisant Arduino. Lire et écrire des étiquettes RFID

Dans cette leçon, nous apprendrons à utiliser un système simple comme le déverrouillage d'une serrure à l'aide d'une clé électronique (Mitzi).

Ensuite, vous pouvez affiner et étendre davantage les fonctionnalités. Par exemple, ajoutez la fonction « ajouter de nouvelles clés et les supprimer de la mémoire ». La version de base a un exemple simple, si un identifiant de clé unique est spécifié dans le code du programme.

De quelle leçon avons-nous besoin :

Pour implémenter le projet, nous devons installer les bibliothèques :

2) Vous devez maintenant connecter le buzzer, qui émet un signal lorsque la touche est enfoncée et que la serrure est ouverte, et un autre signal lorsque la serrure est fermée.

Le buzzer est activé dans la séquence suivante :

Arduino Zoomeur
5V VCC
GND GND
broche 5 IO

3) Le rôle du mécanisme qui entraîne sera joué par le servomoteur. Le servomoteur peut être sélectionné en fonction des dimensions requises et de la force créée par le servomoteur. Le servo variateur dispose de 3 contacts :

Plus précisément, vous pouvez vous émerveiller de la façon dont nous avons connecté tous les modules à la petite chose ci-dessous :

Maintenant que tout est connecté, vous pouvez passer à la programmation.

Esquisser:

#inclure #inclure #inclure // Bibliothèque "RFID". #définir SS_PIN 10 #définir RST_PIN 9 MFRC522 mfrc522(SS_PIN, RST_PIN); uidDec long non signé, uidDecTemp ; // pour enregistrer le numéro de marque au dixième format Servo servo; void setup() ( Serial.begin(9600); Serial.println("En attente de la carte..."); SPI.begin(); // Initialisation SPI / Init bus SPI. mfrc522.PCD_Init(); // initialisation MFRC522 / Init carte MFRC522. servo.attach(6); // Sélectionnez la balise if (! mfrc522.PICC_ReadCardSerial()) ( return; ) uidDec = 0; // Affiche le numéro de série de la balise.< mfrc522.uid.size; i++) { uidDecTemp = mfrc522.uid.uidByte[i]; uidDec = uidDec * 256 + uidDecTemp; } Serial.println("Card UID: "); Serial.println(uidDec); // Выводим UID метки в консоль. if (uidDec == 3763966293) // Сравниваем Uid метки, если он равен заданому то серва открывает. { tone(5, 200, 500); // Делаем звуковой сигнал, Открытие servo.write(90); // Поворациваем серву на угол 90 градусов(Отпираем какой либо механизм: задвижку, поворациваем ключ и т.д.) delay(3000); // пауза 3 сек и механизм запирается. tone(5, 500, 500); // Делаем звуковой сигнал, Закрытие } servo.write(0); // устанавливаем серву в закрытое сосотояние }

Regardons le croquis plus en détail :

Afin de reconnaître l'UID de la carte (Tags), vous devez écrire ce croquis dans l'arduino, sélectionner le schéma, le mettre en place et ouvrir la console (Serial Port Monitoring). Lorsque vous touchez l'étiquette de la RFID, la console affichera un numéro

Les entrées UID doivent être saisies dans la ligne offensive :

Si (uidDec == 3763966293) // L'UId du repère est mis à jour, s'il est différent de celui spécifié, alors le servo variateur ouvre la courbe d'étanchéité.

Chaque carte skin possède un identifiant unique et ne se répète pas. Ainsi, si vous présentez une carte avec un identifiant spécifié dans le programme, le système accordera l'accès à un servo variateur supplémentaire.

Vidéo:

Aujourd'hui, nous allons parler du module RFID RC522, basé sur la puce MFRC522. Durée de vie 3,3 V, plage de détection jusqu'à 6 cm. Utilisé pour lire et écrire des étiquettes RFID avec une fréquence de 13,56 MHz. La fréquence est encore plus importante dans ce cas, puisque les étiquettes RFID apparaissent dans trois gammes de fréquences :


  • Marques pour la gamme LF (125-134 kHz)

  • Marques vers la bande HF (13,56 MHz)

  • Marques pour la gamme UHF (860-960 MHz)

Ce module fonctionne lui-même avec des tags de la gamme HF, en utilisant le protocole MIFARE.

Pour travailler avec le module, vous pouvez utiliser la bibliothèque RFID standard, qui précède l'IDE Arduino, et une autre bibliothèque écrite spécifiquement pour ce module - MFRC522 (1 Mo). Les deux bibliothèques sont entièrement manuelles, mais le MFRC522 possède des fonctions plus spéciales qui vous permettent de maximiser la vitesse du code du programme.

Connexion

Vous rencontrerez un problème : les noms des broches de la plupart des leçons et des aides peuvent ne pas correspondre aux broches de votre module. Si le pin SS est indiqué dans les croquis, mais qu'il n'y en a pas sur votre module, alors vous verrez toutes les valeurs en SDA. Vous trouverez ci-dessous un tableau des connexions des modules pour les cartes les plus avancées.

CRFM522 Arduino Uno Arduino Méga Arduino-Nano v3

Arduino Léonard/Micro

Arduino Pro Micro
TVD 9 5 D9 RÉINITIALISATION/ICSP-5 TVD
SDA(SS) 10 53 J10 10 10
MOSI 11 (ICSP-4) 51 J11 ICSP-4 16
MISO 12 (ICSP-1) 50 J12 ICSP-1 14
SCK 13 (ICSP-3) 52 J13 ICSP-3 15
3,3 V 3,3 V 3,3 V Stabilisateur 3,3 V Stabilisateur 3,3 V Stabilisateur 3,3 V
GND GND GND GND GND GND

Les pins de contrôle SS(SDA) et RST sont précisés dans les croquis, donc si votre carte est subdivisée entre celle que j'utilise dans mes crosses, et la vikory UNO R3, précisez les pins du tableau au début du croquis :


#définir SS_PIN 10 #définir RST_PIN 9

Exemple n°1 : Lire le numéro de carte

Jetons un coup d'œil à un exemple de la bibliothèque RFID - cardRead. Il n'affiche pas les données de la carte, mais uniquement le numéro, qui peut suffire pour de nombreuses tâches.


#include #include #define SS_PIN 10 #define RST_PIN 9 RFID rfid(SS_PIN, RST_PIN); // Les données sur le numéro de carte sont enregistrées dans 5 formats de mémoire pour vérifier si nous avons déjà lu une telle carte int serNum0; int serNum1; int serNum2; int serNum3; int serNum4; void setup() ( Serial.begin(9600); SPI.begin(); rfid.init(); ) void loop() ( if (rfid.isCard()) ( if (rfid.readCardSerial())) ( / / On compare le numéro de carte avec le numéro de la carte précédente si (rfid.serNum != serNum0 && rfid.serNum != serNum1 && rfid.serNum != serNum2 && rfid.serNum != serNum3 && rfid.serNum != new, puis lisez*/ Serial .println(" "); rfid.serNum; //Afficher le numéro de carte Serial.println("Cardnumber:" , "); Serial.print(rfid.serNum,DEC); .print( ", "); Serial.print(rfid.serNum,HEX); Serial.print(rfid.serNum,HEX); Serial.print(" , "); ("", "); Serial.print(rfid.serNum,HEX); Serial.println(" " ) else ( /* La carte est déjà effacée, affichez simplement le point */ Serial.print(".") ; ) ) ) rfid.halt(); )

Le croquis est rempli, la LED de vie du module est grillée, mais le module ne répond pas à la carte ? Ne paniquez pas et cherchez simplement les « bonnes » fesses du robot. Après tout, il n'y a tout simplement aucun contact sur l'une des broches - ouvrez quelques cavaliers supplémentaires sur la carte pour pouvoir facilement essayer de les réorganiser. La LED sur la carte n'est-elle pas allumée ? Essayez de changer le cavalier, qui est réglé sur 3,3 V, et reconnectez-le, car sur la carte, il est connecté à 3,3 V ; alimenter le cavalier à 5 V peut facilement tuer votre carte ;

Disons que tout a fonctionné pour vous. Les étapes lues par le module d'étiquette RFID dans le moniteur du port série sont les suivantes :


Ici, j'ai lu 3 notes différentes et, comme vous pouvez le voir, j'ai réussi à obtenir les 3 points.

Application n°2 : Lecture des données d'une carte

Examinons de plus près l'autre option : non seulement le numéro de carte est lisible, mais également toutes les données disponibles pour la lecture. Encore une fois, prenons un exemple de la bibliothèque MFRC522 – DumpInfo.


#include #include #define RST_PIN 9 // #define SS_PIN 10 // MFRC522 mfrc522(SS_PIN, RST_PIN); // Créer une instance MFRC522 void setup() ( Serial.begin(9600); // Initialise le moniteur du port série while (!Serial); // Rien n'est requis (pour Arduino sur puce ATMEGA32U4) SPI.begin() ; // Initialise le bus SPI mfrc522.PCD_Init(); // Initialise le module RFID ShowReaderDetails(); ));) void loop() ( // Trouve une nouvelle carte if (! mfrc522.PICC_IsNewCardPresent()) ( return; ) // Sélectionnez l'une des cartes if (! mfrc522.PICC_ReadCardSerial()) ( return; ) // Affiché depuis la carte mfrc522.PICC_DumpToSerial(&(mfrc522.uid) ) void ShowReaderDetails() ( // Sélectionnez l'octet du numéro de version du module v = mfrc522 .PCD_ReadRegister(mfrc522.VersionReg2); Serial.print(v, HEX); if (v == 0x91) Serial.print(F(" = v1.0")); sinon Serial.print(F("(inconnu)")); Série.println(""); // Si 0x00 et 0xFF sont renvoyés, la transmission des données échoue si ((v == 0x00) || (v == 0xFF)) ( Serial.println(F("AVERTISSEMENT : échec de communication, le MFRC522 est-il correctement connecté ?" )) ;))

Si la crosse avant a fonctionné sans aucun compromis, ce n’est la faute de personne s’il y a des problèmes. Si vous souhaitez voyager en métro, vous pouvez facilement voir le numéro de carte sur la première page, qui apparaît avec un type de données sans importance, et le module ne peut rien enregistrer d'autre que le numéro de carte.

En conséquence, après avoir stocké les données de la carte, son type, son identifiant et les données de 16 secteurs de mémoire sont supprimés. Veuillez noter que les cartes standard MIFARE 1K se composent de 16 secteurs, qu'un seul secteur se compose de 4 blocs et qu'un seul bloc contient 16 octets de données.


Application n°3 : Ecriture d'un nouvel identifiant sur la carte

Dans quelle application nous envisagerons de changer l'identifiant de la carte (UID). Il est important de savoir que toutes les cartes ne prennent pas en charge les changements d'identité. La carte a peut-être été écrasée, ce qui signifie que les données n'ont pas été écrasées. C'est dommage que les cartes que j'avais entre les mains ne prenaient pas en charge la réécriture de l'UID, mais je vais vous montrer ici le code du croquis sur toutes les bizarreries.


#include #include /* Définissez un nouvel UID ici */ #define NEW_UID (0xDE, 0xAD, 0xBE, 0xEF) #define SS_PIN 10 #define RST_PIN 9 MFRC522 mfrc522(SS_PIN, RST_PIN); MFRC522 :: Clé MIFARE_Key ; void setup() ( Serial.begin(9600); while (!Serial); SPI.begin(); mfrc522.PCD_Init(); Serial.println(F("Attention : cet exemple écrase l'utilisation avec précaution!")); pour (octet i = 0; je< 6; i++) { key.keyByte[i] = 0xFF; } } void loop() { if (! mfrc522.PICC_IsNewCardPresent() || ! mfrc522.PICC_ReadCardSerial()) { delay(50); return; } // Считываем текущий UID Serial.print(F("Card UID:")); for (byte i = 0; i < mfrc522.uid.size; i++) { Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " "); Serial.print(mfrc522.uid.uidByte[i], HEX); } Serial.println(); // Записываем новый UID byte newUid = NEW_UID; if (mfrc522.MIFARE_SetUid(newUid, (byte)4, true)) { Serial.println(F("Wrote new UID to card.")); } // Halt PICC and re-select it so DumpToSerial doesn"t get confused mfrc522.PICC_HaltA(); if (! mfrc522.PICC_IsNewCardPresent() || ! mfrc522.PICC_ReadCardSerial()) { return; } // Считываем данные с карты Serial.println(F("New UID and contents:")); mfrc522.PICC_DumpToSerial(&(mfrc522.uid)); delay(2000); }

Exemple n°4 : Enregistrement de données sur une carte

Axez-vous et découvrez ce qu'il nous a fallu si longtemps pour arriver : enregistrer les données sur la carte. L'avantage de travailler avec le module est la possibilité de faire une copie d'une carte existante, que vous pouvez ajouter ou modifier, ce qui est beaucoup plus rentable et moins facile à lire.

Vous pouvez modifier l'un des blocs de données sur la carte :


#include #include #define RST_PIN 9 #define SS_PIN 10 MFRC522 mfrc522(SS_PIN, RST_PIN); MFRC522 :: Clé MIFARE_Key ; void setup() ( Serial.begin(9600); while (!Serial); SPI.begin(); mfrc522.PCD_Init(); // Préparez la clé // sélectionnez la clé FFFFFFFFFFFFh qui est le standard pour les cartes vides pour ( octet je = 0 ;< 6; i++) { key.keyByte[i] = 0xFF; } Serial.println(F("Scan a MIFARE Classic PICC to demonstrate read and write.")); Serial.print(F("Using key (for A and B):")); dump_byte_array(key.keyByte, MFRC522::MF_KEY_SIZE); Serial.println(); Serial.println(F("BEWARE: Data will be written to the PICC, in sector #1")); } void loop() { // Ждем новую карту if (! mfrc522.PICC_IsNewCardPresent()) return; // Выбираем одну из карт if (! mfrc522.PICC_ReadCardSerial()) return; // Показываем подробности карты Serial.print(F("Card UID:")); dump_byte_array(mfrc522.uid.uidByte, mfrc522.uid.size); Serial.println(); Serial.print(F("PICC type: ")); byte piccType = mfrc522.PICC_GetType(mfrc522.uid.sak); Serial.println(mfrc522.PICC_GetTypeName(piccType)); // Проверяем совместимость if (piccType != MFRC522::PICC_TYPE_MIFARE_MINI && piccType != MFRC522::PICC_TYPE_MIFARE_1K && piccType != MFRC522::PICC_TYPE_MIFARE_4K) { Serial.println(F("This sample only works with MIFARE Classic cards.")); return; } // В этом примере мы используем первый сектор данных карты, блок 4 byte sector = 1; byte blockAddr = 4; byte dataBlock = { // Данные, которые мы запишем на карту 0x01, 0x02, 0x03, 0x04, // 1, 2, 3, 4, 0x05, 0x06, 0x07, 0x08, // 5, 6, 7, 8, 0x08, 0x09, 0xff, 0x0b, // 9, 10, 255, 12, 0x0c, 0x0d, 0x0e, 0x0f // 13, 14, 15, 16 }; byte trailerBlock = 7; byte status; byte buffer; byte size = sizeof(buffer); // Аутентификация Serial.println(F("Authenticating using key A...")); status = mfrc522.PCD_Authenticate(MFRC522::PICC_CMD_MF_AUTH_KEY_A, trailerBlock, &key, &(mfrc522.uid)); if (status != MFRC522::STATUS_OK) { Serial.print(F("PCD_Authenticate() failed: ")); Serial.println(mfrc522.GetStatusCodeName(status)); return; } // Показываем текущие данные сектора Serial.println(F("Current data in sector:")); mfrc522.PICC_DumpMifareClassicSectorToSerial(&(mfrc522.uid), &key, sector); Serial.println(); // Читаем данные из блока Serial.print(F("Reading data from block ")); Serial.print(blockAddr); Serial.println(F(" ...")); status = mfrc522.MIFARE_Read(blockAddr, buffer, &size); if (status != MFRC522::STATUS_OK) { Serial.print(F("MIFARE_Read() failed: ")); Serial.println(mfrc522.GetStatusCodeName(status)); } Serial.print(F("Data in block ")); Serial.print(blockAddr); Serial.println(F(":")); dump_byte_array(buffer, 16); Serial.println(); Serial.println(); // Аутентификация Serial.println(F("Authenticating again using key B...")); status = mfrc522.PCD_Authenticate(MFRC522::PICC_CMD_MF_AUTH_KEY_B, trailerBlock, &key, &(mfrc522.uid)); if (status != MFRC522::STATUS_OK) { Serial.print(F("PCD_Authenticate() failed: ")); Serial.println(mfrc522.GetStatusCodeName(status)); return; } // Записываем данные в блок Serial.print(F("Writing data into block ")); Serial.print(blockAddr); Serial.println(F(" ...")); dump_byte_array(dataBlock, 16); Serial.println(); status = mfrc522.MIFARE_Write(blockAddr, dataBlock, 16); if (status != MFRC522::STATUS_OK) { Serial.print(F("MIFARE_Write() failed: ")); Serial.println(mfrc522.GetStatusCodeName(status)); } Serial.println(); // Читаем данные снова, чтобы проверить, что запись прошла успешно Serial.print(F("Reading data from block ")); Serial.print(blockAddr); Serial.println(F(" ...")); status = mfrc522.MIFARE_Read(blockAddr, buffer, &size); if (status != MFRC522::STATUS_OK) { Serial.print(F("MIFARE_Read() failed: ")); Serial.println(mfrc522.GetStatusCodeName(status)); } Serial.print(F("Data in block ")); Serial.print(blockAddr); Serial.println(F(":")); dump_byte_array(buffer, 16); Serial.println(); Serial.println(F("Checking result...")); byte count = 0; for (byte i = 0; i < 16; i++) { if (buffer[i] == dataBlock[i]) count++; } Serial.print(F("Number of bytes that match = ")); Serial.println(count); if (count == 16) { Serial.println(F("Success:-)")); } else { Serial.println(F("Failure, no match:-(")); Serial.println(F(" perhaps the write didn"t work properly...")); } Serial.println(); // Выводим данные Serial.println(F("Current data in sector:")); mfrc522.PICC_DumpMifareClassicSectorToSerial(&(mfrc522.uid), &key, sector); Serial.println(); mfrc522.PICC_HaltA(); mfrc522.PCD_StopCrypto1(); } void dump_byte_array(byte *buffer, byte bufferSize) { for (byte i = 0; i < bufferSize; i++) { Serial.print(buffer[i] < 0x10 ? " 0" : " "); Serial.print(buffer[i], HEX); } }

Et du coup, on retire la carte du bloc de données modifié :


Maintenant, après avoir appris à lire et à écrire des blocs de données de carte, vous pouvez expérimenter les marques que vous avez vues pour tout - passages à niveau, passages de transports en commun. Essayez de lire et d'écrire les données de ces cartes, quelques passes en double ne poseront pas de problèmes, n'est-ce pas ?

C'est tout, abonnez-vous et suivez les publications. La prochaine fois, j'expliquerai et montrerai comment ajouter des symboles koristuvach à un affichage de caractères standard 1602, en ajoutant en fait des graphiques à l'affichage.

Connexions à Arduino :

Pour commencer, vous devez installer la bibliothèque RFID pour MFRC522.

Les contacts du module module RFID RC522 doivent être connectés à l'Arduino. Pour vous connecter, vikorystovat fléchettes tato-mama manuellement.


Description des contacts du module RFID RC522 :

  • VCC – Kharchuvannya. 3,3 V requis ;
  • RST – Réinitialiser. Ligne de réduction. À chaque fois, vous ne pouvez pas vous connecter jusqu'à ce que la broche RESET sur CraftDuino ! Cette broche est envoyée au port numérique via PWM ;
  • GND - Terre. Terre
  • MISO – Master Input Slave Output – données du maître au maître, SPI ;
  • MOSI - Master Output Slave Input - données du maître à l'esclave, SPI ;
  • SCK – Serial Clock – signal d'horloge, SPI ;
  • NSS – Slave Select – sélection d'esclave, SPI ;
  • IRQ – ligne à interrompre ;
CRFM522 Arduino Uno Arduino Méga Arduino-Nano v3 Arduino Léonard/Micro Arduino Pro Micro
TVD 9 5 D9 RÉINITIALISATION/ICSP-5 TVD
SDA(SS) 10 53 J10 10 10
MOSI 11 (ICSP-4) 51 J11 ICSP-4 16
MISO 12 (ICSP-1) 50 J12 ICSP-1 14
SCK 13 (ICSP-3) 52 J13 ICSP-3 15
3,3 V 3,3 V 3,3 V Stabilisateur 3,3 V Stabilisateur 3,3 V Stabilisateur 3,3 V
GND GND GND GND GND GND

Le kit avec le module RFID-RC522 est livré avec deux tags, l'un sous la forme d'une carte plastique et l'autre sous la forme d'un porte-clés. Pour la consommation, vous pouvez acheter de l'okremo supplémentaire.

Une fois que tout est connecté, le voyant du module s'allumera, sans parler de ceux qui doivent être connectés au RFID . Heure de Priishov exécutez le croquis de test qui se trouve dans la bibliothèque que nous avons installée.



Il est nécessaire de vérifier l'exactitude des constantes spécifiées :

#define SS_PIN 10 #define RST_PIN 9 // Ces constantes indiquent

Maintenant, téléchargeons le croquis sur Arduino et allumons-le Surveillance du port série.

Vous apportez le tag au lecteur et le module prend en compte toutes les données de ce tag, par exemple l'identifiant unique du tag UID.

Robots vidéo RFID-RC522:

La leçon d'aujourd'hui explique comment utiliser un lecteur RFID avec Arduino pour créer un système de blocage simple, en termes simples : un verrou RFID.

La RFID (anglais Radio Frequency IDentification, identification par radiofréquence) est une méthode d'identification automatique d'objets dans laquelle, à l'aide de signaux radio, sont lues ou enregistrées des données qui sont stockées dans ce qu'on appelle des transpondeurs, des étiquettes RFID. Tout système RFID est constitué d'un dispositif de lecture (lecteur, lecteur ou interrogateur) et d'un transpondeur (également appelé tag RFID, également appelé tag RFID).

Dans le tutoriel vikorist, il y a une étiquette RFID avec Arduino. L'appareil lit l'identifiant unique (UID) de l'étiquette cutanée RFID, que nous attribuons au lecteur, et l'affiche sur l'écran OLED. Étant donné que l'étiquette UID est plus ancienne que la valeur désignée stockée dans la mémoire Arduino, l'écran affichera probablement « Déverrouillé ». Si l'identifiant unique n'est pas égal à la valeur spécifiée, la notification « Déverrouillé » n'apparaîtra pas - div. inférieur.

Château de Zakriti

Château

Leçon 1 : Pièces, accessoires

Détails nécessaires pour ce projet :

  • Lecteur RFID RC522
  • Écran OLED
  • Planche à pain
  • Fil

Détails supplémentaires:

  • Batterie (Powerbank)

Le coût des composants du projet était d'environ 15 dollars.

Clé 2 : RFID-zchituvach RC522

L'étiquette cutanée RFID possède une petite puce (carte blanche sur la photo). Si vous montrez au patient votre carte RFID, vous pourrez obtenir une petite puce et un chat qui vous quitteront. Cette puce ne contient pas de piles pour soulager les tensions. Vіn rejette la nourriture comme un rang sans fléchettes, vikoristica et ce grand chat. Vous pouvez lire une carte RFID similaire à celle-ci jusqu'à une distance de 20 mm.

La même puce se trouve dans les étiquettes du porte-clés RFID.

Chaque étiquette RFID possède un numéro unique qui l'identifie. Il s'agit de l'UID qui apparaît sur l'écran OLED. Votre UID et votre skin tag peuvent enregistrer vos données. Avec ce type de carte, vous pouvez sauvegarder jusqu'à 1 000 données. Ennemi, qu'est-ce qui ne va pas ? Cette fonction ne sera pas disponible aujourd'hui. Aujourd’hui, il suffit d’identifier une carte et un UID spécifiques. Le coût d'un lecteur RFID et de deux cartes RFID coûte environ 4 dollars américains.

Krok 3 : écran OLED

Dans ce tutoriel nous utiliserons un moniteur OLED 0,96" 128x64 I2C.

C'est un très bon écran pour le Vikoristan avec Arduino. Il s’agit d’un écran OLED, ce qui signifie qu’il consomme peu d’énergie. La tension de cet écran doit être d'environ 10 à 20 mA et doit être limitée à un nombre de pixels.

L'écran a une taille divisée de 128 x 64 pixels et est de taille extrême. Il existe deux options d'affichage. L’un d’eux est monochrome, et l’autre, comme celui choisi dans la leçon, peut afficher deux couleurs : jaune et bleu. La partie supérieure de l’écran peut être moins jaune et la partie inférieure – bleue.

Cet écran OLED est si lumineux et étonnant qu'il tire parti de la bibliothèque créée par Adafruit pour son écran. De plus, l'écran utilise une interface I2C, la connexion avec Arduino est donc incroyablement simple.

Il vous suffit de connecter deux fils, derrière Vcc et GND. Si vous êtes nouveau sur Arduino et souhaitez créer un affichage simple et peu coûteux pour votre projet, lancez-vous.

Leçon 4 : Rassembler tous les détails

 

 

Tsé tsikavo :