Doel:€250.00
Donaties:€0.00

Per saldo:€-250.00

Steun ons nu!

Laatst bijgewerkt
op 03-12-2025

Vacature: secretaris bestuur
Algemeen

De stichting

Recente berichten

Nominatie cultuurprijs MSV Post B door Rsd1000
Vandaag om 02:38:52
Al mijn goede ideeën... door bask185
Vandaag om 00:32:31
Materieel verzameling van Michiel(NDS) door neudalhausenstadbahn
Vandaag om 00:07:35
Digikeijs DR5000 Centrale, vragen en antwoorden door Joz
17 February 2026, 23:53:29
Infrabel compilatie door BrightonBelle
17 February 2026, 23:33:12
Mallnitzer Tauernbahnstrecke ÖBB N Spoor door Schachbrett
17 February 2026, 23:17:28
Nieuw huis, nieuwe baan door Benelux795
17 February 2026, 23:03:24
kan ik een roco relais schakelen met een servo decoder door Dirk
17 February 2026, 23:02:46
Roco WR4üe-28 met computernummers en DB-keks door Benelux795
17 February 2026, 22:53:29
Bentheimer Eisenbahn, gisteren, vandaag en morgen. door Hans Reints
17 February 2026, 22:52:33
D-treinen naar/van Parijs in de jaren 70 door IJmc
17 February 2026, 22:25:54
PB Models kondigt een NS Buffel aan! door Daan!
17 February 2026, 21:53:49
Die Sauerlandbahn - Tijdperk III door defender
17 February 2026, 21:52:21
Het oude station Blaak in H0 1970 - 1993 door defender
17 February 2026, 21:41:11
Holland Scale huisjes bouwen en pimpen. door NS264
17 February 2026, 21:41:05
Nederland jaren 50 op basis van mijn roots door defender
17 February 2026, 21:37:24
Houten Plus zaterdag 21 februari 2026 door Ronald69
17 February 2026, 20:39:30
Toon hier je nieuwe (model-) spooraanwinst(en)... door Paulus
17 February 2026, 20:27:09
Momentschakelaar met "klik" door Albert de Heer
17 February 2026, 20:06:51
Vraagje over servo aansluiting door Te 2/2
17 February 2026, 19:36:48
Goppenstein (CH) ontsporing (16 februari 2026) door Te 2/2
17 February 2026, 19:34:07
Ombouw/Pimpen Bolle neuzen door bollen neus
17 February 2026, 19:21:28
De bouw van mijn modelbaan in Thailand door puntenglijder
17 February 2026, 19:17:24
Spoorwegmuseum in zwaar weer door Remunj
17 February 2026, 19:13:40
Ondervloer Fleischmann Profi door Manusjevanalles
17 February 2026, 19:13:00
Internationale trein vrijdag 13-2-2026 rond 13:50 nabij Rijssen door Valéry
17 February 2026, 18:23:36
On30 diorama: Sedona Red Rock Canyon, AZ door Hans1963
17 February 2026, 18:14:32
Gemeentetram Eemstede door R1954
17 February 2026, 18:01:26
Vijfhuis (v.h. Frotterdam) door StefanNL_Plays
17 February 2026, 17:48:00
Nederlands-materieel in Spoor-1 door daveric
17 February 2026, 17:29:24
  

Auteur Topic: lampjes in huizen willekeurig schakelen  (gelezen 15158 keer)

Ronald Schreuder

  • Offline Offline
  • Berichten: 74
Re: lampjes in huizen willekeurig schakelen
« Reactie #45 Gepost op: 23 July 2025, 20:07:53 »
Ok, duidelijk.
Bert, als het licht te fel is maak ik of de weerstand hoger of zet er een extra led in serie bij.
Bas, duidelijk. Goed dat het zegt. Maar de gnd gebruik ik wel toch? En ik heb DC trafo's
Bellejt, oke komt goed.

Ik ga morgen eerst even iets aansluiten, en kijken of het werkt.
Bas of Bert, kan ik de output voor de straatlantaarns een paar keer laten knipperen om hem dan constant te laten branden?
« Laatst bewerkt op: 23 July 2025, 20:13:18 door Ronald Schreuder »

bert55

  • Offline Offline
  • Berichten: 1007
Re: lampjes in huizen willekeurig schakelen
« Reactie #46 Gepost op: 23 July 2025, 20:16:12 »
, kan ik de output voor de straatlantaarns een paar keer laten knipperen om hem dan constant te laten branden?

Dat kan ik er wel bij jongen. Weet niet of me dat binnen een paar dagen lukt ivm bezigheden.
Dan wordt het een gescheiden routine van de random leds.

Nog wel een vraag:
Hoe wil je de lamp in- en uitschakelen?
Kan met een simpele schakelaar op een ingang van de Nano maar in plaats daarvan of daarnaast ook met een lichtgevoelige sensor.
« Laatst bewerkt op: 23 July 2025, 20:33:41 door Bert55 »
Met vriendelijke groet, Bert
Märklin, DCCnext, ECOS
Witmoosdorf afgebroken, Witmoos 2 wordt opgestart na de verhuizing

Ronald Schreuder

  • Offline Offline
  • Berichten: 74
Re: lampjes in huizen willekeurig schakelen
« Reactie #47 Gepost op: 23 July 2025, 20:57:30 »
Geweldig, heeft geen haast. Inschakelen gaat dmv een schakelaar. Evt later te vervangen door een relais/decoder te bedienen vanuit Itrain.

Ronald
« Laatst bewerkt op: 23 July 2025, 20:59:31 door Ronald Schreuder »

bert55

  • Offline Offline
  • Berichten: 1007
Re: lampjes in huizen willekeurig schakelen
« Reactie #48 Gepost op: 23 July 2025, 20:59:17 »
Komt goed
Met vriendelijke groet, Bert
Märklin, DCCnext, ECOS
Witmoosdorf afgebroken, Witmoos 2 wordt opgestart na de verhuizing

Klaas Zondervan

  • Offline Offline
  • Berichten: 27267
    • Pagina van klaas
Re: lampjes in huizen willekeurig schakelen
« Reactie #49 Gepost op: 23 July 2025, 21:20:44 »
kan ik de output voor de straatlantaarns een paar keer laten knipperen om hem dan constant te laten branden?
Waarom wil je dat? Het is een misverstand dat straatlantaarns met TL knipperen bij het inschakelen. Die armaturen zijn starterloos, er zitten zelfstartende buizen in en die knipperen niet.
Projecten:
Dubbelom
Halte Assel
Geluk, dat is vooraan staan als de overweg gesloten is.

bert55

  • Offline Offline
  • Berichten: 1007
Re: lampjes in huizen willekeurig schakelen
« Reactie #50 Gepost op: 23 July 2025, 21:40:15 »
Je hebt vast gelijk Klaas maar voor het leuk is ook een reden  ;)

Ronald.
Aansturen kan ook via DCC. Relais zijn wat old school.
Zelf gebruik is een (eigen) at mega ic op een print met connectoren en een DCC ingang.
Namaken is een eitje..
Met vriendelijke groet, Bert
Märklin, DCCnext, ECOS
Witmoosdorf afgebroken, Witmoos 2 wordt opgestart na de verhuizing

Ronald Schreuder

  • Offline Offline
  • Berichten: 74
Re: lampjes in huizen willekeurig schakelen
« Reactie #51 Gepost op: 23 July 2025, 22:03:34 »
Waarom wil je dat? Het is een misverstand dat straatlantaarns met TL knipperen bij het inschakelen. Die armaturen zijn starterloos, er zitten zelfstartende buizen in en die knipperen niet.

Omdat ik dat leuk vind.
Niet knipperen vind ik saai.

Ronald Schreuder

  • Offline Offline
  • Berichten: 74
Re: lampjes in huizen willekeurig schakelen
« Reactie #52 Gepost op: 23 July 2025, 22:04:44 »
Je hebt vast gelijk Klaas maar voor het leuk is ook een reden  ;)

Ronald.
Aansturen kan ook via DCC. Relais zijn wat old school.
Zelf gebruik is een (eigen) at mega ic op een print met connectoren en een DCC ingang.
Namaken is een eitje..

Ja het wordt waarschijnlijk aansturen via een DCC decoder. Heb nog wel ergens een vrije uitgang. Komt goed.

Klaas Zondervan

  • Offline Offline
  • Berichten: 27267
    • Pagina van klaas
Re: lampjes in huizen willekeurig schakelen
« Reactie #53 Gepost op: 23 July 2025, 23:08:09 »
Omdat ik dat leuk vind.
Niet knipperen vind ik saai.
Straatverlichting is ook hartstikke saai. Het gaat aan als de zon onder gaat en weer uit als de zon opkomt, elke dag hetzelfde.
Maar als jij het leuk vindt, lekker laten knipperen.
Projecten:
Dubbelom
Halte Assel
Geluk, dat is vooraan staan als de overweg gesloten is.

bask185

  • Offline Offline
  • Berichten: 5270
Re: lampjes in huizen willekeurig schakelen
« Reactie #54 Gepost op: 24 July 2025, 10:57:31 »
Flikkerende TL verlichting:
https://youtu.be/LAA6AyNP_vk?t=15

Citaat
Ja het wordt waarschijnlijk aansturen via een DCC decoder.
Dat kan, maar ook dan moet je willicht iets van elektronica er aan hangen. Bij een spoeldecoder meestal niet, maar dat kan per decoder verschillen hoe ze werken.

Zelf zou ik een DCC printje nemen. Die hang je ook met 3 draden aan je arduino. Via de arduino IDE library installer, kan je de NMRA DCC library installeren en dan kan de arduino zelf DCC commando's decoderen. Het is niet zo veel code om te kloppen


Mvg,

Bas
Train-Science.com
Train-Science github
It ain't rocket science ;-)

Ronald Schreuder

  • Offline Offline
  • Berichten: 74
Re: lampjes in huizen willekeurig schakelen
« Reactie #55 Gepost op: 24 July 2025, 13:56:32 »
Blink is gelukt, geen problemen bij de installatie.
Led knippert en kan zelf de tijden of het knipperen wijzigen, leuk!
Nu even leds verzamelen voor mijn huisjes om de boel goed te testen.

bert55

  • Offline Offline
  • Berichten: 1007
Re: lampjes in huizen willekeurig schakelen
« Reactie #56 Gepost op: 24 July 2025, 15:08:05 »
Mooi Ronald (y)
Heb een begin gemaakt met het inschakel verschijnsel.
Met vriendelijke groet, Bert
Märklin, DCCnext, ECOS
Witmoosdorf afgebroken, Witmoos 2 wordt opgestart na de verhuizing

bert55

  • Offline Offline
  • Berichten: 1007
Re: lampjes in huizen willekeurig schakelen
« Reactie #57 Gepost op: 24 July 2025, 19:33:11 »
Kijk maar of je hier wat aan hebt. Ik kan het als subroutine opnemen in de andere sketch

// Flikkeren -> Halve helderheid -> Fade-up -> Pauze -> Herstart
const int pwmPin = 9;     // PWM output pin voor Led
const int enablePin = 2;  // Enable pin met pull-up, start de sequentie bij schakelen naar 0

//  parameters
const int minBrightness = 60;          // minimale helderheid
const int maxBrightness = 255;         // maximale helderheid
const int warmupDuration = 5000;       // flikkertijd
const int fullBrightnessPause = 3000;  // Na flikkeren en fade up start de sequentie na de ingesteld tijd opnieuw
int fadeDuration = 5000;               // na flikkeleren start de Led op 50% helderheid en gaat in de ingeschakelde tijd naar max

// Status variabelen
enum LightState { OFF, FLICKER, HALF, FADE_UP, PAUSE };
LightState currentState = OFF;
unsigned long stateStartTime;
int currentBrightness = 0;
bool isEnabled = false;

void setup() {
  pinMode(pwmPin, OUTPUT);
  pinMode(enablePin, INPUT_PULLUP);
  analogWrite(pwmPin, 0);
  randomSeed(analogRead(5));
}

void loop() {
  unsigned long currentTime = millis();
  unsigned long stateTime = currentTime - stateStartTime;

  // Schakelaar logica
  if (!digitalRead(enablePin) && !isEnabled) {
    isEnabled = true;
    currentState = FLICKER;
    stateStartTime = currentTime;
  } else if (digitalRead(enablePin) && isEnabled) {
    isEnabled = false;
    currentState = OFF;
    analogWrite(pwmPin, 0);
  }

  if (!isEnabled) return;

  // State machine voor laslicht gedrag
  switch (currentState) {
    case FLICKER:
      if (stateTime < warmupDuration) {
        // *** fase
        currentBrightness = random(minBrightness, maxBrightness * 0.7);
        analogWrite(pwmPin, currentBrightness);
        delay(50);
      } else {
        currentState = HALF;
        stateStartTime = currentTime;
        currentBrightness = maxBrightness / 2;
        analogWrite(pwmPin, currentBrightness);
      }
      break;

    case HALF:
      if (stateTime >= 1000) {
        currentState = FADE_UP;
        stateStartTime = currentTime;
      }
      break;

    case FADE_UP:
      {
        float progress = min(1.0, (float)stateTime / fadeDuration);
        currentBrightness = maxBrightness / 2 + (maxBrightness / 2) * progress;
        analogWrite(pwmPin, currentBrightness);

        if (progress >= 1.0) {
          currentState = PAUSE;
          stateStartTime = currentTime;
        }
        break;
      }

    case PAUSE:
      if (stateTime >= fullBrightnessPause) {
        // Herstart de hele sequentie
        currentState = FLICKER;
        stateStartTime = currentTime;
      }
      break;
  }
}
Met vriendelijke groet, Bert
Märklin, DCCnext, ECOS
Witmoosdorf afgebroken, Witmoos 2 wordt opgestart na de verhuizing

Ronald Schreuder

  • Offline Offline
  • Berichten: 74
Re: lampjes in huizen willekeurig schakelen
« Reactie #58 Gepost op: 25 July 2025, 11:54:04 »
Ik ga er naar kijken, bedankt!

bert55

  • Offline Offline
  • Berichten: 1007
Re: lampjes in huizen willekeurig schakelen
« Reactie #59 Gepost op: 25 July 2025, 21:46:43 »
laatste post even weer gewist, moet nog even wat corrigeren.

Net gedaan, ik had een verkeerde code. gekopieerd.

Hieronder de combinatie van beide, de random Leds en de Led met inschakelverschijnsel.
In regel 57 en 58 kun je 1 of beide subroutines uitschakelen met // vooraan.

Nog een correctie, ik zag net dat de random Leds allemaal aanblijven indien je de subroutine disabled, de volgende code aangepast:
 was:   // digitalWrite(ledPins, ledStates);
  nu: digitalWrite(ledPins, LOW);

Pas op dat poorten 2 en 9 gereserveerd zijn voor de Led met inschakelverschijnsel.

// next lines for randomLeds
// Configuratie
const int numLeds = 5;                           // Aantal LED's
const int ledPins[numLeds] = { 3, 4, 5, 6, 7 };  // Pinnen waar de LED's op aangesloten zijn, pins 2 & 9 reserved for LedFlash
// Min en max aan-tijden in milliseconden voor elke LED
const unsigned long minTimes[numLeds] = { 1000, 1000, 1000, 1000, 1000 };  // Minimale aan-tijd per LED
const unsigned long maxTimes[numLeds] = { 3000, 3000, 3000, 3000, 3000 };  // Maximale aan-tijd per LED

// Variabelen voor timing
unsigned long previousTimes[numLeds];  // Laatste keer dat elke LED veranderde
unsigned long intervals[numLeds];      // Huidige interval voor elke LED
bool ledStates[numLeds];               // Huidige staat van elke LED

// next lines for ledFlash
// Flikkeren -> Halve helderheid -> Fade-up -> Pauze -> Herstart
const int pwmPin = 9;     // PWM output pin voor Led
const int enablePin = 2;  // Enable pin met pull-up, start de sequentie bij schakelen naar 0

//  parameters
const int minBrightness = 60;          // minimale helderheid
const int maxBrightness = 255;         // maximale helderheid
const int warmupDuration = 5000;       // flikkertijd
const int fullBrightnessPause = 3000;  // Na flikkeren en fade up start de sequentie na de ingesteld tijd opnieuw
int fadeDuration = 5000;               // na flikkeren start de Led op 50% helderheid en gaat in de ingeschakelde tijd naar max

// Status variabelen
enum LightState { OFF,
                  FLICKER,
                  HALF,
                  FADE_UP,
                  PAUSE };
LightState currentState = OFF;
unsigned long stateStartTime;
int currentBrightness = 0;
bool isEnabled = false;

void setup() {
  Serial.begin(9600);
  // next lines for randomLeds
  // Stel alle LED-pinnen in als OUTPUT
  // Initialiseer LED pinnen als OUTPUT
  for (int i = 0; i < numLeds; i++) {
    pinMode(ledPins[i], OUTPUT);
    ledStates[i] = LOW;
    // digitalWrite(ledPins[i], ledStates);
    digitalWrite(ledPins[i], LOW);
    previousTimes[i] = 0;
    intervals[i] = random(minTimes, maxTimes);
  }
  // next lines for ledFlash
  pinMode(pwmPin, OUTPUT);
  pinMode(enablePin, INPUT_PULLUP);
  analogWrite(pwmPin, 0);
}

void loop() {

  randomLeds();  // switch random leds on and off, put // in front of line to switch off
  ledFlash();  // switch led on  with flikkering effect, put // in front of line to switch off
}
void randomLeds() {
  unsigned long currentTime = millis();

  for (int i = 0; i < numLeds; i++) {
    // Controleer of het tijd is om de LED te schakelen
    if (currentTime - previousTimes[i] >= intervals[i]) {
      // Schakel de LED
      ledStates[i] = !ledStates[i];
      digitalWrite(ledPins[i], ledStates[i]);

      // Update de vorige schakeltijd
      previousTimes[i] = currentTime;

      // Bepaal een nieuw random interval voor de volgende schakeling
      if (ledStates[i] == HIGH) {
        // LED gaat aan - gebruik aan-tijd interval
        intervals[i] = random(minTimes[i], maxTimes[i]);
      } else {
        // LED gaat uit - gebruik een korte uit-tijd (of pas aan-tijd aan)
        // Hier gebruiken we de helft van de minimale aan-tijd als uit-tijd
        intervals[i] = minTimes[i] / 2;
      }

      // Debug output (optioneel)
      Serial.print("ledPins ");
      Serial.print(ledPins[i]);
      Serial.print("LED ");
      Serial.print(i);
      Serial.print(": ");
      Serial.print(ledStates ? "AAN" : "UIT");
      Serial.print(", Volgende schakeling in: ");
      Serial.println(intervals[i]);
    }
  }
}
void ledFlash() {
  unsigned long currentTime = millis();
  unsigned long stateTime = currentTime - stateStartTime;

  // Schakelaar logica
  if (!digitalRead(enablePin) && !isEnabled) {
    isEnabled = true;
    currentState = FLICKER;
    stateStartTime = currentTime;
  } else if (digitalRead(enablePin) && isEnabled) {
    isEnabled = false;
    currentState = OFF;
    analogWrite(pwmPin, 0);
  }

  if (!isEnabled) return;

  // State machine voor laslicht gedrag
  switch (currentState) {
    case FLICKER:
      if (stateTime < warmupDuration) {
        // *** fase
        currentBrightness = random(minBrightness, maxBrightness * 0.7);
        analogWrite(pwmPin, currentBrightness);
        delay(50);
      } else {
        currentState = HALF;
        stateStartTime = currentTime;
        currentBrightness = maxBrightness / 2;
        analogWrite(pwmPin, currentBrightness);
      }
      break;

    case HALF:
      if (stateTime >= 1000) {
        currentState = FADE_UP;
        stateStartTime = currentTime;
      }
      break;

    case FADE_UP:
      {
        float progress = min(1.0, (float)stateTime / fadeDuration);
        currentBrightness = maxBrightness / 2 + (maxBrightness / 2) * progress;
        analogWrite(pwmPin, currentBrightness);

        if (progress >= 1.0) {
          currentState = PAUSE;
          stateStartTime = currentTime;
        }
        break;
      }

    case PAUSE:
      if (stateTime >= fullBrightnessPause) {
        // Herstart de hele sequentie
        currentState = FLICKER;
        stateStartTime = currentTime;
      }
      break;
  }
}

« Laatst bewerkt op: 25 July 2025, 22:33:29 door Bert55 »
Met vriendelijke groet, Bert
Märklin, DCCnext, ECOS
Witmoosdorf afgebroken, Witmoos 2 wordt opgestart na de verhuizing