|

Gemakkelijke start met Arduino & Co

Microcontroller voor modelspoor

Voor onze lezers van het digitale magazine 2026 stellen we de programmacodes voor het artikel hier beschikbaar. Deze kunnen direct gekopieerd en in de ontwikkelomgeving Arduino IDE geplakt en van daaruit gecompileerd worden.

Hier is de code voor het eerste voorbeeld uit de post:

#include 
#include 
#include

#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire;, -1);

const char* doelen[] = {
  "Hersbruck r. d. Peg.",
  "Wuerzburg\nvia Neustadt a.d.Aisch\nen Kitzingen",
  "Neumarkt Opf.",
  "Bamberg Oberfr."
};
const int aantalDoelen = 4; // voer hier het aantal items in de array "doelen" in
int huidigDoel = 0;
unsigned long laatsteOmschakeling = 0;
const unsigned long interval = 5000; // 5 seconden

void setup() {
  if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
    for(;;); // Stop als display niet gevonden
  }
  display.clearDisplay();
  display.setTextSize(1);
  display.setTextColor(SSD1306_WHITE);
}

void loop() {
  unsigned long nu = millis();
  if (nu - laatsteSchakeling >= interval) {
    laatsteSchakeling = nu;
    huidigDoel = (huidigDoel + 1) % aantalDoelen; // volgend doel
    display.clearDisplay();
    display.setCursor(0,0);
    display.println(doelen[huidigDoel]);
    display.display();
  }
}

Hieronder vindt u het tweede codevoorbeeld, dat het deel vanaf „void loop“ vervangt:

void loop() {
  unsigned long jetzt = millis();
  if (jetzt - letzteUmschaltung >= intervall) {
    letzteUmschaltung = jetzt;
    aktuellesZiel = (aktuellesZiel + 1) % anzahlZiele; // nächstes Ziel
    display.clearDisplay();
    display.setCursor(0,20);
    display.println(ziele[aktuellesZiel]);
          // --- Zusatztext bei Ziel 1 ---
    if (aktuellesZiel == 0) {
      display.setCursor(0,0);
      display.println("5 min. spaeter");
      }
    else if (aktuellesZiel == 3) {
      display.setCursor(0,0);
      display.println("Heute Gleis 3 ")