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();
}