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
  Arduino DUE mit Adafruit Accelerometer 8451 juergen001 16 497 15.04.2018 17:30
Letzter Beitrag: Tommy56
Sad Hilfe bei 2.4 TFT Display Harry Hirsch 37 1.272 15.04.2018 14:03
Letzter Beitrag: MicroBahner
  Arduino DUE mit Adafruit 16 Kanal Servo-Driver juergen001 3 164 09.04.2018 10:51
Letzter Beitrag: juergen001
  Schrifttypen einbinden für TFT Display Thor Wallhall 35 1.520 05.04.2018 22:24
Letzter Beitrag: Thor Wallhall
  Fehlende Einerstelle auf LCD Display Ardu2018 8 381 26.03.2018 09:45
Letzter Beitrag: Tommy56
  sensordaten auf OLED bringen Klawino 20 828 12.03.2018 12:00
Letzter Beitrag: Tommy56
  Arduino und Nextion Display Diskusguppy 16 902 08.03.2018 02:26
Letzter Beitrag: Diskusguppy
  Problem mit OLED 0.96" Display torsten_156 5 1.701 07.03.2018 23:27
Letzter Beitrag: Tommy56
  OLED Display 1,3" DonCamillo 1 179 07.03.2018 23:12
Letzter Beitrag: Tommy56
  OLED Schriftart ändern Klawino 1 209 07.03.2018 23:07
Letzter Beitrag: Tommy56

Gehe zu:


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