Partage
  • Partager sur Facebook
  • Partager sur Twitter

Arduino ecran oled

Sujet résolu
24 septembre 2017 à 12:53:53

Bonjour, j'ai un arduino uno et un ecran oled 0.96 pouces et j'utilise la bibliothèque u8glib.

Mon problème : je n'arrive pas a afficher une variable sur l'écran.

Si vous avez la solution ou que vous connaissez des tutos n’hésitez pas a me le dire !!!

  • Partager sur Facebook
  • Partager sur Twitter
Mon instagram : https://www.instagram.com/anatole.pictures
24 septembre 2017 à 13:45:52

Bonjour,

as-tu un code as nous montrer afin qu'on puisse "éventuellement" voir où ça coince?

T'es tu aidé des exemples fournis par la bibliothèque?

Edit: Ci-joint un lien vers PDF sur le guide d'utilisation de cette bibliothèque

-
Edité par Need 24 septembre 2017 à 13:50:28

  • Partager sur Facebook
  • Partager sur Twitter
24 septembre 2017 à 16:12:40

Merci pour ta réponse :) 

Oui j'ai un code (un code de la bibliothèque mofifié) : 

#include "U8glib.h"

U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_NONE);	

//la variable

int variable = 1

void draw(void) {
  
  u8g.setFont(u8g_font_unifont);
  //u8g.setFont(u8g_font_osb21);
  u8g.drawStr( 0,20, " La variable :");
  u8g.drawStr( 0,40, variable); //je n'arrive pas a afficher cette variable
 
}


void setup(void) {
  // flip screen, if required
  // u8g.setRot180();
  
  // set SPI backup if required
  //u8g.setHardwareBackup(u8g_backup_avr_spi);

  // assign default color value
  if ( u8g.getMode() == U8G_MODE_R3G3B2 ) {
    u8g.setColorIndex(255);     // white
  }
  else if ( u8g.getMode() == U8G_MODE_GRAY2BIT ) {
    u8g.setColorIndex(3);         // max intensity
  }
  else if ( u8g.getMode() == U8G_MODE_BW ) {
    u8g.setColorIndex(1);         // pixel on
  }
  else if ( u8g.getMode() == U8G_MODE_HICOLOR ) {
    u8g.setHiColorByRGB(255,255,255);
  }
  
  pinMode(8, OUTPUT);
}

void loop(void) {
  // picture loop
  u8g.firstPage();  
  do {
    draw();
  } while( u8g.nextPage() );

  
  // rebuild the picture after some delay
  //delay(50);
}

-
Edité par AnatoleLesage 24 septembre 2017 à 16:13:24

  • Partager sur Facebook
  • Partager sur Twitter
Mon instagram : https://www.instagram.com/anatole.pictures
24 septembre 2017 à 16:45:37

Voici comme je le comprend (ton erreur),

u8g.drawStr( 0,40, variable); te permet de dessinero_O une suite de caractères(type string), alors que ta variable est de type int.

Si tu veux afficher une variable sur l'écran, il ne faut donc pas utilisé u8g.drawStr()mais u8g.print()

#include "U8glib.h"
 
U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_NONE);
 
//la variable
 
int variable = 1
 
void draw(void) {
   
  u8g.setFont(u8g_font_unifont);
  //u8g.setFont(u8g_font_osb21);
  u8g.drawStr( 0,20, " La variable :");
  u8g.setPrintPos( 0,40); 
  u8g.print(variable);
}
 
 
void setup(void) {
  // flip screen, if required
  // u8g.setRot180();
   
  // set SPI backup if required
  //u8g.setHardwareBackup(u8g_backup_avr_spi);
 
  // assign default color value
  if ( u8g.getMode() == U8G_MODE_R3G3B2 ) {
    u8g.setColorIndex(255);     // white
  }
  else if ( u8g.getMode() == U8G_MODE_GRAY2BIT ) {
    u8g.setColorIndex(3);         // max intensity
  }
  else if ( u8g.getMode() == U8G_MODE_BW ) {
    u8g.setColorIndex(1);         // pixel on
  }
  else if ( u8g.getMode() == U8G_MODE_HICOLOR ) {
    u8g.setHiColorByRGB(255,255,255);
  }
   
  pinMode(8, OUTPUT);
}
 
void loop(void) {
  // picture loop
  u8g.firstPage(); 
  do {
    draw();
  } while( u8g.nextPage() );
 
   
  // rebuild the picture after some delay
  //delay(50);
}


Voilà, sans aucune certitude...

Edit: Au passage, je doute que se code compile correctement. Très loin d'être bon dans la programmation, mais il manque le point-virgule après la déclaration de ta variable.

2nd point qui m'intrigue, c'est le fait que tu utilisé des références as du RGB alors que (j'imagine) ton écran est monochrome...?

-
Edité par Need 24 septembre 2017 à 17:11:19

  • Partager sur Facebook
  • Partager sur Twitter
24 septembre 2017 à 17:26:52

Parfait cela fonctionne ! 

J'avais juste oublié le point virgule ici : 

int variable = 1;
  • Partager sur Facebook
  • Partager sur Twitter
Mon instagram : https://www.instagram.com/anatole.pictures
24 septembre 2017 à 17:36:58

Haha moi et ma théorie fumante:-°

Bonne continuation

  • Partager sur Facebook
  • Partager sur Twitter