Note de ce sujet :
  • Moyenne : 5 (1 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
Code OLED 128*64
#45
(23-06-2024, 04:19 PM)Raphael591 a écrit : MESSAGE MAJ SI NOUVELLE VERSION.

Défilement de 4 écrans. Pour écran SSD1306 et SH1106.
[Image: ECR1-2-2.png]

[Image: ECR2.png]

[Image: ECR3.png]

[Image: Logo.png]

Si manque d'espace sur l'esp32 ne pas oublier :
Dans l'IDE, configuration carte, partition : Minimal SPIFFS 1,9MB with OTA

L'ecran 3 nécessite au moins une version 11 du routeur F1ATB.

Bibliothèque à ajouter à l'IDE :
  - Adafruit_GFX.h
  - Selon l'écran Adafruit_SSD1306.h ou Adafruit_SH110X.h


Les lignes à ajouter dans solar_router_V...ino :
  -  "InitSSD();" après la ligne "Serial.println("Booting");"
 - "OledAffiche();" après l'appel "EnergieQuotidienne();"



Créer un nouveau fichier (OLED.ino) dans le projet avec le code suivant :

A faire avant compilation du fichier :

   - Commenter/dé-commenter les lignes suivantes en fonction de votre écran.
   #define USE_SSD1306 1 //Pour les écrans SSD1306
   //#define USE_SH110X 1 //Pour les écrans SH1106


   - Définir les pin SDA,SCL pour l'écran : SDA_PIN et SCL_PIN ligne 33/34
   - Si vous voulez gérer un bouton poussoir pour affichage ou non, définir le pin du bouton : pinBtnOled ligne 44


Code :
/***********************************
AFFICHAGE SUR SSD1306/SH110X
*************************************/
//Choisir son écran ICI ************************
#define USE_SSD1306 1 //Pour les écrans SSD1306
//#define USE_SH110X 1 //Pour les écrans SH1106
//Le reste du code ne devrait s'adapter à la compilation
//Voir pour modifier les pin (gpio) écran et bouton
//Choix ecran *************************************
#include <Adafruit_GFX.h>
#define OLED_BLACK 0
#define OLED_WHITE 1
#define OLED_INVERSE 2
//Pour SSD1306
#if(USE_SSD1306)
  #include <Adafruit_SSD1306.h>
#endif
//Pour écran SH110X
#if(USE_SH110X)
  #include <Adafruit_SH110X.h>
#endif
#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 64 // OLED display height, in pixels
#define OLED_RESET     4 // Reset pin # (or -1 if sharing Arduino reset pin)
#define SCREEN_ADDRESS 0x3C ///< See datasheet for Address; 0x3D for 128x64, 0x3C for 128x32
// Définir les broches SDA et SCL personalisées pour écran
#define SDA_PIN 26 //26
#define SCL_PIN 25 //25
bool OLED_on = false; //Si problème avec l'écran, les procédures sont ignorées
//*******BOUTON OLED***********/
//Changement état gérer dans boucle affichage, déconseillé dans l'interruption.
//gestion de la latence du bouton
volatile unsigned long button_time = 0;
int btn_latence = 250; // Latence en ms
volatile bool OledState=true; //Statut oled On/Off (Mettre à la valeur désiré au démarrage)
volatile bool OledChange=true; //Changement sur bouton, true = applique le statut au démarrage
int pinBtnOled = 0; //Indiquer ici le pin du bouton pour gérer l'écran
//******BOUTON OLED ***********/
int MATERIEL_ROUTAGE=-1; //Pour la recherche TRIAC OU RELAIS
#if USE_SSD1306
  Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
#endif
//Pour écran SH110X
#if USE_SH110X
  Adafruit_SH1106G display = Adafruit_SH1106G(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
#endif
const unsigned char bitmap_Sun[] PROGMEM = {
  0x00,0x00, // ................
  0x20,0x82, // ..#.....#.....#.
  0x10,0x84, // ...#....#....#..
  0x08,0x08, // ....#.......#...
  0x01,0xC0, // .......###......
  0x07,0xF0, // .....#######....
  0x07,0xF0, // .....#######....
  0x0F,0xF8, // ....#########...
  0x6F,0xFB, // .##.#########.##
  0x0F,0xF8, // ....#########...
  0x07,0xF0, // .....#######....
  0x07,0xF0, // .....#######....
  0x11,0xC4, // ...#...###...#..
  0x20,0x02, // ..#...........#.
  0x40,0x81, // .#......#......#
  0x00,0x80  // ........#.......
};
const unsigned char bitmap_Off[] PROGMEM = {
  0x00,0x00, // ................
  0x00,0x00, // ................
  0x00,0x00, // ................
  0x00,0x00, // ................
  0x00,0x00, // ................
  0x00,0x00, // ................
  0x00,0x00, // ................
  0x1F,0xF8, // ...##########...
  0x1F,0xF8, // ...##########...
  0x00,0x00, // ................
  0x00,0x00, // ................
  0x00,0x00, // ................
  0x00,0x00, // ................
  0x00,0x00, // ................
  0x00,0x00, // ................
  0x00,0x00  // ................
};
const unsigned char bitmap_Signal1[] PROGMEM = {
  0x00,0x00, // ................
  0x00,0x00, // ................
  0x00,0x00, // ................
  0x00,0x00, // ................
  0x00,0x00, // ................
  0x00,0x00, // ................
  0x00,0x00, // ................
  0x00,0x00, // ................
  0x00,0x00, // ................
  0x00,0x00, // ................
  0x00,0x00, // ................
  0x00,0x00, // ................
  0x00,0x00, // ................
  0x40,0x00, // .#..............
  0xC0,0x00, // ##..............
  0xC0,0x00  // ##..............
};
const unsigned char bitmap_Signal2[] PROGMEM = {
  0x00,0x00, // ................
  0x00,0x00, // ................
  0x00,0x00, // ................
  0x00,0x00, // ................
  0x00,0x00, // ................
  0x00,0x00, // ................
  0x00,0x00, // ................
  0x00,0x00, // ................
  0x00,0x00, // ................
  0x04,0x00, // .....#..........
  0x0C,0x00, // ....##..........
  0x1C,0x00, // ...###..........
  0x1C,0x00, // ...###..........
  0x5C,0x00, // .#.###..........
  0xDC,0x00, // ##.###..........
  0xDC,0x00  // ##.###..........
};
const unsigned char bitmap_Signal3[] PROGMEM = {
  0x00,0x00, // ................
  0x00,0x00, // ................
  0x00,0x00, // ................
  0x00,0x00, // ................
  0x00,0x00, // ................
  0x00,0x40, // .........#......
  0x00,0xC0, // ........##......
  0x01,0xC0, // .......###......
  0x01,0xC0, // .......###......
  0x05,0xC0, // .....#.###......
  0x0D,0xC0, // ....##.###......
  0x1D,0xC0, // ...###.###......
  0x1D,0xC0, // ...###.###......
  0x5D,0xC0, // .#.###.###......
  0xDD,0xC0, // ##.###.###......
  0xDD,0xC0  // ##.###.###......
};
const unsigned char bitmap_Signal4[] PROGMEM = {
  0x00,0x00, // ................
  0x00,0x04, // .............#..
  0x00,0x0C, // ............##..
  0x00,0x1C, // ...........###..
  0x00,0x1C, // ...........###..
  0x00,0x5C, // .........#.###..
  0x00,0xDC, // ........##.###..
  0x01,0xDC, // .......###.###..
  0x01,0xDC, // .......###.###..
  0x05,0xDC, // .....#.###.###..
  0x0D,0xDC, // ....##.###.###..
  0x1D,0xDC, // ...###.###.###..
  0x1D,0xDC, // ...###.###.###..
  0x5D,0xDC, // .#.###.###.###..
  0xDD,0xDC, // ##.###.###.###..
  0xDD,0xDC  // ##.###.###.###..
};
const unsigned char bitmap_Signal0[] PROGMEM = {
  0x00,0x00, // ................
  0x03,0xE0, // ......#####.....
  0x0F,0xF8, // ....#########...
  0x1F,0xFC, // ...###########..
  0x3E,0x3E, // ..#####...#####.
  0x38,0x7E, // ..###....######.
  0x70,0xFF, // .###....########
  0x71,0xF7, // .###...#####.###
  0x73,0xC7, // .###..####...###
  0x77,0x87, // .###.####....###
  0x3F,0x0E, // ..######....###.
  0x3E,0x1E, // ..#####....####.
  0x1F,0xFC, // ...###########..
  0x0F,0xF8, // ....#########...
  0x03,0xE0, // ......#####.....
  0x00,0x00  // ................
};
const unsigned char bitmap_Logo[] PROGMEM = {
 
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
//
................................................................................................................................
 
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
//
................................................................................................................................
 
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
//
................................................................................................................................
 
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
//
................................................................................................................................
 
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
//
................................................................................................................................
 
0x00,0x00,0x00,0x3F,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
//
..........................########..............................................................................................
 
0x00,0x00,0x00,0xFF,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
//
........................############............................................................................................
 
0x00,0x00,0x01,0xFF,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
//
.......................##############...........................................................................................
 
0x00,0x00,0x00,0x1F,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
//
...........................############.........................................................................................
 
0x00,0x00,0x00,0x07,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
//
.............................###########........................................................................................
 
0x00,0x00,0x03,0xC1,0xFF,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
//
......................####.....###########......................................................................................
 
0x00,0x00,0x3F,0xC0,0x7F,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
//
..................########.......##########.....................................................................................
 
0x00,0x00,0xFF,0x00,0x3F,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
//
................########..........###########...................................................................................
 
0x00,0x01,0xFE,0x00,0x0F,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
//
...............########.............##########..................................................................................
 
0x00,0x07,0xF8,0x00,0x03,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
//
.............########.................##########................................................................................
 
0x00,0x0F,0xF0,0x60,0x61,0xFF,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
//
............########.....##......##....##########...............................................................................
 
0x00,0x3F,0xC0,0xE0,0x60,0x7F,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
//
..........########......###......##......##########.............................................................................
 
0x00,0x7F,0x80,0xE0,0x60,0x3F,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
//
.........########.......###......##.......##########............................................................................
 
0x00,0xFE,0x00,0xE0,0x60,0x0F,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
//
........#######.........###......##.........########............................................................................
 
0x01,0xFC,0x00,0xE0,0x60,0x07,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
//
.......#######..........###......##..........########...........................................................................
 
0x01,0xF8,0x00,0xE0,0x60,0x03,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
//
.......######...........###......##...........#######...........................................................................
 
0x01,0xF0,0x00,0xE0,0x60,0x01,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
//
.......#####............###......##............#######..........................................................................
 
0x01,0xE0,0x00,0xE0,0x60,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
//
.......####.............###......##.............######..........................................................................
 
0x01,0xE0,0x00,0xE0,0x60,0x00,0x7C,0x03,0xFE,0x0E,0x07,0xF1,0xFF,0x8F,0xF0,0x00,
//
.......####.............###......##..............#####........#########.....###......#######...##########...########............
 
0x01,0xE0,0x00,0x60,0x60,0x00,0x7C,0x03,0xFF,0x1E,0x0F,0xF9,0xFF,0x8F,0xF8,0x00,
//
.......####..............##......##..............#####........##########...####.....#########..##########...#########...........
 
0x01,0xE0,0x00,0x00,0x00,0x00,0x7C,0x03,0xFE,0x3E,0x0F,0xFC,0xFF,0x8F,0xF8,0x00,
//
.......####......................................#####........#########...#####.....##########..#########...#########...........
 
0x01,0xE0,0x01,0xFF,0xF8,0x00,0x7C,0x03,0x00,0x3E,0x0C,0x1C,0x18,0x0C,0x18,0x00,
//
.......####............##############............#####........##..........#####.....##.....###.....##.......##.....##...........
 
0x01,0xE0,0x03,0xFF,0xFC,0x00,0x7C,0x03,0x00,0x06,0x0C,0x1C,0x18,0x0C,0x18,0x00,
//
.......####...........################...........#####........##.............##.....##.....###.....##.......##.....##...........
 
0x01,0xE0,0x01,0xFF,0xF8,0x00,0x7C,0x03,0x00,0x06,0x0C,0x1C,0x18,0x0C,0x18,0x00,
//
.......####............##############............#####........##.............##.....##.....###.....##.......##.....##...........
 
0x01,0xE0,0x01,0xFF,0xF8,0x00,0x7C,0x03,0x00,0x06,0x0C,0x1C,0x18,0x0C,0x18,0x00,
//
.......####............##############............#####........##.............##.....##.....###.....##.......##.....##...........
 
0x01,0xE0,0x01,0xFF,0xF8,0x00,0x7C,0x03,0x00,0x06,0x0C,0x1C,0x18,0x0C,0x18,0x00,
//
.......####............##############............#####........##.............##.....##.....###.....##.......##.....##...........
 
0x01,0xE0,0x01,0xFF,0xF8,0x00,0x7C,0x03,0xF8,0x06,0x0F,0xFC,0x18,0x0F,0xF8,0x00,
//
.......####............##############............#####........#######........##.....##########.....##.......#########...........
 
0x01,0xE0,0x01,0xFF,0xF8,0x00,0x7C,0x03,0xF8,0x06,0x0F,0xFC,0x18,0x0F,0xF8,0x00,
//
.......####............##############............#####........#######........##.....##########.....##.......#########...........
 
0x01,0xE0,0x01,0xFF,0xF8,0x00,0x7C,0x03,0x00,0x06,0x0E,0x1C,0x18,0x0C,0x18,0x00,
//
.......####............##############............#####........##.............##.....###....###.....##.......##.....##...........
 
0x01,0xE0,0x01,0xFF,0xF8,0x00,0x7C,0x03,0x00,0x06,0x0C,0x1C,0x18,0x0C,0x18,0x00,
//
.......####............##############............#####........##.............##.....##.....###.....##.......##.....##...........
 
0x01,0xE0,0x01,0xFF,0xF8,0x00,0x7C,0x03,0x00,0x06,0x0C,0x1C,0x18,0x0C,0x18,0x00,
//
.......####............##############............#####........##.............##.....##.....###.....##.......##.....##...........
 
0x01,0xE0,0x00,0xFF,0xF0,0x00,0x7C,0x03,0x00,0x06,0x0C,0x1C,0x18,0x0C,0x18,0x00,
//
.......####.............############.............#####........##.............##.....##.....###.....##.......##.....##...........
 
0x01,0xE0,0x00,0xFF,0xF0,0x00,0x7C,0x03,0x00,0x06,0x0C,0x1C,0x18,0x0C,0x18,0x00,
//
.......####.............############.............#####........##.............##.....##.....###.....##.......##.....##...........
 
0x01,0xE0,0x00,0x7F,0xE0,0x00,0x7C,0x03,0x00,0x0F,0x0C,0x1C,0x18,0x0E,0x38,0x00,
//
.......####..............##########..............#####........##............####....##.....###.....##.......###...###...........
 
0x01,0xE0,0x00,0x3F,0xC0,0x00,0x7C,0x03,0x00,0x3F,0x8C,0x1C,0x18,0x0F,0xF8,0x00,
//
.......####...............########...............#####........##..........#######...##.....###.....##.......#########...........
 
0x01,0xE0,0x00,0x0F,0x00,0x00,0x7C,0x03,0x00,0x3F,0x8C,0x0C,0x18,0x0F,0xF0,0x00,
//
.......####.................####.................#####........##..........#######...##......##.....##.......########............
 
0x01,0xE0,0x00,0x0F,0x00,0x00,0x7C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
//
.......####.................####.................#####..........................................................................
 
0x01,0xE0,0x00,0x06,0x00,0x00,0x7C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
//
.......####..................##..................#####..........................................................................
 
0x01,0xE0,0x00,0x06,0x00,0x00,0x7C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
//
.......####..................##..................#####..........................................................................
 
0x01,0xE0,0x00,0x06,0x00,0x00,0x7C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
//
.......####..................##..................#####..........................................................................
 
0x01,0xE0,0x00,0x1F,0x00,0x00,0x7C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
//
.......####................#####.................#####..........................................................................
 
0x01,0xE0,0x00,0x7F,0xC0,0x00,0x7C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
//
.......####..............#########...............#####..........................................................................
 
0x01,0xE0,0x00,0xFF,0xF0,0x00,0x7C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
//
.......####.............############.............#####..........................................................................
 
0x01,0xE0,0x01,0xFF,0xFC,0x00,0x7C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
//
.......####............###############...........#####..........................................................................
 
0x01,0xE0,0x00,0x0F,0xFE,0x00,0x7C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
//
.......####.................###########..........#####..........................................................................
 
0x01,0xE0,0x00,0x03,0xFF,0x80,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
//
.......####...................###########.......######..........................................................................
 
0x01,0xE0,0x0F,0xE0,0xFF,0xC0,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
//
.......####.........#######.....##########......######..........................................................................
 
0x01,0xF0,0x7F,0x80,0x3F,0xF1,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
//
.......#####.....########.........##########...######...........................................................................
 
0x01,0xF9,0xFF,0x00,0x1F,0xFF,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
//
.......######..#########...........##################...........................................................................
 
0x00,0xFF,0xFC,0x00,0x07,0xFF,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
//
........##############...............################...........................................................................
 
0x00,0xFF,0xF8,0x00,0x03,0xFF,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
//
........#############.................##############............................................................................
 
0x00,0x7F,0xE0,0x00,0x00,0xFF,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
//
.........##########.....................###########.............................................................................
 
0x00,0x1F,0xC0,0x00,0x00,0x7F,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
//
...........#######.......................#########..............................................................................
 
0x00,0x00,0x00,0x00,0x00,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
//
............................................###.................................................................................
 
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
//
................................................................................................................................
 
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
//
................................................................................................................................
 
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
//
................................................................................................................................
 
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
//
................................................................................................................................
 
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 
//
................................................................................................................................
};
int cligSun = 0;
int BoucleOled = 0;
//Initialisation
void InitSSD(){
   //OLED init
  Wire.begin(SDA_PIN, SCL_PIN);

  //FORCE RESET DE L'ECRAN SI PIN PARTICULIER POUR RESET
  if(OLED_RESET != -1) {
    pinMode (OLED_RESET, OUTPUT);
    digitalWrite(OLED_RESET, HIGH);
    digitalWrite(OLED_RESET, LOW);
    delay(100);
  }
  #if USE_SSD1306
    delay(250);
    if (!display.begin(SSD1306_SWITCHCAPVCC, SCREEN_ADDRESS)) {
      Serial.println("OLED SSD1306 init failed");
    }
    else {
        //Allumer l'écran.
       
        display.ssd1306_command(SSD1306_DISPLAYON);
        //oled_command(SH110X_DISPLAYON); //SH110X
        OledLogo();
        display.setCursor(70,50);
        display.print(F("Init..."));
        display.display();
        OLED_on=true;
    }
  #endif
 
  #if USE_SH110X
    delay(250); // wait for the OLED to power up
    if (!display.begin(SCREEN_ADDRESS, true)) { //Pour SH110X
      Serial.println("OLED SH110X init failed");
    }
    else {
      //Allumer l'écran.
      // ?
      OledLogo();
      display.setCursor(70,50);
      display.print(F("Init..."));
      display.display();
      OLED_on=true;
    }
  #endif
  //Partie gestion bouton
  if(pinBtnOled > 0) {
    pinMode(pinBtnOled, INPUT_PULLUP);
    attachInterrupt(digitalPinToInterrupt(pinBtnOled), OledBouton, RISING) ;
  }
}
//Procédure boucle des écrans
void OledAffiche(){
  if(OLED_on==false) {
    return;
  }
  if (OledChange) {
    OledChange=false; //Changement traité
    if(OledState) {
      //Allumer écran
      #if USE_SSD1306
        display.ssd1306_command(SSD1306_DISPLAYON);
      #endif
      #if USE_SH110X
        // ?
      #endif
      BoucleOled=0; //reprise début boucle écran
    }
    else {
      //Eteindre écran
      #if USE_SSD1306
        display.ssd1306_command(SSD1306_DISPLAYOFF);
      #endif
      #if USE_SH110X
        // ?, pas trouvé la commande pour off
        display.clearDisplay();
        display.display();
      #endif
      return;
    }
  }
  if(MATERIEL_ROUTAGE == -1) {
    //Recherche matériel
     for (int i = 0; i < NbActions; i++) {
        if(LesActions[i].Actif != 0 && MATERIEL_ROUTAGE == -1 ) MATERIEL_ROUTAGE=i;
     }
  }
  if (BoucleOled <= 10 ) {
      //Ecran 1
      display.clearDisplay();
      BarreEtatDroite();
      Ecran1();
      display.display();
      BoucleOled++;
  }
  else if (BoucleOled <= 14 ) {
      //Ecran 2
      display.clearDisplay();
      Ecran2();
      display.display();
      BoucleOled++;
  }
   else if (BoucleOled <= 18 ) {
      //Ecran 3
      display.clearDisplay();
      Ecran3();
      display.display();
      BoucleOled++;
  }
  else if (BoucleOled <= 20 ) {
      OledLogo();
      BoucleOled++;
  }
  else {
    BoucleOled=0;
  }
}
//contenue écran 1
void Ecran1(){
  if(OLED_on==false || !OledState) {
    return;
  }
  display.setTextSize(1);
  display.setTextColor(OLED_WHITE);
  //WIFI
  display.setCursor(0,5);
  if (WiFi.status() == WL_CONNECTED) {
    display.print(WiFi.localIP().toString());
  }
  else {
    (WiFi.getMode() == WIFI_STA)==false ? display.print(WiFi.softAPIP().toString()) :  display.print(F("Pas de wifi !"));
  }
  //Ligne de séparation
  display.drawLine(0,18,128,18,OLED_WHITE);
  //Puissance sonde maison
  display.setCursor(0,24);
  display.println(F("Puissance"));
  display.setCursor(0,37);
  display.setTextSize(2);
  display.print(int(PuissanceS_M - PuissanceI_M));
 
  display.setTextSize(1);
  //Ouverture du triac/ssr
  int Ouv = -1;
  if(MATERIEL_ROUTAGE != -1) {
    Ouv = 100 - Retard[MATERIEL_ROUTAGE];
  }
  if(Ouv>0) {
    //Icone clignote, signale le routage
    if(cligSun==0) {
      display.drawBitmap(92, 1, bitmap_Sun , 16, 16, OLED_WHITE);
      cligSun=1;
    }
    else {
      cligSun=0;
      display.drawBitmap(92, 1, bitmap_Off , 16, 16, OLED_WHITE);
    }
  }
  else {
    //Pas de triac/relais...
  }
  display.setCursor(0,38);
  if(Ouv == -1) {
    display.setCursor(82,24);
    display.print(F("Ouv")); //Triac erreur
    display.drawRect(70, 24, 10, 30, OLED_WHITE);
    display.setCursor(82,38);
    display.print(F(" !"));
  }
  else {
    //Affiche jauge Triac/Relais
    display.setCursor(82,24);
    display.print(F("Ouv"));
    display.drawRect(70, 24, 10, 30, OLED_WHITE);
    float t = (float(30)/100)*Ouv;
    display.fillRect(70+2, 24+(30-int(t)), 10-4 , int(t), OLED_WHITE);
    display.setTextSize(1);
    display.setCursor(83,38);
    display.print(Ouv);
    display.print(F("%"));
  }
 
  //Affichage de la version installée
  display.setCursor(0,57);
  display.print(F("V"));
  display.print(Version);
  //Affichage durée de fonctionnement ESP32
  int T = int(millis() / 1000);
  float DureeOn = float(T) / 3600;
  String durOn=String(DureeOn)+"h";
  display.setCursor(108-(durOn.length()*6),57);
  display.print(durOn);
}
//barre d'action affiché en ecran 1
void BarreEtatDroite() { /*Affiche une barre d'état WIFI et mode action*/
   if(OLED_on==false || !OledState) {
    return;
  }
  display.setTextSize(1);
  display.setTextColor(OLED_WHITE);
  display.drawLine(110,18,110,64,OLED_WHITE); //Ligne séparatrice à droite
  //Niveau Wifi
  if (WiFi.status() == WL_CONNECTED) {
    //Icone niveau connection
    int NivSignal = int(WiFi.RSSI()) ;
    if (NivSignal<-80) {display.drawBitmap(112, 0, bitmap_Signal1 , 16, 16, OLED_WHITE); }
    else if(NivSignal<-60) {display.drawBitmap(112, 0, bitmap_Signal2 , 16, 16, OLED_WHITE); }
    else if(NivSignal<-45) {display.drawBitmap(112, 0, bitmap_Signal3 , 16, 16, OLED_WHITE); }
    else if(NivSignal<-30) {display.drawBitmap(112, 0, bitmap_Signal4 , 16, 16, OLED_WHITE); }
  }
  else {
    (WiFi.getMode() == WIFI_STA)==false ? display.drawBitmap(112, 0,
bitmap_Signal0 , 16, 16, OLED_WHITE) : display.drawBitmap(112, 0,
bitmap_Signal0 , 16, 16, OLED_WHITE);
  }
  //Mode en cours du Triac/ssr...
  int Mode = 0;
  if (MATERIEL_ROUTAGE != -1) Mode = LesActions[MATERIEL_ROUTAGE].TypeEnCours(HeureCouranteDeci, temperature, LTARFbin);
  display.setCursor(115,21);
  display.setTextColor(OLED_WHITE);
  if(Mode!=1){
    display.print(F("OF"));
  }
  else {
    display.fillRect(114,20,13,10,OLED_WHITE);
    display.setTextColor(OLED_BLACK);
    display.print(F("OF"));
  }
  display.setCursor(115,33);
  display.setTextColor(OLED_WHITE);
  if(Mode!=2){
    display.print(F("ON"));
  }
  else {
    display.fillRect(114,32,13,10,OLED_WHITE);
    display.setTextColor(OLED_BLACK);
    display.print(F("ON"));
  }
  display.setCursor(115,45);
  display.setTextColor(OLED_WHITE);
  if(Mode!=3){
    display.print(F("PW"));
  }
  else {
    display.fillRect(114,44,13,10,OLED_WHITE);
    display.setTextColor(OLED_BLACK);
    display.print(F("PW"));
  }
  display.setCursor(115,57);
  display.setTextColor(OLED_WHITE);
  if(Mode!=4){
    display.print(F("TR"));
  }
  else {
    display.fillRect(114,56,13,10,OLED_WHITE);
    display.setTextColor(OLED_BLACK);
    display.print(F("TR"));
  }
  display.setTextColor(OLED_WHITE);
}
//Ecran 2
void Ecran2() {
  if(OLED_on==false || !OledState){
    return;
  }
  display.setCursor(0,0);
  display.setTextSize(2);
  display.setTextColor(OLED_WHITE);
  display.println(F("Injectee"));
  display.println(F("jour"));
  display.print(EnergieJour_M_Injectee);
  display.print(F(" Wh"));
  display.setTextSize(1);
  //Affichage de la version installée
  display.setCursor(0,55);
  display.print(F("V "));
  display.print(Version);
  //Affichage durée de fonctionnement ESP32
  int T = int(millis() / 1000);
  float DureeOn = float(T) / 3600;
  String durOn=String(DureeOn)+" h";
  display.setCursor(128-(durOn.length()*6),55);
  display.print(durOn);
}
//Ecran 3
void Ecran3() {
  if(OLED_on==false || !OledState){
    return;
  }
  display.setCursor(0,0);
  display.setTextSize(2);
  display.setTextColor(OLED_WHITE);
  float H = 0;
  if(MATERIEL_ROUTAGE != -1 ) H = H_Ouvre[MATERIEL_ROUTAGE];
  display.println(F("Heure"));
  display.println(F("router"));
  display.print(H);
  display.println(F("h"));
  display.setTextSize(1);
  //Affichage de la version installée
  display.setCursor(0,57);
  display.print(F("V"));
  display.print(Version);
  //Affichage durée de fonctionnement ESP32
  int T = int(millis() / 1000);
  float DureeOn = float(T) / 3600;
  String durOn=String(DureeOn)+"h";
  display.setCursor(128-(durOn.length()*6),57);
  display.print(durOn);
}
//Affichage du logo
void OledLogo() {
  display.clearDisplay();
  display.setCursor(0,0);
  display.drawBitmap(0, 0, bitmap_Logo , 128, 68, OLED_WHITE);
  display.setCursor(70,50);
  display.print(F("V "));
  display.print(Version);
  display.display();
}
//Gestion du bouton
void OledBouton() {
  //Gestion bouton exctinction
  if (button_time > millis()) return;
  OledState = !OledState; // inverse l’état de la variable
  button_time = millis() + btn_latence;
  OledChange=true;
}

:\Users\fpres\OneDrive\Bureau\routeur avec afficheur\Solar_Router_V11_12\OLED.ino:405:18: error: stray '#' in program
  405 | ...........#######.......................#########..............................................................................
      |                  ^
C:\Users\fpres\OneDrive\Bureau\routeur avec afficheur\Solar_Router_V11_12\OLED.ino:405:42: error: stray '##' in program
  405 | ...........#######.......................#########..............................................................................
      |                                          ^~
C:\Users\fpres\OneDrive\Bureau\routeur avec afficheur\Solar_Router_V11_12\OLED.ino:405:44: error: stray '##' in program
  405 | ...........#######.......................#########..............................................................................
      |                                            ^~
C:\Users\fpres\OneDrive\Bureau\routeur avec afficheur\Solar_Router_V11_12\OLED.ino:405:46: error: stray '##' in program
  405 | ...........#######.......................#########..............................................................................
      |                                              ^~
C:\Users\fpres\OneDrive\Bureau\routeur avec afficheur\Solar_Router_V11_12\OLED.ino:405:48: error: stray '##' in program
  405 | ...........#######.......................#########..............................................................................
      |                                                ^~
C:\Users\fpres\OneDrive\Bureau\routeur avec afficheur\Solar_Router_V11_12\OLED.ino:405:50: error: stray '#' in program
  405 | ...........#######.......................#########..............................................................................
      |                                                  ^
C:\Users\fpres\OneDrive\Bureau\routeur avec afficheur\Solar_Router_V11_12\OLED.ino:409:45: error: stray '##' in program
  409 | ............................................###.................................................................................
      |                                            ^~
C:\Users\fpres\OneDrive\Bureau\routeur avec afficheur\Solar_Router_V11_12\OLED.ino:409:47: error: stray '#' in program
  409 | ............................................###.................................................................................
      |                                              ^
C:\Users\fpres\OneDrive\Bureau\routeur avec afficheur\Solar_Router_V11_12\OLED.ino:177:1: error: expected primary-expression before '...' token
  177 | ................................................................................................................................
      | ^~~
C:\Users\fpres\OneDrive\Bureau\routeur avec afficheur\Solar_Router_V11_12\OLED.ino:177:4: error: expected '}' before '...' token
  177 | ................................................................................................................................
      |    ^~~
C:\Users\fpres\OneDrive\Bureau\routeur avec afficheur\Solar_Router_V11_12\OLED.ino:173:45: note: to match this '{'
  173 | const unsigned char bitmap_Logo[] PROGMEM = {
      |                                            ^
C:\Users\fpres\OneDrive\Bureau\routeur avec afficheur\Solar_Router_V11_12\OLED.ino:430:1: error: expected declaration before '}' token
  430 | };
      | ^

exit status 1

Compilation error: stray '##' in program

jai ca quand je compile
Répondre


Messages dans ce sujet
Code OLED 128*64 - par Raphael591 - 23-06-2024, 04:19 PM
RE: Code OLED 128*64 - par AL53 - 23-06-2024, 07:46 PM
RE: Code OLED 128*64 - par Raphael591 - 23-06-2024, 11:46 PM
RE: Code OLED 128*64 - par AL53 - 24-06-2024, 06:07 PM
RE: Code OLED 128*64 - par DanielJ - 24-06-2024, 04:22 PM
RE: Code OLED 128*64 - par DanielJ - 24-06-2024, 06:32 PM
RE: Code OLED 128*64 - par Raphael591 - 24-06-2024, 08:52 PM
RE: Code OLED 128*64 - par AL53 - 24-06-2024, 10:52 PM
RE: Code OLED 128*64 - par m_fasilleau@yahoo.fr - 24-06-2024, 10:56 PM
RE: Code OLED 128*64 - par Raphael591 - 24-06-2024, 11:03 PM
RE: Code OLED 128*64 - par m_fasilleau@yahoo.fr - 25-06-2024, 08:37 AM
RE: Code OLED 128*64 - par Raphael591 - 25-06-2024, 01:40 PM
RE: Code OLED 128*64 - par m_fasilleau@yahoo.fr - 25-06-2024, 04:11 PM
RE: Code OLED 128*64 - par Psykoz23 - 25-06-2024, 05:17 PM
RE: Code OLED 128*64 - par m_fasilleau@yahoo.fr - 25-06-2024, 07:18 PM
RE: Code OLED 128*64 - par Raphael591 - 25-06-2024, 07:30 PM
RE: Code OLED 128*64 - par Psykoz23 - 25-06-2024, 09:57 PM
RE: Code OLED 128*64 - par Raphael591 - 26-06-2024, 12:39 AM
RE: Code OLED 128*64 - par Psykoz23 - 26-06-2024, 02:00 PM
RE: Code OLED 128*64 - par DanielJ - 26-06-2024, 04:12 PM
RE: Code OLED 128*64 - par F1ATB - 26-06-2024, 04:42 PM
RE: Code OLED 128*64 - par DanielJ - 26-06-2024, 04:53 PM
RE: Code OLED 128*64 - par Raphael591 - 26-06-2024, 05:37 PM
RE: Code OLED 128*64 - par DanielJ - 26-06-2024, 06:33 PM
RE: Code OLED 128*64 - par m_fasilleau@yahoo.fr - 27-06-2024, 08:29 PM
RE: Code OLED 128*64 - par DanielJ - 27-06-2024, 09:05 PM
RE: Code OLED 128*64 - par m_fasilleau@yahoo.fr - 30-06-2024, 09:02 PM
RE: Code OLED 128*64 - par Serge 11 - 28-06-2024, 05:10 PM
RE: Code OLED 128*64 - par DanielJ - 28-06-2024, 05:30 PM
RE: Code OLED 128*64 - par DanielJ - 28-06-2024, 07:41 PM
RE: Code OLED 128*64 - par Raphael591 - 04-07-2024, 09:01 PM
RE: Code OLED 128*64 - par Serge 11 - 07-07-2024, 09:01 PM
RE: Code OLED 128*64 - par Raphael591 - 08-07-2024, 02:17 PM
RE: Code OLED 128*64 - par Serge 11 - 08-07-2024, 04:42 PM
RE: Code OLED 128*64 - par F1ATB - 05-07-2024, 06:15 AM
RE: Code OLED 128*64 - par lucky - 05-07-2024, 08:48 AM
RE: Code OLED 128*64 - par m_fasilleau@yahoo.fr - 08-07-2024, 08:32 PM
RE: Code OLED 128*64 - par Raphael591 - 08-07-2024, 11:39 PM
RE: Code OLED 128*64 - par m_fasilleau@yahoo.fr - 09-07-2024, 08:14 PM
RE: Code OLED 128*64 - par Raphael591 - 09-07-2024, 10:37 AM
RE: Code OLED 128*64 - par lucky - 09-07-2024, 10:51 AM
RE: Code OLED 128*64 - par Fabio63 - 10-07-2024, 10:24 AM
RE: Code OLED 128*64 - par Raphael591 - 10-07-2024, 11:37 AM
RE: Code OLED 128*64 - par Fabio63 - 10-07-2024, 11:48 AM
RE: Code OLED 128*64 - par Fabio63 - 10-07-2024, 03:42 PM
RE: Code OLED 128*64 - par Raphael591 - 10-07-2024, 04:12 PM
RE: Code OLED 128*64 - par Fabio63 - 10-07-2024, 05:02 PM
RE: Code OLED 128*64 - par Fabio63 - 10-07-2024, 06:23 PM
RE: Code OLED 128*64 - par Raphael591 - 10-07-2024, 07:09 PM
RE: Code OLED 128*64 - par Fabio63 - 10-07-2024, 08:06 PM
RE: Code OLED 128*64 - par Fabio63 - 11-07-2024, 01:21 PM
RE: Code OLED 128*64 - par Raphael591 - 11-07-2024, 02:57 PM
RE: Code OLED 128*64 - par Fabio63 - 11-07-2024, 03:00 PM
RE: Code OLED 128*64 - par Raphael591 - 11-07-2024, 03:36 PM
RE: Code OLED 128*64 - par Alain_C38 - 11-07-2024, 04:07 PM
Code OLED 128*64 - par dede - 12-07-2024, 04:24 PM
RE: Code OLED 128*64 - par Raphael591 - 13-07-2024, 10:33 AM
RE: Code OLED 128*64 - par dede - 14-07-2024, 12:54 PM
RE: Code OLED 128*64 - par Raphael591 - 15-07-2024, 11:30 AM
RE: Code OLED 128*64 - par dede - 26-07-2024, 07:45 PM
RE: Code OLED 128*64 - par Raphael591 - 26-07-2024, 10:35 PM
RE: Code OLED 128*64 - par cmichel - 01-08-2024, 02:12 PM
RE: Code OLED 128*64 - par Psykoz23 - 13-08-2024, 06:08 PM
RE: Code OLED 128*64 - par Alain_C38 - 14-08-2024, 08:58 AM
RE: Code OLED 128*64 - par Alain H - 17-08-2024, 08:41 PM
RE: Code OLED 128*64 - par Sgb31 - 14-08-2024, 03:22 PM
RE: Code OLED 128*64 - par Psykoz23 - 14-08-2024, 08:08 PM
RE: Code OLED 128*64 - par Sgb31 - 15-08-2024, 12:11 PM
RE: Code OLED 128*64 - par Sgb31 - 15-08-2024, 07:31 PM
RE: Code OLED 128*64 - par Serge111 - 14-08-2024, 08:00 PM
RE: Code OLED 128*64 - par Sgb31 - 17-08-2024, 03:09 PM
RE: Code OLED 128*64 - par Raphael591 - 19-08-2024, 07:50 PM
RE: Code OLED 128*64 - par Alain_C38 - 22-08-2024, 08:32 PM
RE: Code OLED 128*64 - par lucky - 11-10-2024, 09:06 AM
RE: Code OLED 128*64 - par FADEGA - 11-10-2024, 02:04 PM
RE: Code OLED 128*64 - par Mike - 11-10-2024, 03:05 PM
RE: Code OLED 128*64 - par lucky - 11-10-2024, 07:43 PM
RE: Code OLED 128*64 - par Raphael591 - 12-10-2024, 01:39 AM
RE: Code OLED 128*64 - par lucky - 12-10-2024, 08:13 AM
RE: Code OLED 128*64 - par FADEGA - 12-10-2024, 09:33 AM
RE: Code OLED 128*64 - par Raphael591 - 12-10-2024, 09:00 PM
RE: Code OLED 128*64 - par FADEGA - 13-10-2024, 09:28 PM
RE: Code OLED 128*64 - par Mike - 11-10-2024, 10:23 PM
RE: Code OLED 128*64 - par Raphael591 - 11-10-2024, 11:51 PM
RE: Code OLED 128*64 - par Nalexdouze - 14-10-2024, 12:06 PM
RE: Code OLED 128*64 - par Sgb31 - 28-10-2024, 09:05 AM
RE: Code OLED 128*64 - par Raphael591 - 28-10-2024, 09:34 PM
RE: Code OLED 128*64 - par F1ATB - 29-10-2024, 08:14 AM
RE: Code OLED 128*64 - par Sgb31 - 29-10-2024, 08:57 AM
RE: Code OLED 128*64 - par Lolo69 - 29-10-2024, 06:07 PM
RE: Code OLED 128*64 - par Sgb31 - 29-10-2024, 06:58 PM
RE: Code OLED 128*64 - par Lolo69 - 29-10-2024, 09:09 PM
RE: Code OLED 128*64 - par Sgb31 - 29-10-2024, 11:34 PM
RE: Code OLED 128*64 - par Lolo69 - 29-10-2024, 11:37 PM
RE: Code OLED 128*64 - par Sgb31 - 29-10-2024, 11:39 PM
RE: Code OLED 128*64 - par Lolo69 - 30-10-2024, 06:55 AM
RE: Code OLED 128*64 - par lucky - 30-10-2024, 09:00 AM
RE: Code OLED 128*64 - par Lolo69 - 30-10-2024, 12:24 PM
RE: Code OLED 128*64 - par Sgb31 - 30-10-2024, 02:25 PM
RE: Code OLED 128*64 - par Guallaume - 30-10-2024, 06:36 PM
RE: Code OLED 128*64 - par Lolo69 - 30-10-2024, 03:20 PM
RE: Code OLED 128*64 - par Sgb31 - 30-10-2024, 05:07 PM
RE: Code OLED 128*64 - par Sgb31 - 31-10-2024, 10:31 AM
RE: Code OLED 128*64 - par Guallaume - 31-10-2024, 03:33 PM
RE: Code OLED 128*64 - par H3rv3 - 16-11-2024, 02:06 PM

Atteindre :


Utilisateur(s) parcourant ce sujet : 29 visiteur(s)