Description de la bibliothèque OLED i2c. Création d'images raster

Description de la bibliothèque OLED i2c.  Création d'images raster
Description de la bibliothèque OLED i2c. Création d'images raster

Introduction : Introduction à l'écran OLED I2C 128*64 / 128*32.

Bonjour! Étant un passionné d'électronique amateur, je suis sûr que tout ce que nous fabriquons sont des jouets électroniques - faits maison ou grands projets, tout cela est par curiosité et par paresse. La curiosité s'efforce de comprendre et d'appréhender le vaste, l'inconnu, de comprendre comment cela fonctionne là-bas, ce qu'il fait, comment il se déplace. Et la paresse invente quelque chose à inventer, pour ne pas se lever, ne pas s'approcher, ne pas soulever, ne pas se salir ou quoi que ce soit d'autre d'important.

Puisqu'il vaut mieux voir des informations que comprendre ce qui est sur le point de se passer dans notre appareil, ou ce qui s'est déjà produit, ou ce qui se passe, nous voudrons certainement obtenir cela très informations utiles de nos microcontrôleurs, capteurs ou autres appareils. Et dans tous les cas, je souhaite recevoir des messages, tels que des questions, des avertissements, des rappels, des émoticônes, des étoiles, des cœurs, etc.

Pour ceux qui ont aussi une envie similaire, la voici : Guide rapide sur la connexion et le test de petits écrans OLED peu coûteux.
Nous parlerons ensuite de l'un des modèles d'écran OLED largement disponibles pour les radioamateurs, contrôlés par la puce SSD1306, avec une taille d'écran de 0,96 pouces et une résolution de 128*64 ou 128*32 pixels. Ces présentoirs sont idéaux pour les petits conceptions de radioamateur et produits faits maison.

Étape 1 : Concepts de base

Nous allons le connecter à Arduino UNO/ NANO, eh bien, nous le programmerons également via Arduino.
  • OLED est une diode électroluminescente organique, c'est-à-dire dispositif semi-conducteur depuis composés organiques, qui commence à émettre de la lumière lorsqu'un courant électrique le traverse.
  • ARDUINO est une plateforme de formation et de systèmes d'automatisation des bâtiments et de robotique.
  • ArduinoIDE - environnement de développement. Ce programme gratuit pour programmer Arduino.
  • I2C – Circuits inter-intégrés, ligne de communication inter-puces.
  • Sketch, alias code, alias programme – terminologie Arduino.
Suivez les instructions pour comprendre comment connecter et configurer correctement l'écran OLED à l'Arduino et comment afficher un message personnalisé sur son écran.
Nous faisons tout étape par étape.

Étape 2 : Accessoires

Nous n’avons besoin que de quatre choses :
  • 1. L'écran OLED lui-même mesure 0,96" (vous pouvez l'acheter sur Aliexpress ou Ebay, c'est long, mais pas cher !).
  • 2. Arduino UNO / Nano (au même endroit que l'écran).
  • 3. Fils de connexion (ibid.).
  • 4. Ordinateur ou ordinateur portable avec ArduinoIDE installé.


En général, l'achat de pièces pour divers projets Aliexpress et Ebay sont une chose très cool, pendant que vous travaillez sur un projet, les détails d'un autre sont déjà en route. L'essentiel est de ne pas oublier de passer commande.

Étape 3 : connexion de l'écran

L'écran est contrôlé par une puce SSD1306, qui prend en charge cinq protocoles de communication, dont I2C. Les données utilisant ce protocole sont transmises sur seulement deux fils, et moins il y a de fils dans le boîtier, mieux c'est, donc cela nous convient plutôt bien. Mais! Il existe des modules avec Protocole SPI et même changer de protocole, alors soyez prudent lors de l'achat de ce module.


Épingles utilisées :
Écran OLED - SCL/SCK (horloge) et SDA (données), puissance « Plus » (VCC) et puissance « Moins » (GND).


Épingles utilisées :
Arduino UNO - SCL/SCK sur A5 et SSD sur A4, alimentation « Plus » (+5V) et alimentation « Moins » (GND).
Connexion de l'écran à Arduino :
  • Vcc-5V
  • Masse - Masse
  • SDA-A4
  • SCL-A5

Étape 4 : Scanner I2C

Chaque appareil sur le bus I2C a une adresse hexadécimale, elle ne peut pas être modifiée, elle est câblée, tout fabricant responsable doit l'indiquer quelque part sur le boîtier ou dans la notice. Il existe des modules avec des commutateurs et des cavaliers qui peuvent être utilisés pour modifier l'adresse, mais... si les appareils sont ridiculement bon marché, le fabricant ne prendra peut-être pas la peine de s'occuper d'un tel détail, vous devrez donc le déterminer vous-même.

Au total, jusqu'à 127 adresses peuvent être utilisées sur le bus : 119 pour les appareils et 8 adresses de service. La communication s'effectue à ces adresses. Il y en a un principal, alias Maître, et il y a un esclave, alias Esclave - les Maîtres demandent, les esclaves répondent, tout est simple.
Étant donné que notre écran OLED utilise le protocole de communication I2C et que l'adresse peut ne pas être spécifiée, nous essaierons de trouver nous-mêmes cette adresse.

Vous pouvez le faire en téléchargeant un court croquis sur votre carte Arduino avec l'OLED connecté. MAIS!
Ne vous précipitez pas pour télécharger le croquis sur Arduino tout de suite ! Téléchargeons d'abord les "drivers", c'est-à-dire connectons les bibliothèques, et pour ce faire, nous passerons immédiatement à « l'étape n°5 », puis reviendrons et continuerons.

Étape 4 : suite :

Téléchargez CODE Finder_I2C_Hex_Address.ino, téléchargez-le sur Arduino.
Ouvrez « Port Monitor », réglez la vitesse sur 9600 et si tout est correctement connecté, le programme affichera l'adresse de l'appareil, dans mon cas OLED avec l'adresse 0x3F.

Étape 5 : Téléchargez et connectez les bibliothèques

Pour que tout fonctionne correctement et que vous n'ayez pas à réinventer la roue, vous devez connecter quelques librairies à l'environnement ArduinoIDE, à savoir : ADAFRUIT GFX et ADAFRUIT SSD1306, elles sont nécessaires pour qu'Arduino puisse communiquer de manière indépendante avec l'écran OLED.
Vous pouvez inclure ces bibliothèques en suivant ces étapes.
  • 1. Dans ArduinoIDE, accédez au menu Sketch.
  • 2. Sélectionnez « Inclure les bibliothèques ».
  • 3.Sélectionnez « Gérer les bibliothèques ».
  • 4. Recherchez ADAFRUIT GFX et installez-les.
  • 5. Recherchez ADAFRUIT SSD1306 et installez-les.
Avec les dernières versions des bibliothèques, mon affichage fonctionnait de travers, cela peut bien sûr être dû à la courbure de mes mains, mais après avoir installé les toutes premières versions de ces bibliothèques, tout a commencé à paraître fluide et beau. Pour une raison quelconque, les lignes de Pouchkine me viennent à l’esprit :
...et de l'expérience, fils d'erreurs difficiles,
et génie, ami des paradoxes.

Une autre façon d'installer des bibliothèques consiste à rechercher, télécharger et installer ces bibliothèques vous-même.
Pour l'exemple de Github :
https://github.com/adafruit/Adafruit-GFX-Library
https://github.com/adafruit/Adafruit_SSD1306

Ce sont les mêmes bibliothèques Adafruit, mais des bibliothèques similaires peuvent être facilement recherchées dans les moteurs de recherche, à la demande d'OLED I2C. De nombreux passionnés écrivent des bibliothèques « pour eux-mêmes » et les publient ensuite sur le Web. La bibliothèque à utiliser dépend de vous.
Pour que l'écran affiche les lettres russes, des bibliothèques spéciales sont également nécessaires, mais il s'agit d'un sujet distinct pour un article séparé.
Une fois les bibliothèques installées, vous pouvez revenir à l'étape 4 et enfin connaître l'adresse hexadécimale de votre écran.

Étape 6 : Test d'affichage

Pour vérifier si tout fonctionne comme prévu, exécutez l'exemple de test d'ArduinoIDE.
Pour ça:
Allez dans FICHIER > EXEMPLES > SSD 1306 > Sélectionnez 128x64 i2c
Si vous obtenez « Erreur », essayez de sélectionner SSD 1306 > 128x32 i2c.
Si « Erreur » se produit à nouveau, essayez de modifier l'adresse I2C sur la ligne 61 du code de démonstration et remplacez-la par l'adresse de votre écran que vous avez déterminée à l'étape 4.
Si l'erreur se reproduit, vous pouvez essayer d'éditer le fichier Adafruit_SSD1306.h, il se trouve dans le dossier des bibliothèques Arduino.


Ouvrez le fichier Adafruit_SSD1306.h dans éditeur de texte et trouvez les lignes :
//#définir SSD1306_128_64 #définir SSD1306_128_32 // #définir SSD1306_96_16
Décommentez la ligne :
#définir SSD1306_128_64.
Ça devrait ressembler à ça:
#define SSD1306_128_64 //#define SSD1306_128_32 // #define SSD1306_96_16
Si l'erreur se reproduit, vous devez vérifier les connexions correctes.
Une fois le téléchargement terminé, vous verrez une animation de test sur l'écran, ce qui signifie que vous avez configuré avec succès votre écran OLED.

Lorsque vous aurez pleinement apprécié cette animation, vous pourrez passer à l’étape suivante.

Étape 7 : Rédigez votre propre message

Pour écrire votre propre message, créez d'abord une nouvelle esquisse dans l'environnement de programmation ArduinoIDE.
Dans l'en-tête, nous incluons 4 bibliothèques :
#inclure #inclure #inclure #inclure
Ensuite, nous écrivons le protocole de réinitialisation :
#define OLED_RESET 4 Affichage Adafruit_SSD1306 (OLED_RESET);
Dans VOID SETUP, nous indiquons l'adresse hexadécimale de notre affichage 0x3C, que nous avons apprise à « l'étape n° 4 ».
Ensuite, nous initialisons l'affichage et l'effacons :
display.begin(SSD1306_SWITCHCAPVCC, 0x3C); display.clearDisplay();
Ensuite, dans VOID LOOP, nous écrivons le code principal, c'est-à-dire notre message que nous voulons afficher à l'écran.
Pour ce faire, nous décrivons la taille du texte, la couleur du texte, la position du curseur et enfin, affichons le message à l'aide de la commande println :
display.setTextSize(2); display.setTextColor(BLANC); display.setCursor(0,0); display.println("Bravo!"); display.display();
A la fin n'oublie pas d'écrire afficher.afficher pour que l'image s'affiche sur l'écran, sinon vous obtiendrez un vide.
Si vous avez tout fait correctement, un message apparaîtra sur les écrans.

L'article traite des écrans OLED monochromes avec une résolution de 128x64 et 128x32 pixels.

Ce sont de petits écrans, leur diagonale n'est que d'environ 1". Leur principal avantage est la facilité de lecture grâce au contraste élevé de l’écran OLED. Chaque écran OLED est composé de LED organiques blanches (OLED) individuelles de 128 x 64 ou 128 x 32. Chaque LED est allumée/éteinte à l'aide d'une puce de contrôle. Étant donné que l'écran lui-même est une source de lumière, aucun rétroéclairage supplémentaire n'est requis. Premièrement, cela garantit un contraste élevé de l'écran et, deuxièmement, cela réduit considérablement les coûts énergétiques nécessaires à son alimentation.

L'écran utilise une puce SSD1306 comme pilote, qui permet le transfert de données via les protocoles I2C, SPI et parallèle 8 bits. En règle générale, un si large choix d'interfaces fournit un affichage avec une résolution de 128x64 pixels. Dans les écrans OLED avec une résolution de 128x32, seul le protocole SPI est disponible. L'article ci-dessous utilise SPI pour la connexion, car c'est le plus universel et nécessite un petit nombre de contacts.

Alimentation pour écrans OLED

L'écran OLED et le pilote nécessitent une alimentation de 3,3 V et 3,3 V pour alimenter la logique de transmission des données. L'alimentation électrique des écrans dépend de la façon dont l'écran est chargé, mais elle consomme généralement environ 20 mA et nécessite une tension d'alimentation de 3,3 V. Le pilote intégré est un simple interrupteur qui convertit 3,3 V - 5 V en un signal de commande pour le Écran OLED. Vous pouvez faire fonctionner l'écran à partir d'une seule alimentation de 3,3 V, ou utiliser 3,3 V pour alimenter la puce et jusqu'à 4,5 V pour alimenter l'écran lui-même. Ou vous pouvez connecter 3,3 V à la puce et fournir 7 à 9 V directement à la broche d'alimentation de l'écran OLED.

OLED 128x64 et 128x32 avec sortie 5V prête

Si vous disposez d'une version de l'écran OLED antérieure à la v1 128x64, vous n'aurez peut-être pas besoin de lire la sous-section suivante. Vous avez déjà la possibilité de fournir 5 V. Tous les 1,3" 128x64 et les petits 128x32 SPI et I2C ont 5 V à bord. Si vous disposez d'un écran OLED modèle v2 0,96" 128x64 avec une marque 5 V sur la face avant, il peut également être connecté. à 5 V Si vous possédez une ancienne version de l'écran OLED - 0,96" (voir ci-dessous), vous devez être prudent lors de la connexion au microcontrôleur 5 V. L'écran OLED est conçu de telle manière qu'il est compatible avec l'alimentation 5 V. Autrement dit, vous pouvez fournir une alimentation dans la plage 3-5 V, et le régulateur intégré fera tout le reste du « sale boulot » pour vous.

Tous les écrans OLED peuvent être utilisés avec une alimentation et une logique de 3,3 V.


Connectez simplement la broche GND à la terre et la broche Vin à une source d'alimentation dans la plage 3-5 V. Cela se traduira par une broche 3Vo de 3,3 V.

0,96 128x64 OLED

Les anciennes versions des écrans OLED 0,96" 128x64 sont plus difficiles à utiliser car elles ne sont pas compatibles 5 V par défaut. Autrement dit, vous devez leur fournir une alimentation de 3,3 V.


  • VDD - pour une alimentation logique de 3,3 V. La valeur de tension doit être de 3 ou 3,3 V.
  • VBAT est une entrée permettant de modifier la tension dans la plage de 3,3 à 4,2 V.
  • VCC est la broche haute tension d'un écran OLED. Si vous utilisez un convertisseur de tension intégré, ce contact n'a pas besoin d'être connecté. Si vous n'utilisez pas de convertisseur interne, connectez-le à une source d'alimentation 7-9 V CC.

Bibliothèque Arduino et exemples

Pour utiliser de petits écrans OLED monochromes, vous devrez installer les bibliothèques Arduino. Le code de la bibliothèque ci-dessous prend en charge le fonctionnement avec tous les modèles de cartes Arduino. De plus, il peut être facilement adapté à d’autres microcontrôleurs. Pour le transfert de données, la norme de transfert de données SPI est utilisée.

Vous pouvez télécharger la bibliothèque pour faire fonctionner l'écran OLED sur Github - Bibliothèque Adafruit SSD1306. Cliquez sur le bouton TÉLÉCHARGER à gauche coin supérieur, extrayez l'archive et renommez le dossier en Adafruit_SSD1306. Vérifiez que le dossier contient les fichiers Adafruit_SSD1306.cpp et Adafruit_SSD1306.h, ainsi qu'un dossier d'exemples.

Déplacez le dossier Adafruit_SSD1306 vers votre dossier Arduino/libraries. Si le dossier n'existe pas, vous devez le créer. Sous Windows, le chemin sera : (dossier personnel)\Mes documents\Arduino\libraries, et pour Mac ou Linux : (dossier personnel)/Documents/Arduino/libraries. Si vous rencontrez des difficultés avec les bibliothèques, consultez le guide complet d'utilisation et d'installation des bibliothèques sur notre site Web.

Vous devrez effectuer une procédure similaire avec la bibliothèque Github - Adafurit_GFX.

Après avoir installé les bibliothèques Adafruit_SSD1306 et Adafruit_GFX, redémarrez l'IDE Arduino. Vous pouvez télécharger un exemple de croquis via le menu : Fichier→Sketchbook→Bibliothèques→Adafruit_SSD1306→SSD1306...

Une fois que vous avez terminé de connecter l'écran conformément aux recommandations ci-dessus, vous pouvez télécharger le croquis sur votre Arduino.

La bibliothèque ne pourra pas déterminer la taille de l'écran au niveau du code. La taille doit être spécifiée dans le fichier d'en-tête. Accédez au dossier de votre bibliothèque et ouvrez le fichier Adafruit_SSD1306.h. En haut se trouvent des explications pour adapter la bibliothèque à différents affichages.



Création d'images raster

Vous pouvez facilement créer des images bitmap à afficher sur un écran OLED à l’aide du logiciel Assistant LCD. Tout d'abord, créez une image à l'aide de n'importe quel éditeur de photos (Photoshop, Paint, etc.). Enregistrez cette image au format Monochrome Bitmap (bmp) :


Définissez les options suivantes :


Et importez votre bitmap monochrome. Enregistrez-le (Enregistrer la sortie) dans un fichier cpp :

Le code donné dans l'exemple peut être utilisé pour traiter l'image résultante


Connecter un écran OLED 128x64

Contacts à souder

Avant de vous connecter, vous devez installer et souder les contacts sur l'écran OLED. Les contacts ne fonctionneront pas sans câblage !

Commencez par installer les rails à 8 broches sur votre circuit imprimé. Le rail est installé dans la planche à pain avec ses longues pattes.


Placez votre écran OLED sur le dessus de manière à ce que les pieds courts des rails s'insèrent dans les trous de l'écran.


Soudez maintenant 8 broches sur 8 trous !


I2C ou SPI

Un des bonnes fonctionnalités Les écrans OLED mesurent 128x64 car ils peuvent utiliser les protocoles I2C ou SPI. SPI est plus rapide que I2C, mais nécessite plus de broches pour se connecter. De plus, la configuration de SPI sur certains microcontrôleurs est plus simple que la configuration d'I2C.

Connexion OLED via I2C

L'écran peut être connecté via le protocole I2C à n'importe quel microcontrôleur prenant en charge ce format. Étant donné que l'interface I2C n'est utilisée que pour « connecter » l'écran, il vous restera 512 octets de mémoire RAM sur le microcontrôleur. Mais il ne sera pas possible de transférer des données depuis un écran OLED.

Tout d’abord, vous devez connecter deux broches à l’arrière de la carte écran OLED. Les deux broches doivent être « court-circuitées » (à l'aide d'un fil) pour que I2C fonctionne !


  • GND va à GND (sol)
  • Vin passe à 5V
  • Données vers I2C SDA (sur Uno c'est A4, sur Mega c'est 20 et sur Leonardo c'est numérique 2)
  • Cliquez sur I2C SCL (sur Uno c'est A5, sur Mega c'est 21, et sur Leonardo c'est digital 3)
  • RST à 4 (vous pourrez modifier cette broche plus tard dans le code du programme)

Cette connexion correspond à l'exemple qui se trouve dans la bibliothèque. Une fois l'option proposée opérationnelle, vous pouvez essayer un autre contact pour la réinitialisation (vous ne pouvez pas modifier les contacts SCA et SCL).

L'exemple se trouve dans : Fichier → Sketchbook → Bibliothèques → Adafruit_SSD1306 → Exemple SSD1306_128x64_i2c

Connexion OLED via SPI

Par défaut, la carte utilise SPI, mais si vous avez déjà utilisé I2C, vous devez ouvrir les contacts que vous avez fermés dans le paragraphe précédent !


Après cela, connectez les broches à l'Arduino

  • GND va au sol
  • Vin passe à 5V
  • Des données vers le numérique 9
  • CLK au numérique 10
  • D/C vers numérique 11
  • RST au numérique 13
  • CS au numérique 12

Cette connexion correspond à l'exemple d'esquisse fourni dans la bibliothèque. Après le lancement et la vérification, vous pouvez modifier les broches et le programme.

L'exemple se trouve dans : Fichier → Sketchbook → Bibliothèques → Adafruit_SSD1306 → Exemple SSD1306_128x64_spi

Connecter un écran OLED 128x32

Connecter un écran OLED 128x32 via SPI

L'écran OLED 128x32 est très simple à connecter via SPI puisqu'il dispose d'un module de correspondance de niveau intégré. Prenez d'abord un rail à 8 broches de 0,1".


Placez les broches sur la planche à pain avec le côté long et l'écran OLED vers le haut. Après cela, soudez le rail au PCB OLED.


Après cela, connectez l'Arduino - GND se connecte à la terre, Vin se connecte au 5V, DATA au numérique 9, CLK au numérique 10, D/C au numérique 11, RST au numérique 13 et CS au numérique 12.

Le croquis montre comment vous avez connecté le blindage à l'Arduino. Après avoir vérifié la fonctionnalité, vous pouvez essayer de connecter d'autres contacts.

L'exemple se trouve dans : Fichier → Sketchbook → Bibliothèques → Adafruit_SSD1306 → Exemple SSD1306_128x32_SPI

Si vous utilisez un écran OLED 128x32, assurez-vous de décommenter la ligne "#define SSD1306_128_32" en haut du croquis Adafruit_SSD1306.h. En décommentant cette ligne, vous modifiez la taille du tampon.

Connecter un écran OLED 128x32 via I2C

L'écran OLED 128x32 peut être facilement connecté via I2C. Encore une fois, la raison est la présence d'un module d'adaptation de niveau et d'un régulateur. Prenez d'abord un rail à 6 broches de 0,1".

Installez le rail avec de longues broches sur la planche à pain


Installer un écran OLED par dessus


Souder le rail au PCB OLED


Connectez maintenant les broches à l'Arduino

  • Terre à Terre
  • Vin à 5V
  • SDA vers I2C Data (sur Uno c'est A4, sur Mega c'est 20 et sur Leonardo c'est numérique 2)
  • Horloge SCL vers I2C (sur Uno c'est A5, sur Mega c'est 21 et sur Leonardo c'est numérique 3)
  • RST à 4 (vous pouvez modifier ces broches plus tard dans le croquis)

Cette connexion correspond à celle requise pour que l'exemple d'esquisse fonctionne. Une fois l'exemple fonctionné, vous pouvez modifier la broche RST. Vous ne pouvez pas changer les broches I2C car elles sont "fixées" au niveau du circuit.

L'exemple se trouve dans : Fichier → Sketchbook → Bibliothèques → Adafruit_SSD1306 → Exemple de SSD1306_128x32_i2c

Connecter un ancien écran OLED 128x64 V 1.0

Ce schéma de câblage est conçu pour les anciens écrans OLED de 0,96" équipés d'un module de correspondance de niveau. Si vous disposez de la version V2.0, utilisez un schéma de câblage différent.

La version V1 de l'écran OLED 128x64 fonctionne à 3,3V et ne possède pas de module d'adaptation de niveau intégré, donc pour utiliser cet écran avec un microcontrôleur 5V, vous aurez besoin d'un module de conditionnement externe. Si votre microcontrôleur prend en charge 3,3 V, vous pouvez ignorer d'autres étapes.

On suppose que vous utiliserez un circuit imprimé. Prenez un rail de 0,1" avec 10 broches


Installez les contacts avec de longues pattes sur la planche à pain, puis en haut - le rail gauche des contacts de l'écran OLED.


Souder les contacts


Connectez VDD et VBAT (ils se connecteront à 3,3 V). GND se connecte à GND.


Installez le module de correspondance de niveau CD4050 de sorte que la broche 1 soit en haut


Connectez la broche 10 à la broche D/C, la broche 12 à CLK (temps SPI) et la broche 15 à DAT (données SPI).


Connectez la broche 2 à RES (réinitialisation) et la broche 4 à CS (sélection de puce). La broche 1 va à 3,3 V et la broche 8 à la masse.


Vous pouvez connecter les entrées du module d'adaptation de niveau à n'importe quel contact, mais en dans ce cas nous avons connecté le numérique 13 à la broche 3 du module correspondant, 12 à la broche 5, 11 à la broche 9, 10 à la broche 11 et 9 à la broche 14. Cette connexion correspond à l'exemple de croquis. Une fois la connexion ci-dessus effectuée, vous pouvez expérimenter avec d'autres contacts/broches.


Laissez vos commentaires, questions et partagez expérience personnelle ci-dessous. Les nouvelles idées et projets naissent souvent des discussions !

(graphique), mais il ne sera pas utilisé dans cette leçon.
La bibliothèque graphique prend en charge toutes les fonctions de la bibliothèque de texte et dispose de fonctions supplémentaires pour travailler avec des images et des graphiques, mais en même temps, cela prend plus de mémoire, à la fois RAM et mémoire programme.

Vous pouvez découvrir comment installer des bibliothèques sur la page Wiki - Installation de bibliothèques dans l'IDE Arduino.

Diagramme de connexion:

Code du programme :

#inclure // Inclut la bibliothèque arduino_OLED_txt. arduino_OLED_txt monOLED(0x78); // Déclare l'objet myOLED en indiquant l'adresse d'affichage sur le bus I2C : 0x78 (en tenant compte du bit RW=0). // extern uint8_t SmallFontRus ; // Connectez la police SmallFontRus. // void setup())( // myOLED.begin(); // Lancer le travail avec l'écran. myOLED.setFont(SmallFontRus); // Spécifier la police qui doit être utilisée pour afficher les chiffres et le texte. // myOLED .setCoding(TXT_UTF8) ; // Spécifiez l'encodage du texte dans le sketch. Si l'alphabet russe n'est pas affiché, alors... ) // Décommentez la fonction setCoding et remplacez le paramètre TXT_UTF8 par TXT_CP866 ou TXT_WIN1251. // void loop())( // myOLED.clrScr(); // Effacer l'écran. myOLED.print("Majuscules :" , 0, 0); // Imprimer le texte à partir de la colonne 0, ligne 0. myOLED .print( "ABCDEFGHIJKLM" , OLED_C, 2); // Affiche le texte au centre de 2 lignes. myOLED.print("NOPQRSTUVWXYZ" , OLED_C, 3); ); // Affiche le texte au centre de la ligne 5. myOLED.print("РСТУФХШШШШШШШШХИУЯ" , OLED_C, 6); // Affiche le texte au centre de la ligne 6. delay(3000); (); // Efface l'écran. myOLED.print("Small letter:" , 0, 0); // Imprime le texte à partir de la colonne 0, ligne 0. myOLED.print("abcdefghijklm" , OLED_C, 2); texte au centre de la 2ème ligne. myOLED.print("nopqrstuvwxyz", OLED_C, 3); // Afficher le texte au centre de la 3ème ligne. myOLED.print("rstufhhshshshshyuya", OLED_C, 6); Affiche le texte au centre de la 6ème ligne delay(3000); // Attendez 3 secondes // myOLED.clrScr(); // Nettoie l'écran. myOLED.print("Caractères :" , 0, 0); // Texte de sortie à partir de la colonne 0, ligne 0. monOLED.print("()()<>?!#$%&*" , OLED_C, 3); // Affiche le texte au centre de la 3ème ligne. myOLED.print("~`"\"^_-+=,.:;|/" , OLED_C, 5) ; // Afficher le texte au centre de la ligne 5. delay(3000); // Attendre 3 secondes. // myOLED.clrScr(); ligne 0. myOLED.print("1234567890" , 6, 2); // Imprime le texte à partir de la colonne 6, ligne 2. myOLED.print(1234567890, 6, 3); 1234567890 , 0, 4); // Imprimer le numéro à partir de 0 colonne 4 lignes. myOLED.print(12345.7890 , 6, 5); // Imprimer le numéro à partir de 6 colonnes 5 lignes delay(3000); 3 secondes) //

Algorithme de fonctionnement du programme :

Dans le code setup(), l'écran est initialisé (préparant l'écran au fonctionnement) et la police « SmallFontRus » est connectée (la bibliothèque dispose de plusieurs polices préinstallées qui sont connectées avant utilisation). Une liste des polices et une description de toutes les fonctions des bibliothèques iarduino_OLED et iarduino_OLED_txt sont disponibles dans la section Wiki - Écran OLED 128×64 / 0,96”.

Le code loop() est divisé en 4 parties. Chaque partie commence par la fonction de nettoyage d'écran clrScr() suivi de plusieurs fonctions print() pour imprimer du texte ou des chiffres sur l'écran d'affichage. Toutes les parties sont exécutées les unes après les autres avec un délai de 3 secondes effectué par les fonctions delay().

En conséquence, les éléments suivants apparaîtront alternativement sur l'écran : grandes lettres (y compris russes), petites lettres (y compris russes) , symboles et chiffres .

Problèmes lors de la sortie des lettres russes :

Codage:

Le premier et principal problème est l’encodage dans lequel le croquis est transmis au compilateur. Différentes versions de l'IDE Arduino stockent le croquis dans différents encodages. Même dernière version L'IDE Arduino 1.8.5 (au moment de la rédaction de cette leçon) pour le système d'exploitation Windows transmet le croquis au compilateur en codage UTF-8 (si le croquis a été enregistré dans un fichier *.ino) ou en codage Windows-1251 (si le croquis n'a pas été enregistré). Mais ni le croquis ni les bibliothèques qui y sont utilisées ne savent dans quel codage ils seront transmis au compilateur. Il s'avère donc que le même croquis, utilisant des lettres russes, peut fonctionner de différentes manières.

Note:

Qu’est-ce que l’encodage ?
L'ordinateur, comme le contrôleur (y compris Arduino), stocke, reçoit et transmet des données sous la forme de 1 et 0. À partir d'un ensemble de 1 et 0, vous pouvez former avec précision des nombres, mais vous ne pouvez pas former sans ambiguïté des lettres. L'encodage est la représentation de lettres par des chiffres (selon leur numéro de série), qu'un ordinateur ou un contrôleur peut déjà exploiter. Par exemple, « A » - 1, « B » - 2, « C » - 3, etc., alors le mot « BONJOUR » peut être transmis, reçu ou stocké sous la forme d'un ensemble de nombres : 17,18,10,3 ,6 ,20. Étant donné que les lettres peuvent être disposées de différentes manières (d'abord des symboles ou des chiffres, ou des lettres d'une autre langue, etc.), alors les numéros de série (chiffres) des lettres seront différents, il s'est donc avéré que de nombreux codages ont été inventés. Historiquement, les lettres latines ont les mêmes numéros de série dans la plupart des encodages : "A"... "Z" = 65...90, "a"... "z" = 97...122, et les lettres cyrilliques ne sont pas seulement ont des numéros différents, mais peuvent être dispersés, ou totalement absents dans les encodages.

Dans les bibliothèques iarduino_OLED et iarduino_OLED_txt, nous avons fourni la fonction setCoding (), qui peut prendre comme unique argument l'une des valeurs suivantes : TXT_UTF8, TXT_CP866, TXT_WIN1251, qui détermine l'encodage actuel du sketch. Cette fonction est commentée à la ligne 3 du code de configuration de cette leçon. Si le texte russe ne s'affiche pas correctement à l'écran, décommentez la ligne avec la fonction setCoding et remplacez le paramètre TXT_UTF8 par TXT_CP866 ou TXT_WIN1251. Dans la plupart des cas, cela résoudra le problème d’encodage.

MonOLED.setCoding(TXT_WIN1251); // Nous indiquons que le texte du croquis est présenté en codage Windows-1251.

Si la fonction setCoding () Ça ne t'a pas aidé, alors appeler la fonction setCoding () avec le paramètre false, et indiquez les lettres russes avec leur code, comme indiqué dans la section suivante de cette leçon : « Pas assez de mémoire ». Si vous le souhaitez, indiquez dans les commentaires de la leçon votre version de l'OS, la version de l'IDE Arduino et quel encodage votre IDE Arduino utilise (si vous ne savez pas quel encodage utilise l'IDE Arduino, alors écrivez quels caractères sont affichés sur l'affichage au lieu des lettres russes minuscules et majuscules). Nous allons essayer d'ajouter votre encodage aux bibliothèques.

Pas assez mémoire vive:

Deuxièmement, mais rien de moins problème important est que les chaînes consomment beaucoup de RAM. Chaque lettre d'une chaîne occupe au moins 1 octet. Ce problème est particulièrement pertinent lors de la création de divers éléments de menu.

Solution:

La plupart solution efficace Ce problème réside dans le stockage des chaînes non pas dans la zone RAM, mais dans la zone mémoire du programme, car la quantité de mémoire du programme est beaucoup plus grande. Pour ce faire, fournissez des chaînes comme arguments à la fonction F(). Les lignes ainsi spécifiées seront stockées dans la zone mémoire programme :

MyOLED.print(F("Ligne à afficher")); // Affiche la chaîne à l'écran. Serial.print(F("Ligne pour moniteur")); // Sortie d'une chaîne sur le moniteur du port série.

RAM ou mémoire programme insuffisante :

Si vous travaillez avec des chaînes en russe dans l'IDE Arduino, qui stocke le croquis en codage UTF-8. Vous stockez déjà des chaînes dans la zone mémoire du programme (ou avez laissé des chaînes dans la zone RAM). Vous pouvez toujours libérer jusqu’à la moitié de la mémoire occupée par les chaînes !

Le fait est qu'en codage UTF-8, chaque lettre russe occupe 2 octets. Si vous spécifiez des caractères russes dans le codage où ils occupent 1 octet, vous pouvez libérer la moitié de la mémoire occupée par les chaînes, quel que soit le type de mémoire dans lequel elles sont stockées.

Les caractères des polices des bibliothèques iarduino_OLED et iarduino_OLED_txt sont disposés conformément au codage CP866, ce qui signifie que vos chaînes peuvent être stockées et affichées sur l'écran d'affichage dans ce codage :

MonOLED.setCoding(false); // Annule l'encodage actuel, puisque nous indiquerons les lettres russes avec code. myOLED.print("\200\340\244\343\250\255\256 iArduino"); // Affiche le texte "Arduino iArduino". Au lieu des lettres russes, nous utilisons leur code en codage CP866.

Note:

Comment indiquer un symbole ou une lettre par son code dans des lignes de croquis ?
Vous devez d'abord connaître les codes de tous les caractères du codage dans lequel vous souhaitez les spécifier ; des tableaux de caractères de différents codages peuvent être trouvés sur Internet. Pour l'encodage CP866, les caractères russes ont les codes suivants :

UN 128
\200
ET 136
\210
R. 144
\220
Ch 152
\230
UN 160
\240
Et 168
\250
R. 224
\340
w 232
\350
Yo 240
\360
B 129
\201
Oui 137
\211
AVEC 145
\221
SCH 153
\231
b 161
\241
ème 169
\251
Avec 225
\341
sch 233
\351
e 241
\361
DANS 130
\202
À 138
\212
T 146
\222
Kommersant 154
\232
V 162
\242
À 170
\252
T 226
\342
ъ 234
\352

242
\362
g 131
\203
L 139
\213
U 147
\223
Oui 155
\233
g 163
\243
je 171
\253
à 227
\343
s 235
\353

243
\363
D 132
\204
P. 140
\214
F 148
\224
b 156
\234
d 164
\244
m 172
\254
F 228
\344
b 236
\354

244
\364
E 133
\205
N 141
\215
X 149
\225
E 157
\235
e 165
\245
n 173
\255
X 229
\345
euh 237
\355

245
\365
ET 134
\206
À PROPOS 142
\216
C 150
\226
YU 158
\236
et 166
\246
Ô 174
\256
ts 230
\346
Yu 238
\356

246
\366
Z 135
\207
P. 143
\217
H 151
\227
je 159
\237
h 167
\247
P. 175
\257
h 231
\347
je 239
\357

247
\367

Pour afficher n'importe quel caractère vous devez indiquer son code dans le système de numérotation octal, qui doit être précédé d'une barre oblique inverse " \ ». Cette règle Valable pour toutes les chaînes de l'IDE Arduino. Dans la ligne "Arduino iArduino" de l'exemple ci-dessus, la première lettre est "A", porte le code 128. Si vous convertissez 128 en octal, vous obtenez (200) 8. Cela signifie que la lettre « A » peut être écrite comme « \200 », la lettre « p » comme « \340 », la lettre « d » comme « \244 », etc.

Introduction : Introduction à l'écran OLED I2C 128*64 / 128*32.

Bonjour! Étant un amateur - un passionné d'électronique, je suis sûr que tout ce que nous faisons - jouets électroniques - produits faits maison ou grands projets - est tout cela par curiosité et par paresse. La curiosité s'efforce de comprendre et d'appréhender le vaste, l'inconnu, de comprendre comment cela fonctionne là-bas, ce qu'il fait, comment il se déplace. Et la paresse invente quelque chose à inventer, pour ne pas se lever, ne pas s'approcher, ne pas soulever, ne pas se salir ou quoi que ce soit d'autre d'important.

Puisqu'il vaut mieux voir des informations que comprendre ce qui est sur le point de se passer dans notre appareil, ou ce qui s'est déjà produit, ou ce qui se passe, nous voudrons certainement recevoir ces informations les plus utiles de nos microcontrôleurs, capteurs ou autres appareils. Et dans tous les cas, je souhaite recevoir des messages, tels que des questions, des avertissements, des rappels, des émoticônes, des étoiles, des cœurs, etc.

Pour ceux qui ont également un désir similaire, voici un petit guide pour connecter et tester des écrans OLED petits et peu coûteux.

Nous parlerons ensuite de l'un des modèles d'écran OLED largement disponibles pour les radioamateurs, contrôlés par la puce SSD1306, avec une taille d'écran de 0,96 pouces et une résolution de 128*64 ou 128*32 pixels. Ces écrans sont idéaux pour les petites conceptions de radio amateur et les projets faits maison.

Étape 1 : Concepts de base

Nous le connecterons à Arduino UNO / NANO, et nous le programmerons également via Arduino.

  • OLED est une diode électroluminescente organique, c'est-à-dire un dispositif semi-conducteur composé de composés organiques qui commence à émettre de la lumière lorsqu'un courant électrique le traverse.
  • ARDUINO est une plateforme de formation et de systèmes d'automatisation des bâtiments et de robotique.
  • ArduinoIDE est un environnement de développement. Il s'agit d'un programme de programmation Arduino gratuit.
  • I2C – Circuits inter-intégrés, ligne de communication inter-puces.
  • Sketch, alias code, alias programme – terminologie Arduino.

Suivez les instructions pour comprendre comment connecter et configurer correctement l'écran OLED à l'Arduino et comment afficher un message personnalisé sur son écran.

Nous faisons tout étape par étape.

Étape 2 : Accessoires

Nous n’avons besoin que de quatre choses :

  • 1. L'écran OLED lui-même mesure 0,96" (vous pouvez l'acheter sur Aliexpress ou Ebay, c'est long, mais pas cher !).
  • 2. Arduino UNO / Nano (au même endroit que l'écran).
  • 3. Fils de connexion (ibid.).
  • 4. Ordinateur ou ordinateur portable avec ArduinoIDE installé.

En général, acheter des pièces pour divers projets sur Aliexpress et Ebay est une chose très cool, pendant que vous travaillez sur un projet, des pièces pour un autre sont déjà en route. L'essentiel est de ne pas oublier de passer commande.

Étape 3 : connexion de l'écran

L'écran est contrôlé par une puce SSD1306, qui prend en charge cinq protocoles de communication, dont I2C. Les données utilisant ce protocole sont transmises sur seulement deux fils, et moins il y a de fils dans le boîtier, mieux c'est, donc cela nous convient plutôt bien. Mais! Il existe des modules avec le protocole SPI et même avec la commutation de protocole, alors soyez prudent lors de l'achat de ce module.

Épingles utilisées :

Écran OLED – SCL/SCK (horloge) et SDA (données), puissance « Plus » (VCC) et puissance « Moins » (GND).

Épingles utilisées :

Arduino UNO - SCL/SCK sur A5 et SSD sur A4, alimentation « Plus » (+5V) et alimentation « Moins » (GND).

Connexion de l'écran à Arduino :

  • Vcc-5V
  • Masse - Masse
  • SDA-A4
  • SCL-A5

Étape 4 : Scanner I2C

Chaque appareil sur le bus I2C a une adresse hexadécimale, elle ne peut pas être modifiée, elle est câblée, tout fabricant responsable doit l'indiquer quelque part sur le boîtier ou dans la notice. Il existe des modules avec des commutateurs et des cavaliers qui peuvent être utilisés pour modifier l'adresse, mais... si les appareils sont ridiculement bon marché, le fabricant ne prendra peut-être pas la peine de s'occuper d'un tel détail, vous devrez donc le déterminer vous-même.

Au total, jusqu'à 127 adresses peuvent être utilisées sur le bus : 119 pour les appareils et 8 adresses de service. La communication s'effectue à ces adresses. Il y en a un principal, alias Maître, et il y a un esclave, alias Esclave - les Maîtres demandent, les esclaves répondent, tout est simple.

Étant donné que notre écran OLED utilise le protocole de communication I2C et que l'adresse peut ne pas être spécifiée, nous essaierons de trouver nous-mêmes cette adresse.

Vous pouvez le faire en téléchargeant un court croquis sur votre carte Arduino avec l'OLED connecté. MAIS!

Ne vous précipitez pas pour télécharger le croquis sur Arduino tout de suite ! Téléchargeons d'abord les "drivers", c'est-à-dire connectons les bibliothèques, et pour ce faire, nous passerons immédiatement à "l'étape n°5", puis reviendrons et continuerons.

Étape 4 : suite :

Téléchargez CODE Finder_I2C_Hex_Address.ino, téléchargez-le sur Arduino.

Ouvrez « Port Monitor », réglez la vitesse sur 9600 et si tout est correctement connecté, le programme affichera l'adresse de l'appareil, dans mon cas OLED avec l'adresse 0x3F.

Étape 5 : Téléchargez et connectez les bibliothèques

Pour que tout fonctionne correctement et que vous n'ayez pas à réinventer la roue, vous devez connecter quelques librairies à l'environnement ArduinoIDE, à savoir : ADAFRUIT GFX et ADAFRUIT SSD1306, elles sont nécessaires pour qu'Arduino puisse communiquer de manière indépendante avec l'écran OLED.

Vous pouvez inclure ces bibliothèques en suivant ces étapes.

  • 1. Dans ArduinoIDE, accédez au menu Sketch.
  • 2. Sélectionnez « Inclure les bibliothèques ».
  • 3. Sélectionnez « Gérer les bibliothèques ».
  • 4. Recherchez ADAFRUIT GFX et installez-les.
  • 5. Recherchez ADAFRUIT SSD1306 et installez-les.

Avec les dernières versions des bibliothèques, mon affichage fonctionnait de travers, cela peut bien sûr être dû à la courbure de mes mains, mais après avoir installé les toutes premières versions de ces bibliothèques, tout a commencé à paraître fluide et beau. Pour une raison quelconque, les lignes de Pouchkine me viennent à l’esprit :

... et l'expérience, fils d'erreurs difficiles,

et génie, ami des paradoxes.

Une autre façon d'installer des bibliothèques consiste à rechercher, télécharger et installer ces bibliothèques vous-même.

Ce sont les mêmes bibliothèques Adafruit, mais des bibliothèques similaires peuvent être facilement recherchées dans les moteurs de recherche, à la demande d'OLED I2C. De nombreux passionnés écrivent des bibliothèques « pour eux-mêmes » et les publient ensuite sur le Web. La bibliothèque à utiliser dépend de vous.

Pour que l'écran affiche les lettres russes, des bibliothèques spéciales sont également nécessaires, mais il s'agit d'un sujet distinct pour un article séparé.

Une fois les bibliothèques installées, vous pouvez revenir à l'étape 4 et enfin connaître l'adresse hexadécimale de votre écran.

Étape 6 : Test d'affichage

Pour vérifier si tout fonctionne comme prévu, exécutez l'exemple de test d'ArduinoIDE.

Pour ça:

Allez dans FICHIER > EXEMPLES > SSD 1306 > Sélectionnez 128x64 i2c

Si vous obtenez « Erreur », essayez de sélectionner SSD 1306 > 128x32 i2c.

Si « Erreur » se produit à nouveau, essayez de modifier l'adresse I2C sur la ligne 61 du code de démonstration et remplacez-la par l'adresse de votre écran que vous avez déterminée à l'étape 4.

Si l'erreur se reproduit, vous pouvez essayer d'éditer le fichier Adafruit_SSD1306.h, il se trouve dans le dossier des bibliothèques Arduino.

Ouvrez le fichier Adafruit_SSD1306.h dans un éditeur de texte et recherchez les lignes :

//#définir SSD1306_128_64

#définir SSD1306_128_32

// #définir SSD1306_96_16

Décommentez la ligne :

#définir SSD1306_128_64.

Ça devrait ressembler à ça:

#définir SSD1306_128_64

//#définir SSD1306_128_32

// #définir SSD1306_96_16

Si l'erreur se reproduit, vous devez vérifier les connexions correctes.

Une fois le téléchargement terminé, vous verrez une animation de test sur l'écran, ce qui signifie que vous avez configuré avec succès votre écran OLED.

Lorsque vous aurez pleinement apprécié cette animation, vous pourrez passer à l’étape suivante.

Étape 7 : Rédigez votre propre message

Pour écrire votre propre message, créez d'abord une nouvelle esquisse dans l'environnement de programmation ArduinoIDE.

Dans l'en-tête, nous incluons 4 bibliothèques :

#inclure<SPI.h >

#inclure<Fil.h >

#inclure<Adafruit_GFX.h >

#inclure<Adafruit_SSD1306.h >

Ensuite, nous écrivons le protocole de réinitialisation :

#define OLED_RESET 4 Affichage Adafruit_SSD1306 (OLED_RESET ) ;

Dans VOID SETUP, nous indiquons l'adresse hexadécimale de notre affichage 0x3C, que nous avons apprise à « l'étape n° 4 ».

Ensuite, nous initialisons l'affichage et l'effacons :

display.begin(SSD1306_SWITCHCAPVCC, 0x3C) ;

Pour ce faire, nous décrivons la taille du texte, la couleur du texte, la position du curseur et enfin, affichons le message à l'aide de la commande println :

display.setTextSize(2) ;

display.setTextColor(BLANC) ;

display.setCursor(0,0) ;

display.println("Bravo!") ;

display.display();

A la fin n'oublie pas d'écrire afficher.afficher pour que l'image s'affiche sur l'écran, sinon vous obtiendrez un vide.

Si vous avez tout fait correctement, un message apparaîtra sur les écrans.

Les écrans OLED sont l'un des écrans les plus attrayants et les plus modernes, avec petites tailles et l'écran OLED à faible consommation d'énergie offre un contraste riche. Les écrans sont principalement disponibles sur la puce SSD1306 fonctionnant sur une interface I2C, qui ne nécessite que 2 fils pour fonctionner, vous permettant de vous connecter et de commencer à utiliser rapidement. Dans cet article, je vais vous expliquer comment connecter un écran OLED avec une diagonale de 0,96 pouces et une extension de 128 x 64 pixels.

Spécifications techniques

Technologie d'affichage : OLED
Résolution d'affichage : 128 x 64 pixels
Diagonale d'affichage : 0,96 pouces
Portée de vue : 160°
Tension d'alimentation : 2,8 V ~ 5,5 V
Puissance : 0,08 W
Dimensions : 27,3 mm x 27,8 mm x 3,7 mm

Informations générales sur l'écran OLED

Et c'est quoi, Technologie OLED? Signifie Organic Light-Emitting Diode, l'écran se compose de grand nombre LED organiques, la principale différence avec affichage LCD, c'est que chaque LED brille seule et ne nécessite pas de rétroéclairage séparé. Grâce à cela, l'écran présente des avantages significatifs par rapport aux écrans LCD classiques, tels que le contraste, l'angle de vision et la faible consommation d'énergie. Il présente bien sûr également des inconvénients, une durée de vie courte et un coût élevé.

Un module OLED avec une extension de 128x64 (0,96 pouces) se compose de deux parties, l'écran lui-même, qui à son tour peut être divisé en deux parties, un écran graphique et un contrôleur SSD1306 à partir duquel un câble flexible va vers verso frais. La deuxième partie du module est une carte de circuit imprimé (qui est essentiellement un adaptateur), sur laquelle est installé un minimum de câblage électrique, un connecteur à une rangée au pas de 2,54 mm et quatre trous de montage.
Les modules OLED sont disponibles avec différentes résolutions 128×64, 128×32 et 96×16 (dans l'article et l'exemple, un écran avec une extension de 128×32 est utilisé), le contrôleur SSD1306 lui-même peut fonctionner avec des matrices OLED avec une extension maximale de 128×64 également, les modules sont blancs, bleus et bleu-jaune (ci-dessus, bande jaune, 15 pixels de large). Chaque fabricant produit le sien circuit imprimé avec différentes mises en page Composants electroniques et l'interface de sortie, puisque le contrôleur SSD1306 prend en charge trois protocoles de fonctionnement à la fois :

Interface parallèle 8 bits série 6800/8080
Interface périphérique série 3/4 fils
I2C

Pour changer le protocole de fonctionnement, trois lignes BS0, BC1 et BS2 sont fournies à l'aide desquelles le contrôleur d'affichage détermine quel protocole il utilisera. Dans mon cas, l'écran OLED est conçu pour fonctionner en utilisant un seul protocole I2C ; dans d'autres options, il est possible de modifier le protocole de fonctionnement à l'aide de résistances nulles ou de commutateurs DIP.

Ci-dessous se trouve schéma Affichage OLED sur la puce SSD1306, fonctionnant via l'interface I2C, on voit que la puce U2 fait office de stabilisateur de tension (3,3V), le condensateur C8 est nécessaire pour lisser la tension de sortie. Les résistances R6 et R7 ont pour fonction de remonter les lignes SCL et SAD ; si plusieurs appareils sont connectés au bus I2C, il est nécessaire d'utiliser des résistances de rappel sur un seul appareil. A l'aide d'une résistance de 0 Ohm (pas de désignation), vous pouvez modifier l'adresse 0x78 ou 0x7A.

Affectation des broches J2 :
SCL : horloge série
SDA : ligne de données (Serial Dфta)
VCC : "+" puissance
GND : "-" alimentation

Connexion à Arduino

Pièces requises :
Arduino UNO R3 x 1 pièce.
Écran LCD 1602A (2×16, 5V, bleu) x 1 pc.
Fil DuPont, 2,54 mm, 20 cm, F-M (Femelle - Mâle) x 1 pc.
cable USB 2,0 A-B x 1 pièce.

Connexion:
Dans l'exemple, j'utiliserai la carte Arduino UNO R3 et un écran OLED (extension 128x64), comme je l'ai dit plus tôt, l'interface I2c est utilisée, seuls deux fils sont nécessaires pour la connexion, on connecte le SDA de l'écran à la broche A4 (Arduino) et SCL à la broche A5 (Arduino). Lors de l'utilisation d'autres plateformes Mega ou Nano, il est nécessaire d'utiliser d'autres ports pour plus de commodité, je fournirai un tableau de connexions pour les différentes cartes ; Ensuite, vous devez connecter l'alimentation, GND à GND et VCC à 5 V ou 3,3 V, le circuit est assemblé, il ne reste plus qu'à télécharger le croquis.


Tableau de connexion

Pour travailler avec un écran OLED, il faut une bibliothèque, puisqu'il existe plusieurs bibliothèques, je vais montrer un exemple de travail utilisant la bibliothèque OLED_I2C (vous pouvez télécharger la bibliothèque en fin d'article)
Le programme affiche uniquement du texte sur l'écran et ne fournit aucune autre fonctionnalité, téléchargez le croquis et téléchargez-le sur la carte Arduino UNO R3.

/* Testé sur Arduino IDE 1.8.0 Date du test 27/01/2017 */ #inclure // Connectez la bibliothèque OLED OLED_I2C myOLED(SDA, SCL, 8); // Sélection du port, UNO est SDA 8 broches, SCL est 9 broches. extern uint8_t SmallFont ; // Connecte la police void setup() ( myOLED.begin(); // initialise l'écran myOLED.setFont(SmallFont); ) void loop() ( myOLED.clrScr(); // Efface l'écran myOLED.print(" Bonjour!" , CENTRE, 24); // Imprimer le texte : au centre, ligne 24 myOLED.print("www.robotchip.ru", CENTRE, 40); // Imprimer le texte : au centre, ligne 40 monOLED.update(); / délai (500); // pause 0,5 s)

Testé sur Arduino IDE 1.8.0

Date de l'essai : 27/01/2017

#inclure // Connecter la bibliothèque OLED_I2C

OLED myOLED (SDA, SCL, 8) ; // Sélection du port, UNO est SDA 8 broches, SCL est 9 broches.

extern uint8_t SmallFont ; // Connecte la police

void setup()

monOLED. commencer(); // initialisation de l'écran

monOLED. setFont(PetiteFont);

boucle vide()

monOLED. clrScr(); // Efface l'écran

monOLED. print("Bonjour !", CENTRE, 24); // Texte de sortie : au centre, ligne 24

monOLED. imprimer ("www.robotchip.ru" , CENTRE , 40 ) ; // Texte de sortie : au centre, ligne 40

monOLED. mise à jour(); //

retard (500); // pause 0,5 s

Télécharger le croquis