Comment connecter l'écran OLED I2C à ARDUINO
Introduction : Introduction à l'écran OLED I2C 128*64 / 128*32.
Bonjour! Étant un amateur passionné d'électronique, je suis sûr que tout ce que nous faisons - des jouets électroniques, des produits faits maison ou de grands projets - est tout cela par curiosité et 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.
Nous le connecterons à Arduino UNO / NANO, et nous le programmerons également via 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.
Nous n’avons besoin que de quatre choses :
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.
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 :
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.
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.
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.
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.
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écommentez la ligne :
Ça devrait ressembler à ça:
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.
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 :
Ensuite, nous écrivons le protocole de réinitialisation :
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 :
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 :
A la fin n'oublie pas d'écrire afficher.afficherpour 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.
Voici le CODE Starting_with_Arduino_OLED.ino de notre programme :
Bonjour! Étant un amateur passionné d'électronique, je suis sûr que tout ce que nous faisons - des jouets électroniques, des produits faits maison ou de grands projets - est tout cela par curiosité et 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 fabriqué à partir 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 - 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 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 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 :
#include <SPI.h>
#include <Fil.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
Ensuite, nous écrivons le protocole de réinitialisation :
#définir 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.afficherpour 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.
Voici le CODE Starting_with_Arduino_OLED.ino de notre programme :
code postal
[946 b] (téléchargements : 4908)
Classes de maître similaires
Particulièrement intéressant
Antenne câble pour la télévision numérique en 5 minutes
Une sélection de schémas simples et efficaces.
Tension triphasée à partir d'un monophasé en 5 minutes
Démarrage d'un moteur triphasé à partir d'un réseau monophasé sans condensateur
Lampe de poche éternelle sans piles
Comment fabriquer une lampe LED peu coûteuse mais très puissante
Commentaires (10)