INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Adafruit Display 128x32 SPI OLED
27.04.2014, 21:35
Beitrag #1
Adafruit Display 128x32 SPI OLED
Hallo,

Ich hoffe ihr könnt mir weiterhelfen. Ich versuche schon zeit Tagen ein grafisches OLED Display(Adafruit Monochrome 128x32 SPI OLED graphic display) zum laufen zu bekommen. Bzw. es geht soweit mit dem Beispielcode.

Blos benötige ich die ganzen animierten Funktionen nicht. Ich benötige nur die Funktionen (Text und Bitmap). Bekommen den Beispielcode einfach nicht abgändert auf die benötigsten Funktionen. Habe auch nix im Internet gefunden wo genauer auf den Code draufeingegangen wird.

Ich würde mich freunen wenn mir jemand den Beispielcode vereinfachen könnte so das ein Bitmap und ein text ausgeben wird. Oder mir zumindest Hilfestellung geben könnte.

CODE:
https://github.com/adafruit/Adafruit_SSD...32_spi.ino

Grüße
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
28.04.2014, 06:14
Beitrag #2
RE: Adafruit Display 128x32 SPI OLED
Moin audis3stage4,

da ich das Teil selbst nicht habe (also nicht testen konnte), habe ich mal alles bis auf Text- und Bitmapfunktionen rausgenommen. Durch den Compiler gehts erstmal ohne Probleme durch.
Hier der Code:
Code:
/*********************************************************************
This is an example for our Monochrome OLEDs based on SSD1306 drivers
Pick one up today in the adafruit shop!
------> http://www.adafruit.com/category/63_98
This example is for a 128x32 size display using SPI to communicate
4 or 5 pins are required to interface
Adafruit invests time and resources providing this open source code,
please support Adafruit and open-source hardware by purchasing
products from Adafruit!
Written by Limor Fried/Ladyada for Adafruit Industries.
BSD license, check license.txt for more information
All text above, and the splash screen must be included in any redistribution
*********************************************************************/
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
// If using software SPI (the default case):
#define OLED_MOSI 9
#define OLED_CLK 10
#define OLED_DC 11
#define OLED_CS 12
#define OLED_RESET 13
Adafruit_SSD1306 display(OLED_MOSI, OLED_CLK, OLED_DC, OLED_RESET, OLED_CS);
/* Uncomment this block to use hardware SPI
#define OLED_DC 6
#define OLED_CS 7
#define OLED_RESET 8
Adafruit_SSD1306 display(OLED_DC, OLED_RESET, OLED_CS);
*/
#define NUMFLAKES 10
#define XPOS 0
#define YPOS 1
#define DELTAY 2
#define LOGO16_GLCD_HEIGHT 16
#define LOGO16_GLCD_WIDTH 16
static const unsigned char PROGMEM logo16_glcd_bmp[] =
{ B00000000, B11000000,
  B00000001, B11000000,
  B00000001, B11000000,
  B00000011, B11100000,
  B11110011, B11100000,
  B11111110, B11111000,
  B01111110, B11111111,
  B00110011, B10011111,
  B00011111, B11111100,
  B00001101, B01110000,
  B00011011, B10100000,
  B00111111, B11100000,
  B00111111, B11110000,
  B01111100, B11110000,
  B01110000, B01110000,
  B00000000, B00110000
};
#if (SSD1306_LCDHEIGHT != 32)
#error("Height incorrect, please fix Adafruit_SSD1306.h!");
#endif
void setup() {
  Serial.begin(9600);
  // by default, we'll generate the high voltage from the 3.3v line internally! (neat!)
  display.begin(SSD1306_SWITCHCAPVCC);
  // init done
  display.display(); // show splashscreen
  delay(2000);
  display.clearDisplay(); // clears the screen and buffer
  // text display tests
  display.setTextSize(1);
  display.setTextColor(WHITE);
  display.setCursor(0, 0);
  display.println("Hello, world!");
  display.setTextColor(BLACK, WHITE); // 'inverted' text
  display.println(3.141592);
  display.setTextSize(2);
  display.setTextColor(WHITE);
  display.print("0x"); display.println(0xDEADBEEF, HEX);
  display.display();
  delay(2000);
  // miniature bitmap display
  display.clearDisplay();
  display.drawBitmap(30, 16, logo16_glcd_bmp, 16, 16, 1);
  display.display();
  // invert the display
  display.invertDisplay(true);
  delay(1000);
  display.invertDisplay(false);
  delay(1000);
  // draw a bitmap icon and 'animate' movement
  testdrawbitmap(logo16_glcd_bmp, LOGO16_GLCD_HEIGHT, LOGO16_GLCD_WIDTH);
}
void loop() {
}
void testdrawbitmap(const uint8_t *bitmap, uint8_t w, uint8_t h) {
  uint8_t icons[NUMFLAKES][3];
  // initialize
  for (uint8_t f = 0; f < NUMFLAKES; f++) {
    icons[f][XPOS] = random(display.width());
    icons[f][YPOS] = 0;
    icons[f][DELTAY] = random(5) + 1;
    Serial.print("x: ");
    Serial.print(icons[f][XPOS], DEC);
    Serial.print(" y: ");
    Serial.print(icons[f][YPOS], DEC);
    Serial.print(" dy: ");
    Serial.println(icons[f][DELTAY], DEC);
  }
  while (1) {
    // draw each icon
    for (uint8_t f = 0; f < NUMFLAKES; f++) {
      display.drawBitmap(icons[f][XPOS], icons[f][YPOS], logo16_glcd_bmp, w, h, WHITE);
    }
    display.display();
    delay(200);
    // then erase it + move it
    for (uint8_t f = 0; f < NUMFLAKES; f++) {
      display.drawBitmap(icons[f][XPOS], icons[f][YPOS], logo16_glcd_bmp, w, h, BLACK);
      // move it
      icons[f][YPOS] += icons[f][DELTAY];
      // if its gone, reinit
      if (icons[f][YPOS] > display.height()) {
        icons[f][XPOS] = random(display.width());
        icons[f][YPOS] = 0;
        icons[f][DELTAY] = random(5) + 1;
      }
    }
  }
}
void testscrolltext(void) {
  display.setTextSize(2);
  display.setTextColor(WHITE);
  display.setCursor(10, 0);
  display.clearDisplay();
  display.println("scroll");
  display.display();
  display.startscrollright(0x00, 0x0F);
  delay(2000);
  display.stopscroll();
  delay(1000);
  display.startscrollleft(0x00, 0x0F);
  delay(2000);
  display.stopscroll();
  delay(1000);
  display.startscrolldiagright(0x00, 0x07);
  delay(2000);
  display.startscrolldiagleft(0x00, 0x07);
  delay(2000);
  display.stopscroll();
}
Hope it helps!

Grüße Ricardo

Nüchtern betrachtet...ist besoffen besser Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
29.04.2014, 21:16
Beitrag #3
RE: Adafruit Display 128x32 SPI OLED
Hey vielen dank @rkuehle. Soweit geht alles. Habe auch den Spash Screen mit einem andern bmp versehen können, aber wenn ich versuche das gleiche bmp mit der Funktion "display.drawBitmap(0, 0, logo_bmp, 128, 32, WHITE);" auszugeben erscheit ein schräkliches Bild, was nichtmal annähernd wie mein bmp auseht.

Ich habe im Internet gesehen das mehrer dieses Problem haben, habe aber kein Lösung finden können.

Das bmp wurde wie in der Anleitung von adafruit umgewandelt und eingefügt.

const unsigned char logo_bmp [] = {
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,
usw....
};

void setup() {

display.clearDisplay();
display.drawRect(0,0, 128, 32, WHITE);
display.drawBitmap(0, 0, logo_bmp, 128, 32, WHITE);
display.display();
}

gruß[/php]
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
30.04.2014, 05:19 (Dieser Beitrag wurde zuletzt bearbeitet: 30.04.2014 07:06 von rkuehle.)
Beitrag #4
RE: Adafruit Display 128x32 SPI OLED
Moin,

Zitat:Das bmp wurde wie in der Anleitung von adafruit umgewandelt und eingefügt.
Wo steht denn die Anleitung?
Code:
const unsigned char logo_bmp [] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00....
In den examples ist dies mit
Code:
static const unsigned char PROGMEM
deklariert, also in den flash-Speicher ausgelagert. Macht auch Sinn, da SRAM für den Sketch freigehalten wird.
Ebenso sind mit
Code:
#define LOGO16_GLCD_HEIGHT
#define LOGO16_GLCD_WIDTH
die Abmessungen deklariert. Scheint bei dir zu fehlen?

Grüße Ricardo

Nüchtern betrachtet...ist besoffen besser Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  matrix display elegoo uno R3 starter set lecker16 7 158 23.11.2016 21:14
Letzter Beitrag: Bitklopfer
  Adafruit 1,8" tft ossilampe 13 230 12.11.2016 00:07
Letzter Beitrag: ossilampe
  Adafruit 2.8" Color TFT Touchscreen mittlig1977 3 214 14.10.2016 22:23
Letzter Beitrag: Tommy56
  adafruit V2.3 Shield Hangloose 6 298 08.09.2016 17:13
Letzter Beitrag: rpt007
  LCD Display plötzlich komische Zeichen Jessi97 2 244 28.07.2016 11:34
Letzter Beitrag: Bitklopfer
  PWM-Lüfter mit Adafruit Motor-Shield steuern? phischmi 9 465 22.07.2016 18:06
Letzter Beitrag: phischmi
  Altes Digitales Display mit Text/Bits durch Genuino Micro versorgen - SPI-Bibliothek? RollingStone 0 206 25.06.2016 17:46
Letzter Beitrag: RollingStone
  Adafruit SD-master / logger shield: Fehler beim 2. Kompilieren kl-ing 3 337 06.06.2016 16:07
Letzter Beitrag: Bitklopfer
  Adafruit Gemma Board kommt nicht in den Bootloader-Modus! Jack Sparrow 2 330 09.04.2016 12:10
Letzter Beitrag: hotsystems
  Problem mit OLED 0.96" Display torsten_156 3 546 03.04.2016 15:10
Letzter Beitrag: hotsystems

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste