Logo symbool op mijn stations display, hoe is dit mogelijk te maken?

logo symbool op mijn stations display, hoe is dit mogelijk te maken? ik heb een vertrek display gemaakt voor de nederlandse station, maar achter alle trein soorten staat een logo symbool van de NS, Arriva, Thalys enz, maar op welke manier en voor welke code heb je hiervoor nodig en moet je ook nog bestanden installeren.

ik gebruik een Oled 128x32 scherm

ik doe een foto bij met ik bedoel, de voorbeeld heeft een thalys symbool

hier de sketch

#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>


#define MSG1_PIN   2
#define MSG2_PIN   3
#define MSG3_PIN   4
#define MSG4_PIN   5
#define MSG5_PIN   6
#define MSG6_PIN   7
#define MSG7_PIN   8
#define MSG8_PIN   9
#define TMIN       5 // departure time of next train, minimum of random time
#define TMAX      13 // departure time of next train, maximum of random time


#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 32 // OLED display height, in pixels



byte hour, minute;
byte msgnr,msgnr_old, msgflag, msghour, msgminute;


// Declaration for an SSD1306 display connected to I2C (SDA, SCL pins)
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);


void calc_msg_time() {
  msgminute = minute + random(TMIN, TMAX);
  msghour = hour;
  if (msgminute > 59) {
    msghour = (msghour + 1) % 24;
    msgminute = msgminute - 60;
  }
}






void setup() {
  Serial.begin(115200);
  randomSeed (analogRead(0));
  hour   = random(7, 20);
  minute = random(0, 60);
  pinMode (MSG1_PIN, INPUT_PULLUP);
  pinMode(MSG2_PIN,  INPUT_PULLUP);
  pinMode (MSG3_PIN, INPUT_PULLUP);
  pinMode (MSG4_PIN, INPUT_PULLUP);
  pinMode (MSG5_PIN, INPUT_PULLUP);
  pinMode (MSG6_PIN, INPUT_PULLUP);
  pinMode (MSG7_PIN, INPUT_PULLUP);
  pinMode (MSG8_PIN, INPUT_PULLUP);


  if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { // Address
    Serial.println(F("SSD1306 allocation failed"));
    for(;;);
  }
  delay(2000);
  display.clearDisplay();


 
 
 
 
}






void loop() {


  // display time and messages
  if(!digitalRead(MSG1_PIN)) msgnr = 1;
  if(!digitalRead(MSG2_PIN)) msgnr = 2;
  if(!digitalRead(MSG3_PIN)) msgnr = 3;
  if(!digitalRead(MSG4_PIN)) msgnr = 4;
  if(!digitalRead(MSG5_PIN)) msgnr = 5;
  if(!digitalRead(MSG6_PIN)) msgnr = 6;
  if(!digitalRead(MSG7_PIN)) msgnr = 7;
 if(!digitalRead(MSG8_PIN)) msgnr = 8;


  if(msgnr != msgnr_old) {
    calc_msg_time();
    msgnr_old = msgnr;
  }


 
   display.setTextSize(1);
   display.setTextColor(WHITE);
    switch (msgnr) {
    case 1://vitrains
       display.setCursor(5,0);  display.println("BRUGGE");   
      display.setCursor(50,10); display.println("OOSTENDE");   
      display.setCursor(115,20); display.println("IC");
       display.setCursor(0, 20); 
  if(msghour < 10) display.print(" ");
  display.print(msghour);
  display.print(":");
  if(msgminute < 10) display.print("0");
  display.print(msgminute);
      display.display();
     
    break;
   
case 2://desiro
      display.setCursor(50,0);  display.println("MECHELEN");   
      display.setCursor(5,10); display.println("ANTWERPEN-CENTRAAL");   
      display.setCursor(115,20); display.println("S");
       display.setCursor(0, 20); 
  if(msghour < 10) display.print(" ");
  display.print(msghour);
  display.print(":");
  if(msgminute < 10) display.print("0");
  display.print(msgminute);
       
  display.display();
    break;


   
case 3://benelux
      display.setCursor(5,0);  display.println("ANTWERPEN-CENTRAAL");
      display.setCursor(50,10); display.println("AMSTERDAM CS");
      display.setCursor(115,20); display.println("IC");
       display.setCursor(0, 20); 
  if(msghour < 10) display.print(" ");
  display.print(msghour);
  display.print(":");
  if(msgminute < 10) display.print("0");
  display.print(msgminute);
       
  display.display();
    break;


   
    case 4://m6
      display.setCursor(5,0);  display.println("BRUGGE");   
      display.setCursor(50,10); display.println("BLANKENBERGE");   
      display.setCursor(115,20); display.println("IC");
       display.setCursor(0, 20); 
       if(msghour < 10) display.print(" ");
  display.print(msghour);
  display.print(":");
  if(msgminute < 10) display.print("0");
  display.print(msgminute);
       
  display.display();
       
 
    break;


    case 5://am54
      display.setCursor(50,0);  display.println("LEUVEN");   
      display.setCursor(5,10); display.println("LIEGE-GUILLEMINS");   
      display.setCursor(115,20); display.println("IC");
       display.setCursor(0, 20); 
       if(msghour < 10) display.print(" ");
  display.print(msghour);
  display.print(":");
  if(msgminute < 10) display.print("0");
  display.print(msgminute);
       
  display.display();


 
    break;
   
case 6://lsmodels
      display.setCursor(5,0);  display.println("Brussel");
      display.setCursor(50,10); display.println("Welkenraedt");
      display.setCursor(115,20); display.println("IC");
       display.setCursor(0, 20); 
  if(msghour < 10) display.print(" ");
  display.print(msghour);
  display.print(":");
  if(msgminute < 10) display.print("0");
  display.print(msgminute);
       
  display.display();
    break;


    case 7://classic
  display.print(msghour);
  display.print(":");
  if(msgminute < 10) display.print("0");
  display.print(msgminute);
      display.setCursor(42, 0); display.println("IC Direct");
      display.setCursor(0,12);  display.println("Maastricht");
      display.setCursor(0,22); display.println("Via Den Haag");
      display.setCursor(3,0);
         
  display.display();


 
    break;


    case 8://lsmodels
      display.setCursor(5,0);  display.println("Ettelbruck");
      display.setCursor(50,10); display.println("Luxembourg");
      display.setCursor(115,20); display.println("IR");
       display.setCursor(0, 20); 
  if(msghour < 10) display.print(" ");
  display.print(msghour);
  display.print(":");
  if(msgminute < 10) display.print("0");
  display.print(msgminute);
       
  display.display();
    break;
   
    }


    display.clearDisplay();
 
   
   
 
}


Definieer een bitmap met ruitjespapier en wiskunde (of schrijf een programma), of volg dit voorbeeld:

Declareer de bitmap-array() en toon vervolgens de bitmap.

bedankt voor de link, ik ben totaal 8,5 uur mee bezig geweest, maar heb het voormekaar heb tot nu 2 logo's in Arduino display gekregen, nu nog de sketsch aanpassen zodat de logo's achter Intercity, stoptrein, sneltrein enz, word gekoppeld met de juiste vervoerder, net zoals bij de voorbeeldfoto.

Op de voorbeeld foto staan de letters in het blauw, kan je dat verkrijgen met de blauwe versie van de display? en dan wel de witte achtergrond? Ik zal strak foto's plaatsen met het voorlopig resultaat en de script.

8.5... het is een fulltime baan! :slight_smile: (de volgende zal veel minder tijd kosten, of het zal 8,5 keer groter zijn).

De OLED die ik ken (0,91 en 0,96) zijn monochroom (wit of blauw of geel). Sommige hebben twee kleurlenzen (bovenste geel, onder blauw). Misschien een gekleurde film/acetaat gebruiken?

Wanneer je al een plaatje hebt, kun je ook een tooltje gebruiken om deze om te zetten naar een bitmap;
LCDAssistant (klik !) is daar een voorbeeld van, dus probeer dat eens.
Scheelt een hoop werk, zeker wanneer je het een beetje wil tweaken voor het beste resultaat.

ik heb al een plaatje van de ns logo, heb zelfs al omgezet naar arduino, werkt mooi, de volgende stap is om deze logo te verwerken in mijn stations diplay, heb de hele internet afgezocht naar een voorbeeld sketch, maar voorlopig zonder resultaat

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.