Doel:€250.00
Donaties:€88.00

Per saldo:€-162.00

Steun ons nu!

Laatst bijgewerkt
op 03-06-2025

Vacature: secretaris bestuur
Algemeen

De stichting

Recente berichten

Mijn geweatherde modellen door Spoor010
Vandaag om 05:31:32
Mijn eerste H0-modeltreinbaan in aanbouw door Thai-Bundesbahn
Vandaag om 03:52:01
Chinese prut kabel door hmmglaser
Vandaag om 01:33:14
Line-up foto's van modellen door Ronald69
Vandaag om 00:07:33
Rheinburg, TP V/VI door Wim Vink
25 July 2025, 23:21:37
Bauarbeiten im gange door Wim Vink
25 July 2025, 23:20:05
Wèhnich - Eén onbeduidend baantje op 1200 bij 1200mm door Wim Vink
25 July 2025, 23:17:57
Heroplage Artitec Plan W? door Jeroen Water
25 July 2025, 23:14:02
US diorama in H0 door Wim Vink
25 July 2025, 23:10:40
De bouw van mijn modelbaan in Thailand door Wim Vink
25 July 2025, 23:01:52
Iemand ervaringen met een Lima Astora RaBe 503 018, art 1680 ? door Dave.......
25 July 2025, 22:58:55
Mallnitzer Tauernbahnstrecke ÖBB N Spoor door Schachbrett
25 July 2025, 22:58:28
Aachenau West door wob
25 July 2025, 22:34:05
Wie heeft er ervaring met een baan in een inpandige garage in een app. gebouw? door MOVisser
25 July 2025, 22:29:47
lampjes in huizen willekeurig schakelen door Bert55
25 July 2025, 21:46:43
Show je werkplek door cor_b
25 July 2025, 21:25:19
Microstepper motoren voor armseinpalen door AP3737
25 July 2025, 21:00:32
schok bij vertrek door phdirk
25 July 2025, 20:52:17
Raadplaatje door Rick
25 July 2025, 19:15:36
Toon hier je nieuwe (model-) spooraanwinst(en)... door Huup
25 July 2025, 19:11:24
Gezocht: foto's NS Ks/Us (nu Klmos) door grossraumwagen
25 July 2025, 18:59:13
"Litter Bin" voor Brits spoor en Britse modelspoorprojecten door Martijn193
25 July 2025, 17:35:46
Seuthe gaat stoppen door ex-DR V100
25 July 2025, 15:46:46
Arduino loconet-interfaces door NTeering
25 July 2025, 14:09:37
Ombouw/Pimpen Bolle neuzen door BartvD
25 July 2025, 14:07:51
Spuitmondjes door Bahn-AG
25 July 2025, 13:51:34
Yamorc booster door Montanbahn
25 July 2025, 13:23:59
Onlangs gespot - gefotografeerd, de foto's door KNed
25 July 2025, 13:06:17
C en K rails samen door Blausee-Mitholz
25 July 2025, 12:54:53
Toon hier je (model)TRAM foto's. door Keska
25 July 2025, 12:49:58
  

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

Ronald Schreuder

  • Offline Offline
  • Berichten: 58
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: 904
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: 58
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: 904
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: 26652
    • 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: 904
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: 58
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: 58
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: 26652
    • 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: 4990
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: 58
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: 904
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: 904
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: 58
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: 904
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