aide pour utiliser écran oled i2c 128x64

Pour indiquer l'adresse de ton écran dans la ligne, il faut la connaitre : elle peut dépendre de plein de choses. Le mieux est d'utiliser le scanner qui se trouve dans le lien que je t'ai indiqué. Si tu veux de l'aide, tu peux copier / coller sur le forum ce que te dit la console à l'exécution du scanner.

réponse postée juste avant ta réponse

EDIT

J'ai enfin une réponse!
J'avais com1, com3 et com8
après 3 essai c'est sur le com8

Scanning...
Appareil I2C trouve a cette adresse 0x3C  !
Fin

Scanning...
Appareil I2C trouve a cette adresse 0x3C  !
Fin

Scanning...
Appareil I2C trouve a cette adresse 0x3C  !
Fin

En mettant le code précédent
j'ai ça sur le serial

x: 39 y: 0 dy: 5
x: 89 y: 0 dy: 4
x: 2 y: 0 dy: 3
x: 88 y: 0 dy: 4
x: 67 y: 0 dy: 5
x: 24 y: 0 dy: 1
x: 12 y: 0 dy: 3
x: 51 y: 0 dy: 4
x: 23 y: 0 dy: 5
x: 24 y: 0 dy: 3

Mais rien sur l'écran

Il faut donc remettre 0x3C dans la déclaration de l'écran (voir réponse #5)

Cela marche.

En fait il a fallu scanner , modifier le texte 03xC en O3xD puis le remodifier en 03XC.

Ce soir je teste sur mon pc. J'espère que cela ira

Merci

Comment faire pour écrire sur une même ligne une donnée récupérée et un texte ?
Exemple je récupère la donnée 'temp', venant d'un sonde et après sur la même ligne je veux écrire C (pour celsius)

display.println(temp );                    // ici on récupère la température de la sonde( Keyes KY-013)  AIR
display.setTextSize(2);//text size    // mettre 2 pour 16 pixels

display.println("C");                       //Affichage du symbole <C>
delay(500);                                 // Attente 0,5 sec pour réactualiser

ce code me donne cet affichage
11,5
C

Je voudrais 11.5 C

J'ai testé ceci mais cela ne marche pas ( je dirais presque 'normaaaal' :confused: )
''display.println((temp) ("C") );"
Merci

print au lieu de println peut-être

C'est bon

Merci

display.setTextSize(1);//text size            // mettre 2 pour 16 pixels
  display.print( temp );                        // ici on met la 1° température ( Keyes KY-013)  AIR
  display.print("C");                            //Affichage du symbole <C>
  delay(500);                                    // Attente 0,5 sec pour réactualiser

C'est 0x3C et 03XC

Exact.
Petite coquille dans ma réponse, mais c'est ce que j'ai écrit dans le code

et le résultat !

Bonjour

Question 1
3 fois sur 4 , quand je branche l'arduino sur mon pc, je suis obligé de re téléversé le code pour voir l'écran allumé/
Est-ce normal ?

NB : hier j'avais 2 écrans oled qui fonctionnaient. Aujourd'hui plus qu'un et l'IDE me dit pb de connexion alors que je n'ai fait qu'intervertir les écrans.

Question 2
Comment fonctionne le numéro des port com ?

Question 3
Est-ce que les connexions arduino sont fiables ? J'ai souvent mon écran qui n'affiche rien. En le bougeant cela revient alors que je me sers que des éléments ( fils...) pour arduino

Salut

Je viens de m'inscrire et je ferai ma présentation bien evidement.

Je rebondi sur ce topic.
J'ai reçu un Oled dans la semaine et je viens de le connecter à mon Arduino Mega.
J'ai utilisé le script de scanner qu'on trouve sur le net.
Mais dans ma fenetre serie je n'ai que le message "aucun appareil I2C trouvé"....

Si on part du principe que la connectique est bonne, est il possible que l'ecran soit HS ??

Si on part du principe que la connectique est bonne, est il possible que l'ecran soit HS ??

Rien n'est moins sûr. Si tu as connecté SDA SCL sur A4 A5 comme sur une UNO, cela ne marchera pas.

Les pins pour l'I2C pour les diverses cartes Arduino sont indiquées ici.

As a reference the table below shows where TWI pins are located on various Arduino boards.

Board I2C / TWI pins
Uno, Ethernet A4 (SDA), A5 (SCL)
Mega2560 20 (SDA), 21 (SCL)
Leonardo 2 (SDA), 3 (SCL)
Due 20 (SDA), 21 (SCL), SDA1, SCL1

Merci
Nickel, trouvé à l'adresse 0x3C

Cool. Une panne m'aurait franchement étonné.

Hello,

Je galère avec un écran oled.

J'ai réussi a :
installer les librairies
téléverser l' exemple SSD1306_128x64_i2c

Après ça se complique, mon écran fait défiler les animations sur quelques lignes en haut de l'écran (enfin je les devine). Le reste de l'écran est blanc avec quelques points noirs.

Quelqu'un aurait une explication ou peut être la solution à mon problème.

L'image

Es-tu sûr que c'est bien un 128 * 64 ?
Quel arduino utilises-tu ?

Merci pour ta réponse

Oui, c'est un 128 x 64 en tout cas c'est ce qui est donné comme caractéristique par le vendeur
J'utilise une carte UNO compatible ARDUINO R3 ATmega325

Quelle bibliothèque utilises tu ? Adafruit SSD1306 ? As-tu installé la bibliothèque Adafruit GFX ?

Oui j'utilise bien ces 2 bibliothèques.

Le début du code :

#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 64 // OLED display height, in pixels

J'ai modifié l'adresse

if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { // Address 0x3D for 128x64

Je n'ai pas d'erreur lors du téléversement.
J'en déduis que j'ai installé correctement les 2 bibliothèques.

Quand j'ouvre le moniteur série au bout de quelques secondes j'ai des valeurs de x et y qui s'affichent ce qui doit correspondre à cette partie de code

void testanimate(const uint8_t *bitmap, uint8_t w, uint8_t h) {
int8_t f, icons[NUMFLAKES][3];

// Initialize 'snowflake' positions
for(f=0; f< NUMFLAKES; f++) {
icons[f][XPOS] = random(1 - LOGO_WIDTH, display.width());
icons[f][YPOS] = -LOGO_HEIGHT;
icons[f][DELTAY] = random(1, 6);
Serial.print(F("x: "));
Serial.print(icons[f][XPOS], DEC);
Serial.print(F(" y: "));
Serial.print(icons[f][YPOS], DEC);
Serial.print(F(" popolpopol "));
Serial.println(icons[f][DELTAY], DEC);
}

Tu alimentes bien l'écran en 3.3V?