krijg 1.3" oled display niet werkend

Hoi,

Ik heb van alles geprobeerd en gezocht op internet maar krijg niets op het display.
Display werkt met de u8g library en enkele demo's.

In mijn code gebeurt er niets op het display.
Wil graag de text AGL met daaronder de waarde op het scherm

Hoop dat iemand hiermee kan helpen.

#include "U8glib.h"
U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_NO_ACK);                     // Display which does not send ACK

// ********************************************** BME280 ************************************************

#include <Wire.h>
#include <SPI.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BME280.h>

#define BME_SCK 13
#define BME_MISO 12
#define BME_MOSI 11
#define BME_CS 10
#define Sealevel_HPA (1013.25)                                    // Set sealevel 

Adafruit_BME280 bme; // I2C
unsigned long delayTime;

// ******************************************* FLAPS Sensor ********************************************

int AGL = 0;                                                      // Set initial heigth
int sensorPin = A0;                                               // select the input pin for the flaps potentiometer
int sensorValue = 0;                                              // variable to store the value coming from the sensor
int tol = 15;                                                     // set tolerance flaps slider

// ****************************************** Rotary Encoder *******************************************

#define inputCLK 8                                                // Set input pin CLK
#define inputDT 9                                                 // Set input pin DT
int pinwaarde = 0;
int var = 0; //tijdelijk
int mode = 0;
int counter = 0;                                                  // Initial encoder count
float currentStateCLK;                                            // Initial CLK state
float previousStateCLK;                                           // Previous CLK state
String encdir = "";

// ****************************************** General Setup ********************************************

void setup() {

  // Rotary encoder setup
  pinMode (inputCLK, INPUT);                                      // Set encoder pins as inputs
  pinMode (inputDT, INPUT);
  int gearPin = 5;
  int buzzerPin = 6;
  pinMode (7, INPUT);                                             // Set input pin encoder switch
  pinMode (buzzerPin, OUTPUT);                                    // Buzzer pin
  pinMode (gearPin, INPUT);                                       // Gear down switch



  Serial.begin(9600);                                             // start serial port
  unsigned status;
  status = bme.begin();
}


void loop() {
  mode = 0;


  // read the value from the flaps-sensor:
  //sensorValue = analogRead(sensorPin);  // read serial value

  if      (sensorValue > 100 - tol && sensorValue < 150 + tol)  {
    Serial.println("flaps 1  ");
  }
  else if (sensorValue > 200 - tol && sensorValue < 250 + tol)  {
    Serial.println("flaps 2  ");
  }
  else if (sensorValue > 300 - tol && sensorValue < 350 + tol)  {
    Serial.println("flaps 3  ");
  }
  else if (sensorValue > 400 - tol && sensorValue < 450 + tol)  {
    Serial.println("flaps 4  ");
  }
  else if (sensorValue > 500 - tol && sensorValue < 550 + tol)  {
    Serial.println("flaps L1 ");
  }
  else if (sensorValue > 600 - tol && sensorValue < 650 + tol)  {
    Serial.println("flaps L2 ");
  }
  else Serial.print("----  ");



  pinwaarde = digitalRead(7);
  if (pinwaarde == LOW) {
    subroutine();
  };

  // Print QNH
  Serial.print("QNH = ");
  Serial.print(int(bme.readPressure() / 100.0F));
  Serial.print(" hPa ");

  // Print AGL
  AGL = (bme.readAltitude(Sealevel_HPA));
  Serial.print("AGL = ");
  Serial.print (AGL + counter);
  Serial.println(" m");

  if  (AGL + counter < 150) {                                     // Set Landing gear warning altitude and determine if gear is down
    digitalWrite(6, HIGH);
  }
  else if (AGL + counter >= 150) {
    digitalWrite(6, LOW);
  }

  void draw()
  {

    u8g.setFont(u8g_font_osb18);
    u8g.drawStr(0, 30, "AGL");
    u8g.setPrintPos(0, 50);
    u8g.print(AGL);
  }

  delay(1000);                                                    // wait for xxx ms
}

void subroutine() {                                               // Set AGL & QNH
  var = 0;
  while (var < 1) {

    pinwaarde = digitalRead(7);                                   // Read pinvalue ecncoder switch
    if (pinwaarde == LOW)
    {
      mode++;
      delay(1000);
      if (mode == 3)                                              // Long press value encoder switch for break out of loop
        break;                                                    // Return to main
    }

    currentStateCLK = digitalRead(inputCLK); inputCLK;            // Read the current state of inputCLK
    if (currentStateCLK != previousStateCLK) {
      if (digitalRead(inputDT) != currentStateCLK) {
        counter --;
        encdir = "CCW";
      } else {
        // Encoder is rotating clockwise
        counter ++;
        encdir = "CW";
      }


      AGL = (bme.readAltitude(Sealevel_HPA));
      Serial.print("AGL = ");
      Serial.print (AGL + counter);                               // Print AGL modified
      Serial.println(" m");

      previousStateCLK = currentStateCLK;                         // Update previousStateCLK with the current state

    }
  }
}

ik zie nergens dat je draw aanroept.

Ik begrijp niet wat je bedoelt, kun je een voorbeeld geven?

dank je

krijg ook deze foutmelding : a function-definition is not allowed here before '{' token

shooter bedoelt dat de functie draw nooit uitgevoerd wordt.

enkel de functies "setup" en "loop" worden automatisch uitgevoerd.
als je zelf functies bijmaakt (wat goed is) moet je er ook voor zorgen dat ze uitgevoerd worden

dus ergens in de loop functie moet er een lijntje code staan waar je er voor zorgt dat "draw" uitgevoerd wordt, net zoals je voor "subroutine" gedaan hebt.

Dank je 
Sorry ik niet hier niet zo goed in.

Dit heb ik nu maar steeds de error:  function-definition is not allowed here before '{' token

wat doe ik fout en waar zit die?

[code// ******************************************** OLED Display ********************************************

#include "U8glib.h"
U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_NO_ACK);                     // Display which does not send ACK

// ********************************************** BME280 ************************************************

#include <Wire.h>
#include <SPI.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BME280.h>

#define BME_SCK 13
#define BME_MISO 12
#define BME_MOSI 11
#define BME_CS 10
#define Sealevel_HPA (1013.25)                                    // Set sealevel 

Adafruit_BME280 bme; // I2C
unsigned long delayTime;

// ******************************************* FLAPS Sensor ********************************************

int AGL = 0;                                                      // Set initial heigth
int sensorPin = A0;                                               // select the input pin for the flaps potentiometer
int sensorValue = 0;                                              // variable to store the value coming from the sensor
int tol = 15;                                                     // set tolerance flaps slider

// ****************************************** Rotary Encoder *******************************************

#define inputCLK 8                                                // Set input pin CLK
#define inputDT 9                                                 // Set input pin DT
int pinwaarde = 0;
int var = 0; //tijdelijk
int mode = 0;
int counter = 0;                                                  // Initial encoder count
float currentStateCLK;                                            // Initial CLK state
float previousStateCLK;                                           // Previous CLK state
String encdir = "";

// ****************************************** General Setup ********************************************




void setup() {

  // Rotary encoder setup
  pinMode (inputCLK, INPUT);                                      // Set encoder pins as inputs
  pinMode (inputDT, INPUT);
  int gearPin = 5;
  int buzzerPin = 6;
  pinMode (7, INPUT);                                             // Set input pin encoder switch
  pinMode (buzzerPin, OUTPUT);                                    // Buzzer pin
  pinMode (gearPin, INPUT);                                       // Gear down switch



  Serial.begin(9600);                                             // start serial port
  unsigned status;
  status = bme.begin();
}



void loop() {
  mode = 0;


  // read the value from the flaps-sensor:
  //sensorValue = analogRead(sensorPin);  // read serial value

  if      (sensorValue > 100 - tol && sensorValue < 150 + tol)  {
    Serial.println("flaps 1  ");
  }
  else if (sensorValue > 200 - tol && sensorValue < 250 + tol)  {
    Serial.println("flaps 2  ");
  }
  else if (sensorValue > 300 - tol && sensorValue < 350 + tol)  {
    Serial.println("flaps 3  ");
  }
  else if (sensorValue > 400 - tol && sensorValue < 450 + tol)  {
    Serial.println("flaps 4  ");
  }
  else if (sensorValue > 500 - tol && sensorValue < 550 + tol)  {
    Serial.println("flaps L1 ");
  }
  else if (sensorValue > 600 - tol && sensorValue < 650 + tol)  {
    Serial.println("flaps L2 ");
  }
  else Serial.print("----  ");



  pinwaarde = digitalRead(7);
  if (pinwaarde == LOW) {
    subroutine();
  };

  // Print QNH
  Serial.print("QNH = ");
  Serial.print(int(bme.readPressure() / 100.0F));
  Serial.print(" hPa ");

  // Print AGL
  AGL = (bme.readAltitude(Sealevel_HPA));
  Serial.print("AGL = ");
  Serial.print (AGL + counter);
  Serial.println(" m");

  if  (AGL + counter < 150) {                                     // Set Landing gear warning altitude and determine of gear is down
    digitalWrite(6, HIGH);
  }
  else if (AGL + counter >= 150) {
    digitalWrite(6, LOW);
  }

  void draw(void) {
    u8g.setFont(u8g_font_unifont);
    u8g.drawStr( 1, 20, "AGL");
    u8g.setPrintPos(1, 40);
    u8g.print(AGL + counter);
    }

    void loop() {
      u8g.firstPage();
      do {
        draw();
      } while ( u8g.nextPage() );
    }
    delay(1000);                                                   // wait for xxx ms
  }                                             


  // ********************************* Subroutine AGL setting ******************************************

  void subroutine() {                                               // Set AGL & QNH
    var = 0;
    while (var < 1) {

      pinwaarde = digitalRead(7);                                   // Read pinvalue ecncoder switch
      if (pinwaarde == LOW)
      {
        mode++;
        delay(1000);
        if (mode == 3)                                              // Long press value encoder switch for break out of loop
          break;                                                    // Return to main
      }

      currentStateCLK = digitalRead(inputCLK); inputCLK;            // Read the current state of inputCLK
      if (currentStateCLK != previousStateCLK) {
        if (digitalRead(inputDT) != currentStateCLK) {
          counter --;
          encdir = "CCW";
        } else {
          // Encoder is rotating clockwise
          counter ++;
          encdir = "CW";
        }


        AGL = (bme.readAltitude(Sealevel_HPA));
        Serial.print("AGL = ");
        Serial.print (AGL + counter);                               // Print AGL modified
        Serial.println(" m");

        previousStateCLK = currentStateCLK;                         // Update previousStateCLK with the current state

      }
    }
  }]

Je hebt ergens een { of } haakje vergeten.
Daarom gaat er iets fout.
Dat kan komen doordat je 2 sketches hebt gecombineerd, en bij het selecteren en kopiëren van code minstens 2 fouten hebt gemaakt:
Je bent dus een haakje vergeten, en je hebt 2 keer een loop in je code staan.
Dat gaat nooit goed werken.

Je IDE probeert je te helpen.
Want behalve dat er een foutmelding komt, vertelt ie je ook waar ie denkt dat je de fout gemaakt hebt door de regelnummer en de positie op die regel te vermelden.
Verder helpt ie je de haakjes in de gaten te houden.
Zet je namelijk je cursor rechts van een haakje, dan zet de IDE een lichtblauw (eigenlijk turquoise) kadertje om het bijbehorende haakje.
Zo kom je er vrij snel achter waar je de mist in gaat met de haakjes.

Dank je, ga hiermee aan de slag.

Hopelijk los ik het zo op.

3 minuten later .....

Was een goede tip,

Het werkt nu !!

Nogmaals dank