J'ai acheté 6 écrans OLED 0.96 en 128x64(Ssd1306) et 1 écran OLED 0.96 en 132x64(Ssd1106) de couleur jaune & bleu, blanc, bleu, donc 5 en mode SPI et 1 en I²C.
Prix d'achat pour chaque écran 1,25 euro, voici son datasheet
Voici les dimensions de l'écran
Les 3 couleurs que j'ai reçu
jaune & bleu blanc bleu
D'autre couleur existe, mais le prix augmente, pour l'utilisation que je vais en faire pas besoin de mettre chère.
*****************************************************************************************************************************************************************************************
Mise en fonction des écrans OLED 128x64(Ssd1306) et OLED 0.96 en 132x64(Ssd1106)
Pour la mise en fonction des écrans OLED 128x64(Ssd1306) et OLED 0.96 en 132x64(Ssd1106) je me suis servi d'un microcontrôleur Pic18F26K22, voici son datasheet
Attension si vous regardez les photos ci-dessus vous allez vous apercevoir qu'il y a différente version dans le branchement SPI, et dans le branchement de l'alimentation.
Si vous faite pas attention sur la polarité à chaque changement d'écran ça risque de fumer....
j'ai opté pour le mode SPI bit bang, ce qui permets de choisir les pattes quand veut sur le microcontrôleur, de plus ça le rends compatible
pour les microcontrôleurs ne possèdent pas du SPI
Voici mon branchement pour mode SPI
Code : Tout sélectionner
#DEFINE dc LATA,2 ; RA2 ==> sélection du mode : commande = 0 , donnée = 1
#DEFINE cs LATA,1 ; RA1 ==> activer ou désactiver la transmission
#DEFINE rst LATA,0 ; RA0 ==> reset de l'écran
#DEFINE sck LATC,3 ; RC3 ==> horloge de synchronisation
#DEFINE mosi LATC,5 ; RC5 ==> envoyer les données sur écran oled 128x64
En ce qui concerne le branchement du mode SPI pour RESET de l'écran, j'ai prévu dans le code un changement de broche, en fonction de l'écran utilisé
Le code ASM a été écrit avec jens file Editor 3.95
Fichier code : Oled(Code).zip
Fichier à mettre dans le Pic : Oled(Hex).zip
La vidéo corresponds au fichier ci-dessus, avec défilement (Scroll en anglais) de l'avion.
https://youtu.be/z4NN2GZ04Xg
Dans l'exemple de cette vidéo, je traite un seule sens de défilement, mais il y en a plein d'autre que je vais vous citer.
Mode Horizontal
Gauche vers la droite
Droite vers la gauche
Mode vertical
Bas vers le haut,
Haut vers le bas
Mode diagonal
Bas vers le haut en diagonal
Haut vers le bas en diagonal
Pour un code en version I²C, sa reste similaire pour la configuration de l'écran, je vais vous mettre le code pour une version I²C, ou peut être dans le même code, hum... je vais voir si cela est possible.
Suite à une demande, j'ai réalisé un code pour Pic16F876 en I2C, je vous le mets en téléchargement ci-dessous, il n'est pas encore fini car il y a une imperfection sur l'affichage de l'image, je ne sais pas d’où ça peu venir
Fichier code + fichier compilé téléchargement : ICI
J'ai voulu voir si l’imperfection d'image sur le Pic16F876A venait de la façon que j'ai fait pour gérer la mémoire programme, pour cela j'ai pris
un Pic18F26K22 avec une configuration identique en I2C
Et voila le résultat
Fichier code + fichier compilé téléchargement : ICI
l y a plus aucun défaut, l'image est propre j'en conclus qu'il faut que je trouve un moyen pour gérer la mémoire programme du Pic16F876A autrement.
Pour ceux qui veulent trouver l'adresse I²C automatiquement, voici un code source que j'ai écrit avec schéma ICI
Oscilloscope en cours de réalisation
https://www.youtube.com/watch?v=NKMaj2xxP-4
Ben voila, l'oscilloscope fonction à peu près bien, le programme pourras être amélioré par la suite, mais pour l'instant je prépare ça mise en boitier.
https://youtu.be/kdsdKreREfo
Comme j'ai plus de place qu'il en fallait, j'ai rajouté un vu-mètre, ça peut servir à plein de chose, en voici un exemple
https://www.youtube.com/watch?v=SibYyGeVXz4
J'ai également créer un petit programme pour visionner les fichier Oled 128x64 dans les 2 modes que vous pouvez télécharger ICI
Exemple pour un écran Oled 128x64 et Oled 132x64
Vous avez une option pour récupérer l'image que vous visionnez dans le format de l'écran, ce qui permet par la suite de la modifier avec un éditeur d'image comme Paint qui je vous le rappelle est disponible gratuitement sous Windows.
Le programme gère actuellement l'hexadécimal suivi de virgule comme l'exemple ci-dessous, je pense qu'il doit être compatible pour pas mal de langage.
Exemple : db 0x4D,0xC4,0xC7,0x41,0x40,0xC1,0x43,0x46,0x44,0xE6,0xA6,0xA3,0xF3,0xD1,0xF8,0xF8
Mais bon je laisse le soins à venom pour terminer cette partie, dans tout les langages.
On rajouteras par la suite différents type d'écrans au fut à mesure de la demande et du temps que je peux avoir.
A+