Tekst groter op Oled display

Arduino specifieke Software
Berichten: 47
Geregistreerd: 02 Dec 2018, 12:19

Tekst groter op Oled display

Berichtdoor Looitje » 24 Mei 2022, 16:15

Voor een encoder gebruik ik onderstaande code en werkt perfect maar de tekst is te klein.
Hoe krijg ik een grote tekst op het display? Ik verwacht zoiets als u8g.setsize(); maar kan niets in die aard vinden.

Code: Alles selecteren
// http://domoticx.com/arduino-rotary-encoder-met-oled-scherm/
// U8glib Bibliotheek importeren
#include "U8glib.h"
// U8glib Bibliotheek configureren voor het juiste display
U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_DEV_0|U8G_I2C_OPT_FAST); // Dev 0, Fast I2C / TWI
 
// Encoder pins configureren.
int pinEncA=2;
int pinEncB=3;
 
static byte abOud;       // Initialiseer status.
volatile int teller = 0; // rotatie teller.
int teller_oud;          // oude rotatie teller.
 
// Waarden voor variabel getal reserveren.
enum {BufSize=6};
char tellerStr[BufSize];
 
void setup() {
  // Encoder pinnen instellen.
  pinMode(pinEncA, INPUT);
  pinMode(pinEncB, INPUT);
 
  // Interrupts instellen (pin hoog-laag verandering).
  // Interrupt 0 = Pin 2 op de Arduino UNO.
  // Interrupt 1 = Pin 3 op de Arduino UNO.
  attachInterrupt(0, pinActie, CHANGE);
  attachInterrupt(1, pinActie, CHANGE);
// u8g.setFont(u8g_font_6x10);
  u8g.setFont(u8g_font_5x8); // Lettertype instellen voor u8glib.
}
 
void loop() {
  // IF loop wanneer er aan de encoder is gedraaid.
  if (teller_oud != teller) {
    teller_oud = teller; 
    snprintf(tellerStr, BufSize, "%d", teller);  // Converteer de "teller" INT naar STR (tbv OLED scherm)
 
    // OLED scherm loop.
    u8g.firstPage(); 
    do {
      u8g.drawStr(0, 10, "Encoder:");
     
      u8g.drawBox(0, 14, 128, 16);    // Teken een witte rechthoek, 0px vanaf links, 14px van boven, 128px breed, 16px hoog.
      u8g.setColorIndex(0);           // zet kleur negatief (pixel uit).
      u8g.setScale2x2();              // maak het lettertype 2x groter.
      u8g.drawStr(25, 14, tellerStr); // print "teller" tekst.
     
      u8g.undoScale();                // zet het lettertype weer terug.
      u8g.setColorIndex(1);           // zet de kleur positief (pixel aan).
    } while( u8g.nextPage() );
  }
  // Overige code...
}
 
// Wanneer een interrupt heeft plaatsgevonden, lees de input pinnen, bereken nieuwe status, pas de telling aan.
void pinActie() {
  enum { upMask = 0x66, downMask = 0x99 };
  byte abNieuw = (digitalRead(pinEncA) << 1) | digitalRead(pinEncB);
  byte criteria = abNieuw^abOud;
  if (criteria==1 || criteria==2) {
    if (upMask & (1 << (2*abOud + abNieuw/2)))
     teller++;    // tel naar boven.
     else teller--; // tel naar beneden.
  }
  abOud = abNieuw; // bewaar nieuwe status.
}


Alvast bedankt en vriendelijke groet, Looitje
Met vriendelijke groet, Looitje

Advertisement

Berichten: 4064
Geregistreerd: 16 Okt 2013, 14:31
Woonplaats: s hertogenbosch

Re: Tekst groter op Oled display

Berichtdoor shooter » 25 Mei 2022, 19:35

zoek een juiste library, want de letters moeten uit een database komen. net zoals een scherm trouwens, want tegenwoordig heb je schermen die met een vector werken en die dus elke grootte aankunnen echter een matrix is ook heel normaal vroeger.
paul deelen
shooter@home.nl

Berichten: 47
Geregistreerd: 02 Dec 2018, 12:19

Re: Tekst groter op Oled display

Berichtdoor Looitje » 25 Mei 2022, 19:41

Bedankt Paul
Met vriendelijke groet, Looitje

Berichten: 1
Geregistreerd: 02 Jun 2022, 12:43

Re: Tekst groter op Oled display

Berichtdoor Rudi.A. » 02 Jun 2022, 13:55

u8g.setScale2x2(); maakt alles groter, eigenlijk halveert het de resolutie van je display.
Alles wat je naar het display stuurt is groter en staat op de aangepaste locatie.

Beter kan je met u8g.setFont(font); een ander groter lettertype kiezen
De fonts zijn de .vlw bestanden die in de data directory van je project zitten.
Desnoods kan je met externe software (bijvoorbeeld processing) .ttf fonts omzetten naar .vlw

Gr,
Rudi

Berichten: 47
Geregistreerd: 02 Dec 2018, 12:19

Re: Tekst groter op Oled display

Berichtdoor Looitje » 02 Jun 2022, 17:15

Dag Rudi, heel goed zo, bedankt en vriendelijke groet,
Looitje
Met vriendelijke groet, Looitje

Terug naar Arduino software

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 25 gasten