Raspberry Pi Pico - écran LCD I2C

Ce guide vous montre comment connecter un écran LCD 16x2 avec une interface I2C à un Raspberry Pi Pico. Nous aborderons :

Raspberry Pi Pico et écran LCD 16x2 I2C

Préparation du matériel

1×Raspberry Pi Pico W
1×Raspberry Pi Pico Alternativement:
1×Câble Micro USB
1×LCD I2C
1×Fils de connexion
1×Recommandé: Carte d'extension à bornier à vis pour Raspberry Pi Pico

Ou vous pouvez acheter les kits suivants:

1×Kit de Capteurs DIYables (30 capteurs/écrans)
1×Kit de Capteurs DIYables (18 capteurs/écrans)
Divulgation : Certains des liens fournis dans cette section sont des liens affiliés Amazon. Nous pouvons recevoir une commission pour tout achat effectué via ces liens, sans coût supplémentaire pour vous. Nous vous remercions de votre soutien.

À propos de l'écran LCD I2C 16x2

L'écran LCD I2C 16x2 est un écran de 16 colonnes et 2 lignes. Il dispose d'une interface I2C et est équipé d'un potentiomètre pour régler le contraste de l'écran.

Répartition des broches

L'écran LCD I2C utilise une interface I2C et comporte 4 broches.

  • Broche GND : connectez-la à la masse (0 volt).
  • Broche VCC : connectez-la à VCC pour l'alimentation (5 volts).
  • Broche SDA : transmet le signal de données I2C.
  • Broche SCL : transmet le signal d'horloge I2C.
Schéma des broches LCD I2C

Coordonnée LCD

L'écran LCD I2C 16x2 comprend 16 colonnes et 2 lignes. La numérotation des colonnes et des lignes commence à partir de zéro.

Raspberry Pi Pico écran LCD I2C Coordonnée

Diagramme de câblage

Schéma de câblage LCD I2C pour Raspberry Pi Pico

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.

Code pour Raspberry Pi Pico

Étapes rapides

Veuillez suivre ces instructions étape par étape :

  • Assurez-vous que l'IDE Thonny est installé sur votre ordinateur.
  • Assurez-vous que le firmware MicroPython est installé sur votre Raspberry Pi Pico.
  • Si c'est la première fois que vous utilisez un Raspberry Pico, reportez-vous au tutoriel Raspberry Pi Pico - Premiers pas. pour des instructions détaillées.
  • Connectez l'affichage LCD I2C au Raspberry Pi Pico selon le diagramme fourni.
  • Connectez le Raspberry Pi Pico à votre ordinateur à l'aide d'un câble USB.
  • Lancez l’IDE Thonny sur votre ordinateur.
  • Dans l’IDE Thonny, sélectionnez l’interpréteur MicroPython (Raspberry Pi Pico) en accédant à Outils Options.
  • Dans l’onglet Interpréteur, sélectionnez MicroPython (Raspberry Pi Pico) dans le menu déroulant.
  • Assurez-vous que le bon port est sélectionné. L’IDE Thonny devrait détecter automatiquement le port, mais vous devrez peut-être le sélectionner manuellement (par exemple COM3 sous Windows ou /dev/ttyACM0 sous Linux).
  • Accédez à Outils Gérer les paquets dans l’IDE Thonny.
  • Recherchez “DIYables-MicroPython-LCD-I2C”, puis trouvez la bibliothèque LCD I2C créée par DIYables.
  • Cliquez sur DIYables-MicroPython-LCD-I2C, puis cliquez sur le bouton Install pour installer la bibliothèque LCD I2C.
Bibliothèque LCD I2C pour Raspberry Pi Pico
  • Copiez le code ci-dessous et collez-le dans l'éditeur de l'IDE Thonny.
/* * Ce code Raspberry Pi Pico a été développé par newbiely.fr * Ce code Raspberry Pi Pico est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/raspberry-pico/raspberry-pi-pico-lcd-i2c */ from machine import I2C, Pin from DIYables_MicroPython_LCD_I2C import LCD_I2C import utime # The I2C address of your LCD (Update if different) I2C_ADDR = 0x27 # Use the address found using the I2C scanner # Define the number of rows and columns on your LCD LCD_ROWS = 2 LCD_COLS = 16 # Initialize I2C i2c = I2C(0, sda=Pin(0), scl=Pin(1), freq=400000) # Initialize LCD lcd = LCD_I2C(i2c, I2C_ADDR, LCD_ROWS, LCD_COLS) # Setup function lcd.backlight_on() lcd.clear() # Main loop function while True: lcd.clear() lcd.set_cursor(3, 0) # Move the cursor to column 3, row 0 (first row) lcd.print("DIYables") lcd.set_cursor(0, 1) # Move the cursor to column 0, row 1 (second row) lcd.print("www.diyables.io") utime.sleep(2) lcd.clear() lcd.set_cursor(0, 0) # Move to the beginning of the first row lcd.print("Int: ") lcd.print(str(1234)) # Print integer lcd.set_cursor(0, 1) # Move to the beginning of the second row lcd.print("Float: ") lcd.print(str(56.78)) # Print float utime.sleep(2)
  • Enregistrez le script sur votre Raspberry Pi Pico comme suit :
    • Cliquez sur le bouton Enregistrer, ou utilisez les touches Ctrl+S.
    • Dans la boîte de dialogue d'enregistrement, vous verrez deux sections : Cet ordinateur et Raspberry Pi Pico. Sélectionnez Raspberry Pi Pico.
    • Enregistrez le fichier sous main.py.
  • Cliquez sur le bouton vert Exécuter (ou appuyez sur F5) pour exécuter le script. Le script sera exécuté.
  • Vérifiez le résultat sur l'écran LCD.

Vidéo

Faites-en plus avec l'écran LCD

Personnage personnalisé

Pour afficher des caractères ou des symboles spéciaux tels qu'un cœur ou un oiseau en colère sur un écran LCD, vous devez utiliser le générateur de caractères. Cela s'explique par le fait que la fonction lcd.print() ne peut afficher que des caractères ASCII.

L'écran LCD 16x2 peut afficher 32 caractères, avec 16 positions par ligne sur deux lignes. Chaque caractère est composé de 40 petits carrés, disposés en 8 rangées et 5 colonnes.

Raspberry Pi Pico LCD 16x2 pixel

Le générateur de personnages crée un personnage (40 pixels). Il vous suffit de suivre ces étapes :

Click on each pixel to select/deselect


Copy below custom character code
Replace the heart in the below code
/* * Ce code Raspberry Pi Pico a été développé par newbiely.fr * Ce code Raspberry Pi Pico est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/raspberry-pico/raspberry-pi-pico-lcd-i2c */ from machine import I2C, Pin from DIYables_MicroPython_LCD_I2C import LCD_I2C import utime # The I2C address of your LCD (Update if different) I2C_ADDR = 0x27 # Define the number of rows and columns on your LCD LCD_ROWS = 2 LCD_COLS = 16 # Initialize I2C i2c = I2C(0, sda=Pin(0), scl=Pin(1), freq=400000) # Initialize LCD lcd = LCD_I2C(i2c, I2C_ADDR, LCD_ROWS, LCD_COLS) # Define custom character 0 (heart shape) heart = [ 0b00000, 0b01010, 0b11111, 0b11111, 0b01110, 0b00100, 0b00000, 0b00000 ] # Create the custom character at location 0 lcd.custom_char(0, heart) # Display the custom character lcd.print("Custom Char: ") lcd.print_custom_char(0) # Display the custom character stored at location 0

Résultat affiché à l'écran:

caractère LCD personnalisé

Plusieurs caractères personnalisés

Nous pouvons créer jusqu'à 8 caractères spéciaux (de 0 à 7). Voici comment créer et afficher trois de ces caractères.

/* * Ce code Raspberry Pi Pico a été développé par newbiely.fr * Ce code Raspberry Pi Pico est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/raspberry-pico/raspberry-pi-pico-lcd-i2c */ from machine import I2C, Pin from DIYables_MicroPython_LCD_I2C import LCD_I2C import utime # The I2C address of your LCD (Update if different) I2C_ADDR = 0x27 # Define the number of rows and columns on your LCD LCD_ROWS = 2 LCD_COLS = 16 # Initialize I2C i2c = I2C(0, sda=Pin(0), scl=Pin(1), freq=400000) # Initialize LCD lcd = LCD_I2C(i2c, I2C_ADDR, LCD_ROWS, LCD_COLS) # Define custom character 0 (heart shape) heart = [ 0b00000, 0b01010, 0b11111, 0b11111, 0b01110, 0b00100, 0b00000, 0b00000 ] # Define custom character 1 (arrow pointing upwards) arrow_up = [ 0b00100, 0b01110, 0b11111, 0b00100, 0b00100, 0b00100, 0b00100, 0b00100 ] # Define custom character 2 (arrow pointing downwards) arrow_down = [ 0b00100, 0b00100, 0b00100, 0b00100, 0b00100, 0b11111, 0b01110, 0b00100 ] # Create the custom character at location 0 lcd.custom_char(0, heart) lcd.custom_char(1, arrow_up) lcd.custom_char(2, arrow_down) # Display the custom character lcd.set_cursor(0, 0) # Move the cursor to column 0, row 0 (first row) lcd.print_custom_char(0) # Display the custom character stored at location 0 lcd.set_cursor(5, 0) # Move the cursor to column 5, row 0 (first row) lcd.print_custom_char(1) # Display the custom character stored at location 0 lcd.set_cursor(10, 0) # Move the cursor to column 10, row 0 (first row) lcd.print_custom_char(2) # Display the custom character stored at location 0

Résultat affiché sur l'écran LCD :

Plusieurs caractères personnalisés sur l'écran LCD

Résumé : comment utiliser un caractère personnalisé sur un écran LCD

  • Utilisez l'outil ci-dessus pour créer le code binaire de votre caractère spécial.
  • Notez le code binaire de votre caractère (tel qu'il a été copié à partir de l'étape ci-dessus).
heart = [ 0b00000, 0b01010, 0b11111, 0b11111, 0b01110, 0b00100, 0b00000, 0b00000 ]
  • Créez un personnage unique et positionnez-le sur un nombre compris entre 0 et 7.
lcd.custom_char(0, heart)
  • Affichez un symbole unique à l'écran à tout moment de votre choix.
lcd.print_custom_char(0) # Afficher le caractère personnalisé stocké à l'emplacement 0

Dépannage sur LCD I2C

Si le texte ne s'affiche pas sur l'écran LCD I2C, veuillez vérifier ces problèmes :

  • Réglez la luminosité de l'écran LCD en tournant le potentiomètre situé à l'arrière.
  • L'adresse I2C de l'écran LCD peut différer selon les fabricants. Elle est généralement soit 0x27 soit 0x3F. Essayez ces adresses l'une après l'autre. Si elles ne fonctionnent pas, utilisez ce code pour trouver la bonne adresse I2C.
/* * Ce code Raspberry Pi Pico a été développé par newbiely.fr * Ce code Raspberry Pi Pico est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/raspberry-pico/raspberry-pi-pico-lcd-i2c */ from machine import I2C, Pin import utime i2c = I2C(0, sda=Pin(0), scl=Pin(1)) print('Scanning I2C bus...') devices = i2c.scan() if len(devices) == 0: print("No I2C devices found") else: print('I2C devices found:',len(devices)) for device in devices: print("Decimal address: ",device," | Hex address: ",hex(device)) utime.sleep(2)

Le résultat affiché dans le Shell en bas de Thonny :

Shell x
>>> %Run -c $EDITOR_CONTENT
MPY: soft reboot Scanning I2C bus... I2C devices found: 1 Decimal address: 39 | Hex address: 0x27
MicroPython (Raspberry Pi Pico) • Board CDC @ COM29 ≡

※ NOS MESSAGES

  • N'hésitez pas à partager le lien de ce tutoriel. Cependant, veuillez ne pas utiliser notre contenu sur d'autres sites web. Nous avons investi beaucoup d'efforts et de temps pour créer ce contenu, veuillez respecter notre travail !