Salut En tant qu'amateur - amateur d'électronique, je suis certain que nous ne faisons que des jouets électroniques - des produits maison ou de grands projets, tous par curiosité et paresse. La curiosité cherche à comprendre et à comprendre l’immense, non connu, à comprendre comment cela fonctionne là-bas, ce qu’il fait, comment il se déplace. Et la paresse invente, pour arriver à cela, pour ne pas se lever, ne pas être en forme, ne pas soulever, ne pas se salir ou autre chose d’important.
Étant donné qu'il est préférable de consulter des informations que de comprendre ce qui est sur le point de se produire, ou s'est déjà produit ou est en train de se produire, nous voudrons certainement obtenir ces informations très utiles de nos microcontrôleurs, capteurs ou autres dispositifs. Et dans tous les cas, je souhaite recevoir des messages tels que des questions, des avertissements, des rappels, des émoticônes, des astérisques, des coeurs, etc.
Voici un guide rapide pour ceux qui souhaitent également se connecter et vérifier les écrans OLED petits et peu coûteux.
Nous aborderons ensuite l’un des modèles d’écrans OLED pour radioamateurs largement disponibles, contrôlés par la puce SSD1306, avec une taille d’écran de 0,96 pouce et une résolution de 128 * 64 ou 128 * 32 pixels. Ces présentoirs sont parfaits pour les petites conceptions de radio amateur et les produits faits maison.
Étape 1: Concepts clés
Nous allons le connecter à Arduino UNO / NANO, eh bien, et pour programmer, nous le connecterons é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 la traverse.
- ARDUINO est une plate-forme pour la formation et l'automatisation de bâtiments et la robotique.
- ArduinoIDE est un environnement de développement. Ceci est un outil de programmation Arduino gratuit.
- I2C - Circuits inter-intégrés, ligne de communication inter-microcircuits.
- Un croquis, c'est un code, c'est un programme - terminologie Arduino.
Suivez les instructions pour comprendre comment connecter et configurer correctement un écran OLED sur l’Arduino et comment afficher votre propre message sur son écran.
Nous faisons tout par étapes.
Étape 2: accessoires
Nous n'aurons besoin que de quatre choses:
- 1. L’écran OLED proprement dit mesure 0,96 ”(peut être acheté sur Aliexpress ou sur Ebay, - long, mais bon marché!).
- 2. Arduino UNO / Nano (au même endroit que l'écran).
- 3. Connexion des fils (ibid.).
- 4. Un ordinateur ou un ordinateur portable sur lequel ArduinoIDE est installé.
En général, acheter des pièces pour divers projets sur Aliexpress et Ebay est une chose très cool, alors que vous faites un projet, des pièces pour un autre sont déjà en route. L'essentiel est de ne pas oublier de passer une commande.
Étape 3: connectez l'écran
L’affichage est contrôlé par la puce SSD1306, qui prend en charge cinq protocoles de communication, dont l’un I2C. Les données de ce protocole ne sont transmises que par deux fils. Moins il y a de fils dans le boîtier, mieux c'est, alors ça nous va bien. Mais! Il existe des modules avec protocole SPI et même commutation de protocole, soyez donc prudent lorsque vous achetez ce module.
Conclusions utilisées:
Écran OLED - SCL / SCK (horloge) et SDA (données), alimentation "Plus" (VCC) et alimentation "moins" (GND).
Conclusions utilisées:
Arduino UNO - SCL / SCK sur A5 et SSD sur A4, alimentation "Plus" (+ 5V) et "Moins" (GND).
Connectez l’écran à l’Arduino:
- Vcc - 5V
- GND - GND
- SDA - A4
- SCL - A5
Étape 4: Scanner I2C
Chaque périphérique sur le bus I2C a une adresse hexadécimale, vous ne pouvez pas la changer, elle est cousue étroitement, chaque fabricant responsable doit l’indiquer quelque part sur le boîtier ou dans les instructions. Il existe des modules avec des commutateurs et des cavaliers avec lesquels vous pouvez changer l'adresse, mais ... si les dispositifs sont bon marché, si laid, le fabricant ne s'embarrassera peut-être pas de la tâche, vous devrez donc le déterminer vous-même.
Au total, vous pouvez utiliser jusqu'à 127 adresses sur le bus: 119 pour les appareils et 8 adresses de service. La communication est effectuée à ces adresses. Il y a un maître, il est un maître, mais il y a un esclave, il est aussi un esclave - les maîtres demandent, les disciples répondent, tout est simple.
Puisque notre écran OLED utilise le protocole de communication I2C et que l'adresse peut ne pas être indiquée, nous allons essayer de trouver cette adresse même.
Cela peut être fait en téléchargeant une courte esquisse sur votre carte Arduino avec OLED connecté. MAIS!
Prenez votre temps pour télécharger le croquis sur Arduino immédiatement! Commençons par télécharger le "pilote", c.-à-d. nous allons connecter les bibliothèques et pour cela, nous passons directement à «Étape 5», puis nous allons revenir en arrière et continuer.
Étape 4: Suite:
Téléchargez CODE Finder_I2C_Hex_Address.ino, téléchargez-le sur Arduino.
Ouvrez le "Moniteur de port", réglez la vitesse sur 9600 et si tout est connecté correctement, le programme affichera l'adresse du périphérique, 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 plusieurs bibliothèques à 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 connecter ces bibliothèques en procédant comme suit.
- 1. Dans ArduinoIDE, accédez au menu Sketch.
- 2. Sélectionnez "Inclure les bibliothèques" / Inclure les bibliothèques.
- 3. Sélectionnez "Gérer les bibliothèques" / Bibliothèques gérées.
- 4. Recherchez ADAFRUIT GFX et installez-les.
- 5. Recherchez ADAFRUIT SSD1306 et installez-les.
Avec les dernières versions des bibliothèques, l’affichage fonctionnait mal pour moi. C’est peut-être à cause de la courbure des mains, mais après avoir installé les toutes premières versions de ces bibliothèques, tout a commencé à apparaître en douceur et magnifiquement. Pour une raison quelconque, les lignes de Pushkin apparaissent dans sa mémoire:
... et l'expérience, le fils d'erreurs difficiles,
et génie, paradoxes des amis.
Un autre moyen d'installer des bibliothèques consiste à rechercher, télécharger et installer ces bibliothèques vous-même.
Pour un exemple de Github:
//github.com/adafruit/Adafruit-GFX-Library
//github.com/adafruit/Adafruit_SSD1306
Ce sont les mêmes bibliothèques Adafruit, mais des bibliothèques similaires sont facilement consultables dans les moteurs de recherche, à la demande de OLED I2C. De nombreux passionnés écrivent des bibliothèques "pour eux-mêmes", puis les mettent sur le Web. Quelle bibliothèque utiliser est à vous.
Pour que l'affichage puisse afficher des lettres en russe, des bibliothèques spéciales sont également nécessaires, mais il s'agit d'un sujet séparé 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 affichage.
Étape 6: Test de l'affichage
Pour vérifier si tout fonctionne comme prévu, exécutez l'exemple de test à partir de ArduinoIDE.
Pour faire ceci:
Allez dans FICHIER> EXEMPLES> SSD 1306> Sélectionnez 128x64 i2c
Si vous obtenez une «erreur», essayez de choisir le SSD 1306> 128x32 i2c.
En cas d'erreur, essayez de modifier l'adresse I2C à la ligne 61 du code de démonstration et remplacez-la par l'adresse de votre affichage, que vous avez déterminée à l'étape 4.
Si l'erreur se reproduit, vous pouvez essayer de modifier le fichier Adafruit_SSD1306.h, qui se trouve dans le dossier contenant les bibliothèques Arduino.
Ouvrez le fichier Adafruit_SSD1306.h dans un éditeur de texte et recherchez les lignes:
// # définit SSD1306_128_64 #define SSD1306_128_32 // #define SSD1306_96_16
Décommentez la ligne:
#define SSD1306_128_64.
Cela devrait être comme ça:
#define SSD1306_128_64 // # définit SSD1306_128_32 // #define SSD1306_96_16
Si l'erreur se reproduit, il est nécessaire de vérifier les connexions correctes.
Une fois le téléchargement terminé, vous verrez une animation de test à l'écran, ce qui signifie que vous avez correctement configuré votre affichage OLED.
Lorsque vous appréciez cette animation, vous pouvez passer à l'étape suivante.
Étape 7: Écrire 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 connectons 4 bibliothèques:
#include #include #include #include
Ensuite, nous écrivons le protocole de réinitialisation:
#define OLED_RESET 4 Adafruit_SSD1306 display (OLED_RESET);
Dans VOID SETUP, spécifiez l'adresse hexadécimale de notre affichage 0x3C, que nous avons trouvée à "l'étape n ° 4".
Ensuite, initialisez l’affichage et effacez-le:
display.begin (SSD1306_SWITCHCAPVCC, 0x3C); display.clearDisplay ();
Ensuite, dans VOID LOOP, nous écrivons le code principal, c’est-à-dire le message que nous voulons afficher.
Pour ce faire, nous décrivons la taille et la couleur du texte, la position du curseur et, enfin, affichons un message à l'aide de la commande println:
display.setTextSize (2); display.setTextColor (WHITE); display.setCursor (0,0); display.println ("Bien joué!"); display.display ();
A la fin, n'oubliez pas d'écrire display.displayde sorte que l'image apparaisse à 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: