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

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

Auteur Topic: lampjes in huizen willekeurig schakelen  (gelezen 5477 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

  • Online Online
  • 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

  • Online Online
  • 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: Vandaag om 11:54:04 »
Ik ga er naar kijken, bedankt!

Bert55

  • Offline Offline
  • Berichten: 904
Re: lampjes in huizen willekeurig schakelen
« Reactie #59 Gepost op: Vandaag om 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: Vandaag om 22:33:29 door Bert55 »
Met vriendelijke groet, Bert
Märklin, DCCnext, ECOS
Witmoosdorf afgebroken, Witmoos 2 wordt opgestart na de verhuizing