Das vierte Türchen

Au cours des trois derniers jours, vous avez développé des connaissances de base sur la construction d'un petit circuit, le soudage et la mise en service d'un microcontrôleur. Ce que les elfes de Noël n'ont pas encore sorti, ce sont des périphériques pour le micro contrôleur. Les elfes de Noël veulent corriger cela aujourd'hui et ont 6 composants cachés derrière la porte quatre.

Ce qu'il y a derrière la porte numéro 4

Derrière la porte numéro quatre, vous trouverez

  • Affichage du module LCD 3 x HD44780 1602 (éclairage vert)
  • 3 x adaptateurs d'interface I2C pour le soudage

Vous avez également besoin des bibliothèques de programmes pour l'IDE Arduino Liquide Crystal et/ou LiquidCrystal_I2C. Nous montrons comment cela fonctionne ici

En général, vous avez trois options différentes pour connecter l'écran à un microcontrôleur (voir illustration 1).

 Illustration 1: Le module LCD HD44780 1602 affiche les options de connexion

La première variante, dans l'image ci-dessus, est la variante originale avec un embout soudé (non inclus dans le volume de livraison). Mais cela signifie aussi que sur un micro contrôleur, au moins 6 broches sont utilisées, nous en parlerons plus tard.

L'autre variante consiste d'un adaptateur d'interface I2C soudé, qui peut être fixé à l'avant ou à l'arrière. Assurez-vous que les en-têtes à quatre broches pour la connexion au microcontrôleur sont toujours orientées vers l'extérieur, sinon l'écran du module LCD HD44780 1602 risque d'être détruit.

Connexion classique

Dans la variante classique l'écran LCD est connecté au microcontrôleur sur un total de 6 broches. La figure 2 montre une telle connexion, où le potentiomètre 10kOhm est utilisé pour le contraste sur l'écran.

Illustration 2: Interface parallèle de connexion LCD

Le code correspondant (voir code 1) est fin et affiche le message "Ecran LCD sans ic2" sur deux lignes


//-----------------------------------------------------
// LiquidCrystal parallel interface
// Autor: Joern Weise
// License: GNU GPl 3.0
// Created: 24. Nov 2020
// Update: 24. Nov 2020
//-----------------------------------------------------
#include <LiquidCrystal.h> //include the LiquidCrystal library

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
//define LCD pins (RS, E, D4, D5, D6, D7)

void setup() {
lcd.begin(16, 2); //initializes the LCD and specifies the dimensions
lcd.home();
lcd.print(" LCD-Display ");
lcd.setCursor(0, 1);
lcd.print(" without i2c ");
}

void loop()
{

}

Code 1: Edition simple

Au fait, le calcul pour la position du curseur et la ligne commence toujours à 0, donc lcd.setCursor(0,1) ; est le premier chiffre de la deuxième ligne.

Connexion avec adaptateur d'interface I2C

Si vous voulez faire fonctionner l'écran avec I2C, vous devez souder l'adaptateur d'interface I2C à l'écran. En principe, vous pouvez faire fonctionner jusqu'à 8 écrans LCD si vous définissez différentes adresses en format hexadécimal via les pavés d'adresse. Le tableau 1 montre comment souder le pavé d'adresse pour obtenir l'adresse HEX souhaitée (voir la figure 3). "X" signifie connecté, "0" non connecté.

Article

A0

A1

A2

Adresse hexadécimale

1

X

X

X

0X20

2

0

X

X

0X21

3

X

0

X

0X22

4

0

0

X

0X23

5

X

X

0

0X24

6

0

X

0

0X25

7

X

0

0

0X26

8

0

0

0

0X27

Table 1: Adresse hexadécimale pour les blocs d'adresse

 Illustration 3: Position des pavés d'adresse pour changer l'adresse HEX

L'adresse de base est 0x27, les trois ponts de soudure sont ouverts.

La connexion à une par ex. carte microcontrôleur compatible avec Arduino Uno R3 est assez simple, car les broches I2C du microcontrôleur sont utilisées, c'est-à-dire SDA vers A4, SCL vers A5, VCC vers 5V et GND vers GND (voir figure 3). Ici, sur la figure 3, le potentiomètre pour le contraste de l'écran LCD peut également être bien vu.

Figure 4 : Connexion du HD44780 1602 LCD avec I2C à la carte du microcontrôleur

Le code 2 produit également un message sur deux lignes ; ici, il s'agit de la phrase "Écran LCD avec i2c". Nous utilisons ici la deuxième bibliothèque pour LiquidCrystal avec l'ajout I2C.

//-----------------------------------------------------
// LiquidCrystal I2C connection
// Autor: Joern Weise
// License: GNU GPl 3.0
// Created: 24. Nov 2020
// Update: 24. Nov 2020
//-----------------------------------------------------
#include <Wire.h>
#include <LiquidCrystal_I2C.h>


LiquidCrystal_I2C lcd(0x27,16,2); // set the LCD address to 0x27 for a 16 chars and 2 line display

void setup()
{
lcd.init(); // initialize the lcd
lcd.backlight(); // backlight on

lcd.home(); // set cursor to 0,0

//Write some text
lcd.print(" LCD-Display ");
lcd.setCursor(0, 1);
lcd.print(" with i2c ");

}

void loop()
{

}

Code 2: sortie simple via i2c

Bien évidemment, la combinaison des deux variantes de connexion est également possible. Pour cela, vous devez construire le circuit à partir de la figure 2 et de la figure 4 en même temps et bien sûr inclure les deux bibliothèques.

Dans ce sens….

Figure 5: Nous souhaitons un joyeux Noël

Vous avez maintenant mis la porte numéro 4 en service et acquis un peu de connaissances de base. Si vous voulez des idées de projets, voici quelques projets:

Plus de projets pour AZ-Delivery de ma part, vous pouvez trouver sous https://github.com/M3taKn1ght/Blog-Repo.

L'équipe AZ-Delivery vous souhaite une belle saison de l'Avent

Specials

3 commentaires

Yannic Thiel

Yannic Thiel

Guten Tag
Ich bin absoluter Neuling im Bereich Arduino und Co. Ich hangele mich derzeit von Forum zu Forum und kleine, einfach Programme zum laufen zu bekommen. Ich habe aber ein Problem, dass mich seit Freitag Abend beschäftigt und ich keine vernünftige Lösung dazu finde. Wie kann ich Text, der länger als 16 Zeichen ist, durchscrollen lassen?

Bernd Albrecht

Bernd Albrecht

Unser französischer Freund fragt nach Unterschieden bei den Programm-Bibliotheken und wie man die tatsächliche I2C-Adresse eines Bauteils überprüft.
1. Der einzige Unterschied, den ich festgestellt habe, war bei der Initialisierung des Display-Objekts lcd. Wer bei lcd.init() eine Fehlermeldung erhält, sollte es mit lcd.begin() probieren.
2. Zur Überprüfung der I2C-Adresse benötigt man einen Micro Controller, auf dem die Programm-Bibliothek SoftwareSerial funktioniert, z.B. unseren Nano, sowie einen geeigneten Sketch, z.B. aus unserem Blog-Beitrag vom 5. Oktober 2020: https://www.az-delivery.de/en/blogs/azdelivery-blog-fur-arduino-und-raspberry-pi/ein-praktischer-und-kostengunstiger-i2c-scanner.
Notre ami français demande quelles sont les différences dans les bibliothèques de programmes et comment vérifier l’adresse I2C réelle d’une pièce.
1. La seule différence que j’ai remarquée était l’initialisation de l’objet d’affichage lcd. Si vous obtenez un message d’erreur avec lcd.init (), vous devriez essayer lcd.begin ().
2. Pour vérifier l’adresse I2C, vous avez besoin d’un microcontrôleur sur lequel fonctionne la bibliothèque de programmes SoftwareSerial, par ex. notre nano, ainsi qu’un croquis approprié, par ex. de notre article de blog du 5 octobre 2020: https://www.az-delivery.de/en/blogs/azdelivery-blog-fur-arduino-und-raspberry-pi/ein-praktischer-und-kostengunstiger-i2c-scanner.

Reitzer

Reitzer

Bonjour, merci pour votre partage!
Je démarre dans le “hobby” Arduino et il est difficile pour moi de savoir si toute les bibliothèques “LiquidCrystal_I2C.h” sont équivalentes (en fonction des auteurs) ou non, comment les choisir et ou les trouver…
D’autre part je ne suis pas sur de comprendre… L’adresse du LCD (ici 0×27) est un paramètre ‘physique’ du composant, je me trompe? si oui comment puis-je vérifier si l’adresse est effectivement correcte?
Merci a l’avance pour votre aide,
et bonne fête a vous aussi!

Laisser un commentaire

Tous les commentaires sont modérés avant d'être publiés

Messages de blogs recommandés

  1. Installez maintenant ESP32 via l'administrateur de la carte
  2. Lüftersteuerung Raspberry Pi
  3. Arduino IDE - Programmieren für Einsteiger - Teil 1
  4. ESP32 - das Multitalent
  5. OTA-Over the Air-ESP Programmation par WiFi