Display achtergrond kleur, hoe pas je dit aan? an zwart naar wit? en witte letters, maar dat kan je wel aanpassen in de sketch, maar de achtergrond kleur is niet aangegeven.
hier de gebruikte 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();
}