- Labornetzteil AliExpress         
Ergebnis 1 bis 10 von 13

Thema: Raspberry Pi3 und zwei OLED Displays?

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #11
    HaWe
    Gast
    C++ ?

    dann probier mal die hier:

    Displays
    OLED 128x64 SSD1306, SH1106





    I2C Bus speed: STANDARD + FAST-I2C (100-400kHz, getestet)
    aktuelle Treiber-Version:
    http://hallard.me/adafruit-oled-display-driver-for-pi/
    https://github.com/hallard/ArduiPi_OLED
    https://github.com/jonesman/ArduiPi_OLED // neue I2C Treiber ohne sudo



    Anwendungsbeispiel:
    https://raspilab.blog/2015/03/31/mei...lay-ansteuern/

    Zur Verwendung mit Geany: zusätzlicher build-Parameter

    -lArduiPi_OLED // lowercase "-L"


    7 verschiedene OLED Typen werden unterstützt:
    0 Adafruit SPI 128x32 SSD1306
    1 Adafruit SPI 128x64 SSD1306
    2 Adafruit I2C 128x32 SSD1306
    3 Adafruit I2C 128x64 SSD1306
    4 Seeed I2C 128x64 SSD1308
    5 Seeed I2C 96x96 SSD1327
    6 NoName I2C 128x64 SH1106

    Den richtigen OLED Type muss man ausprobieren, bei mir funktioniert Type 6, d.h. also für den Konsole-Aufruf des Bespielprogramms in examples:

    sudo ./oled_demo --verbose --oled 6


    vereinfachter Start der demo mit festem I2C oled Type 6, ohne Command Line Parameter :
    Code:
    //----------------------------------------------------------------------
    int main(int argc, char **argv)
    {
      int i;
       
      // Oled supported display in ArduiPi_SSD1306.h
    
      // I2C change parameters to fit to your LCD
      if ( !display.init(OLED_I2C_RESET, 6) )
       exit(EXIT_FAILURE);
    
      display.begin();
       
      // init done
      
      //.... Code!
      
      display.close();
      
    } 
    
    //----------------------------------------------------------------------

    einfacher Testcode, testweise zusammen mit wiringPi :
    Code:
    //----------------------------------------------------------------------/*
     * 
     * 
     * OLED Display
     * plus wringPi  millis + delay
     *
     * http://hallard.me/adafruit-oled-display-driver-for-pi/
     * https://github.com/hallard/ArduiPi_OLED
     *  
     * ver 0001
     * 
     */
     
     
    #include <string.h>
    #include <unistd.h>
    #include <errno.h>
    #include <stdio.h>
    #include <stdint.h>
    #include <stdlib.h>
    #include <linux/I2C-dev.h>
    #include <sys/ioctl.h>
    #include <fcntl.h>
    #include <unistd.h>
    
    #include <stdbool.h>
    #include <string.h>
    #include <termio.h>
    
    #include <wiringPi.h>
    #include <wiringPiI2C.h>
    
    #include <ArduiPi_OLED_lib.h>
    #include <Adafruit_GFX.h>
    #include <ArduiPi_OLED.h>
    
    
    #define  byte  uint8_t
     
    
    // Instantiate the OLED display
    ArduiPi_OLED oledtft;
    
    
    void oled_cls() {
         oledtft.clearDisplay(); 
         oledtft.display(); 
    }
    
    
    void oled_printxy(int x, int y, char * str) {
         oledtft.setCursor(x,y);
         oledtft.print(str);
         oledtft.display(); 
    }
    
    
    
    
    // mimic conio.h kbhit
    bool kbhit(void)
    {
        struct termios original;
        tcgetattr(STDIN_FILENO, &original);
    
        struct termios term;
        memcpy(&term, &original, sizeof(term));
        term.c_lflag &= ~ICANON;
        tcsetattr(STDIN_FILENO, TCSANOW, &term);
    
        int characters_buffered = 0;
        ioctl(STDIN_FILENO, FIONREAD, &characters_buffered);
        tcsetattr(STDIN_FILENO, TCSANOW, &original);
        bool pressed = (characters_buffered != 0);
    
        return pressed;
    }
    
    
    //========================================================================= 
    
    
    
    int main() {
    
       int check;
       char sbuf[100];   
       uint32_t msec, millisav;
       
       // wiringPi   
       setenv("WIRINGPI_GPIOMEM", "1", 1);       // no sudo for gpios required
       check = wiringPiSetup();                  // init by wiringPi pin numbering
       if( check == -1 ) return 1;     
       
       // Oled supported display in ArduiPi_SSD1306.h
       // change parameters to fit to your LCD
       if ( !oledtft.init(OLED_I2C_RESET, 6) )
         exit(EXIT_FAILURE);
    
       oledtft.begin();
       
       // init done
      
       oled_cls();
    
       // test
     
       oledtft.setTextSize(1);
       oledtft.setTextColor(WHITE);
       oledtft.setTextSize(1); 
       oledtft.setCursor(0, 0);  oledtft.print(" 0 Hello, world!\n");
       oledtft.setCursor(0, 8);  oledtft.print(" 8 I2C OLED");  
       oledtft.setCursor(0,16);  oledtft.print("16 128x64 addr 0x3c"); // <<<<<<<<<<<<<<<<<<<<<<<<<<<<<< !!!!!
       oledtft.setCursor(0,24);  oledtft.print("24 8x21 char size=1");
       oledtft.setCursor(0,32);  oledtft.print("32 ");
       oledtft.setCursor(0,40);  oledtft.print("40 ");
       oledtft.setCursor(0,48);  oledtft.print("48 456789112345678921");
       oledtft.setCursor(0,56);  oledtft.print("56 ");
       oledtft.display();
       sleep(1);
       oled_cls();
    
    
       millisav=millis();
       while(1) {
         msec = millis() - millisav;
         
         sprintf(sbuf, " millisec = %ld \n", msec);        
         printf(sbuf);     
         oledtft.setTextColor(WHITE, BLACK);
         oled_printxy( 0,16, sbuf);
         
         if (kbhit())
         {
             int c = getchar();
             if(c==27) break;
         }   
         delay(500);   
       }
       
       oled_cls();
       oledtft.close();
       
       return (0);
    }
    
    
    //----------------------------------------------------------------------


    du kannst ja C++, wschl kriegst du das auch dann mit 2 versch. Instanzen hin...
    Geändert von HaWe (15.08.2018 um 11:12 Uhr) Grund: addr 0x3c

Ähnliche Themen

  1. Antworten: 0
    Letzter Beitrag: 04.07.2018, 10:00
  2. Asus Project Precog: Convertible nutzt zwei Displays als Tastatur oder Anzeige
    Von Roboternetz-News im Forum Neuigkeiten / Technik-News / Nachrichten / Aktuelles
    Antworten: 0
    Letzter Beitrag: 05.06.2018, 16:42
  3. OLED Adapter
    Von TomT. im Forum Suche bestimmtes Bauteil bzw. Empfehlung
    Antworten: 2
    Letzter Beitrag: 28.07.2009, 21:39
  4. TFT OLED AMOLED 4 bis 5 ZOLL
    Von Siro im Forum Suche bestimmtes Bauteil bzw. Empfehlung
    Antworten: 4
    Letzter Beitrag: 07.04.2009, 12:28
  5. Zwei getrennt regelbare PWM-Signale an zwei Pins von PortC
    Von Hender im Forum C - Programmierung (GCC u.a.)
    Antworten: 12
    Letzter Beitrag: 10.02.2006, 10:44

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

12V Akku bauen