Bienvenue aux nouveaux arrivants sur FantasPic !

- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.

--- L’équipe FantasPic ---
Forum général en BASIC et PASCAL !

Modérateur : Gérard

Oled 128x64 piloté avec un PIC en Mikrobasic
pspic
Passioné
Passioné
Messages : 357
Âge : 77
Enregistré en : septembre 2017
Localisation : 68

#1 Message par pspic » jeu. 9 févr. 2023 08:47

Bonjour,
Je souhaite utiliser un afficheur OLED SSD1306 128x64 en I2C avec du code MikroBasic et piloter par un PIC 18F2550.
J’ai essayé avec ce code Libstock de Mikroe :
https://libstock.mikroe.com/projects/vi ... asic-pic18
Mais sans résultat !
Mon afficheur : Oled fonctionne avec du code Arduino.
Après des semaines de galère, je cherche quelqu’un qui pourrai m’orienter vers un tuto ou un exemple de code qui fonctionne avec un PIC.
Pierre

Oled 128x64 piloté avec un PIC en Mikrobasic
paulfjujo
Avatar de l’utilisateur
Expert
Expert
Messages : 2597
Âge : 73
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#2 Message par paulfjujo » jeu. 9 févr. 2023 13:26

bonjour

pspic a écrit :...
Je souhaite utiliser un afficheur OLED SSD1306 128x64 en I2C avec du code MikroBasic et piloter par un PIC 18F2550.
... un exemple de code qui fonctionne avec un PIC.
Pierre


regarde de ce coté si tu peux recuperer quelque chose avec la version en C testée ave c mikroC version gratuite d'essai

Nota: l'init du SSD1306 est assez pointilleuse ! suivant les modeles de LCD made in China.. (quasiment tous d'ailleurs!)
Aide toi, le ciel ou FantasPic t'aidera

Oled 128x64 piloté avec un PIC en Mikrobasic
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 2616
Enregistré en : juillet 2016
Localisation : Terre

#3 Message par Temps-x » ven. 10 févr. 2023 02:05

Bonsoir pspic, paulfjujo, et tout le forum,

pspic a écrit :Source du message Après des semaines de galère, je cherche quelqu’un qui pourrai m’orienter vers un tuto ou un exemple de code qui fonctionne avec un PIC.
Pierre


Le mettre en fonction c'est assez facile, si tu sais générer I2C, voici l'initiation de cette écran

Faut connaitre son adresse, si tu sais pas j'ai fais une fonction pour rechercher l'adresse d'une I2C en ASM, je peux éventuellement la réécrire pour ton pic, une fois que tu as trouvé l'adresse

Faut passer en mode commande, pour cela il faut envoyer 0x00

Puis envoyer 0xAE qui signifie (éteindre l'écran) , après tu fais une pause de 200 ms(correspond à reset)

Puis tu envois tout ce qui est dans le tableau ci dessous

Code : Tout sélectionner


      0xD5
,0x80,0xA8,0x3F,0xD3,0x00,0x40,0x8D,0x14,0x20,0x00,0xA1,0xC8,0xDA,0x12,0x81
      0x7F
,0xD9,0xF1,0xDB,0x40,0xA4,0xA6            


Une fois fait, tu fais une pause de 20 ms, puis tu mets en fonction l'écran, en envoyant 0xAF(allumer l'écran)

Le reste je pense que tu dois avoir des fonctions toutes faites dans ton langage de programmation.

==> A+
Modifié en dernier par Temps-x le ven. 10 févr. 2023 13:32, modifié 1 fois.
:roll: Les requins, c'est comme le langage ASM, c'est le sommet de la chaîne alimentaire. :wink:

Oled 128x64 piloté avec un PIC en Mikrobasic
pspic
Passioné
Passioné
Messages : 357
Âge : 77
Enregistré en : septembre 2017
Localisation : 68

#4 Message par pspic » ven. 10 févr. 2023 07:30

Merci Paul et TempsX pour votre aide.
Je vais me mettre au travail pour tester tout cela et je vous tiendrai au courant du résultat.

Oled 128x64 piloté avec un PIC en Mikrobasic
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 2616
Enregistré en : juillet 2016
Localisation : Terre

#5 Message par Temps-x » ven. 10 févr. 2023 15:37

Bonsoir pspic, et tout le forum,

J'ai oublié de te dire qu'une fois configurer avec les paramètres ci-dessus,

Pour l'envoie des données c'est 0x40

j'ai une version ASM fonctionnelle, que j'ai écrit au cas ou tu serais intéressé pour Pic18f26K22.

==> A+
:roll: Les requins, c'est comme le langage ASM, c'est le sommet de la chaîne alimentaire. :wink:

Oled 128x64 piloté avec un PIC en Mikrobasic
pspic
Passioné
Passioné
Messages : 357
Âge : 77
Enregistré en : septembre 2017
Localisation : 68

#6 Message par pspic » mer. 15 févr. 2023 10:06

Temps-x a écrit :Bonsoir pspic, et tout le forum,

j'ai une version ASM fonctionnelle, que j'ai écrit au cas ou tu serais intéressé pour Pic18f26K22.

==> A+

Salut Temps-x merci pour ton aide.
Désolé pour ma réponse tardive, mais j'avais d'autres chats à fouetter.
Concernant mon programme, je tourne en rond !
Je suis intéressé par ta version ASM.
J'ai un PIC 18F26K22 sous la main pour faire des tests.
Bonne journée

Oled 128x64 piloté avec un PIC en Mikrobasic
francois77
Passioné
Passioné
Messages : 307
Enregistré en : avril 2022

#7 Message par francois77 » mer. 15 févr. 2023 11:46

Bonjour,

le lien du post de Temp-x

viewtopic.php?f=11&t=992

Prévoir de l'aspirine, mais toute les explications sont la

A+

Francois

Oled 128x64 piloté avec un PIC en Mikrobasic
paulfjujo
Avatar de l’utilisateur
Expert
Expert
Messages : 2597
Âge : 73
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#8 Message par paulfjujo » mer. 15 févr. 2023 12:09

bonjour à tous,,

ATTENTIOn , il y a OLED SSD1306 et OLED ?????

Code : Tout sélectionner

L'init OLED , void OLED_Init(void)
est modifée suivant la valeur de Choix_OLED_096 (RB1), en 3 endroits :
Les 2 OLEDS sont traités en 128x32 , 4 Pages ..

if (Choix_OLED_096==1)
OLED_Cde(0x02); //A[1:0] = 10b, Page Addressing Mode (RESET)
else
OLED_Cde(0x00); ////A[1:0] = 00b, Horizontal Addressing Mode

if (Choix_OLED_096==1) // modele OLED avec 1Ligne jaune + 3 lignes Bleues
OLED_Cde(0x40); //--set start line address 40h | xx avec xx=0
else
OLED_Cde(0x00);


OLED_Cde(0xDA); //--set com pins hardware configuration
if (Choix_OLED_096==1)
OLED_Cde(0x00); //--set start line address 40h | xx avec xx=0
else
OLED_Cde(0x20); // was 0x20


test de 2 ecrans OLED con nectés ensemble sur le bus I2C
c'est soit l'un soit l'autre , car difference de commande !

les ecrans avec bandeau Jaune sur la 1ere ligne et 3 autres en bleu , sont differents de ceux unifiormes en couleur ( generalement bleu)

En resumé : il n' y a pas QU'UNE SEULE RECETTE pour faire fonctionner un ecran OLED made in RPC



(nota : en SPI le probleme doit etre le meme ..)
Aide toi, le ciel ou FantasPic t'aidera

Oled 128x64 piloté avec un PIC en Mikrobasic
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 2616
Enregistré en : juillet 2016
Localisation : Terre

#9 Message par Temps-x » jeu. 16 févr. 2023 02:38

Bonsoir pspic, paulfjujo, et tout le forum,

Avec schéma, test, et photo comme preuve que ça fonctionne chez moi, pas besoin de configurer I2C, c'est une recherche automatique, ta juste à câbler comme sur le schéma ci-dessous.

Schéma

Configuration automatique en I2c sur Pic18F26K22.jpg

Test et photo

Configuration automatique en I2c sur Pic18F26K22.jpg


Fichier source en ASM + fichier à mettre dans le pic Oled-I2C.zip

Je peux éventuellement essayer de l'écrire pour un Pic18F2550, je regarderais demain si j'ai des Pic18F2550 dans mes réserves

PS : si ça ne fonctionne toujours pas, essai sans les résistances de 4700 Ohms, câblé en directe sur l'écran RC3 ===>SCK, RC4 ===>SDA


==> A+
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Modifié en dernier par Temps-x le jeu. 16 févr. 2023 17:59, modifié 1 fois.
:roll: Les requins, c'est comme le langage ASM, c'est le sommet de la chaîne alimentaire. :wink:

Oled 128x64 piloté avec un PIC en Mikrobasic
pspic
Passioné
Passioné
Messages : 357
Âge : 77
Enregistré en : septembre 2017
Localisation : 68

#10 Message par pspic » jeu. 16 févr. 2023 08:32

Bonjour à tous,
Temps-x a écrit :Bonsoir pspic, paulfjujo, et tout le forum,
Je peux éventuellement essayer de l'écrire pour un Pic18F2550, je regarderais demain si j'ai des Pic18F2550 dans mes réserves


Inutile, j'ai un PIC 18F46K22 sous la main.
Après avoir chargé ton HEX à l'aide de la carte EasyPic V7, mon OLED affiche bien ton image.

Il me reste maintenant à approfondir coté code, sachant que coté hard c'est OK.
Un grand merci à tous et particulièrement à Temps-x qui m'a permis d'avancer.
ImOled1.jpg
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.


Retourner vers « Langage BASIC & PASCAL »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 3 invités