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

Raadplaatje door Huup
Vandaag om 22:39:08
Sfeer op je modelbaan door meino
Vandaag om 22:31:02
Bezetmelder brug in rolbrug blijft actief als rolbrug gestopt is door RobVille
Vandaag om 22:30:08
Toon hier je (model)treinfoto's door Frank 123
Vandaag om 22:05:35
Station Roodeschool door Torikoos
Vandaag om 21:59:55
Toon hier je nieuwe (model-) spooraanwinst(en)... door wob
Vandaag om 21:59:52
lampjes in huizen willekeurig schakelen door Bert55
Vandaag om 21:17:39
Länderbahn en Reichsbahn locomotieven. door 741230
Vandaag om 20:44:16
Microstepper motoren voor armseinpalen door AP3737
Vandaag om 20:39:50
Bentheimer Eisenbahn Stations gebouwen "Laarwald" door borotof
Vandaag om 20:26:55
"Litter Bin" voor Brits spoor en Britse modelspoorprojecten door Martijn193
Vandaag om 20:06:38
Centraal Zwitserland: Trein, tram, kabelbaan en gondels. door Hans van de Burgt
Vandaag om 20:05:19
"Ein kleines Kalkwerk", een nieuwe tentoonstellingsbaan door 741230
Vandaag om 20:04:49
NS 1700 transfers door Rick
Vandaag om 19:51:29
Overstap naar HTM door GerardvV
Vandaag om 19:50:12
Spooraccessoires in diverse schalen, 3D-geprint. door spoorfreak
Vandaag om 19:48:41
BNLS Rijweekend 19 en 20 juli 2025 door MOVisser
Vandaag om 18:59:34
Gezocht info en foto's van standaard dwarsliggerwagen door Rob Hagg
Vandaag om 18:40:47
Mooi weer om buiten te spelen door puntenglijder
Vandaag om 18:18:39
Br 38 Piko Superen. door Silvolde
Vandaag om 17:32:46
Spoor- en tramweg parafernalia door Eric B
Vandaag om 17:32:02
Gezocht: foto's NS Ks/Us (nu Klmos) door marco
Vandaag om 17:15:33
Da's Daz 2 door BartvD
Vandaag om 17:06:02
Stationsplein Baden Baden door Dion
Vandaag om 17:00:00
Dat overkomt mij niet. door Benelux795
Vandaag om 16:07:49
Het einde van de RhB- Chiavenna Stazione Merci door Hollandserhbfan
Vandaag om 15:38:11
Wèhnich - Eén onbeduidend baantje op 1200 bij 1200mm door tothebeach
Vandaag om 15:29:18
De bouw van mijn modelbaan in Thailand door Thai-Bundesbahn
Vandaag om 14:40:06
Mijn eerste H0-modeltreinbaan in aanbouw door Thai-Bundesbahn
Vandaag om 14:28:28
Alt-Wutachtalbahn 2025 door Hans Grasmaijer
Vandaag om 14:06:48
  

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

bask185

  • Offline Offline
  • Berichten: 4979
Re: lampjes in huizen willekeurig schakelen
« Reactie #15 Gepost op: Vandaag om 13:21:27 »
Bert, de backticks werken hier niet, we hebben code tags op het forum  ::)

[ c o d e ]   [ / c o d e ]

// Configuratie
const int numLeds = 3;              // Aantal LED's
const int ledPins[numLeds] = {2, 3, 4}; // Pinnen waar de LED's op aangesloten zijn

// Min en max aan-tijden in milliseconden voor elke LED
const unsigned long minTimes[numLeds] = {100, 200, 300};  // Minimale aan-tijd per LED
const unsigned long maxTimes[numLeds] = {500, 800, 1000}; // 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

void setup() {
  // Initialiseer seriële communicatie (optioneel voor debugging)
  Serial.begin(9600);
 
  // Initialiseer LED pinnen als OUTPUT
  for (int i = 0; i < numLeds; i++) {
    pinMode(ledPins, OUTPUT);
    ledStates = LOW;
    digitalWrite(ledPins, ledStates);
    previousTimes = 0;
    intervals = random(minTimes, maxTimes);
  }
}

void loop() {
  unsigned long currentTime = millis();
 
  for (int i = 0; i < numLeds; i++) {
    // Controleer of het tijd is om de LED te schakelen
    if (currentTime - previousTimes >= intervals) {
      // Schakel de LED
      ledStates = !ledStates;
      digitalWrite(ledPins, ledStates);
     
      // Update de vorige schakeltijd
      previousTimes = currentTime;
     
      // Bepaal een nieuw random interval voor de volgende schakeling
      if (ledStates == HIGH) {
        // LED gaat aan - gebruik aan-tijd interval
        intervals = random(minTimes, maxTimes);
      } 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 = minTimes / 2;
      }
     
      // Debug output (optioneel)
      Serial.print("LED ");
      Serial.print(i);
      Serial.print(": ");
      Serial.print(ledStates ? "AAN" : "UIT");
      Serial.print(", Volgende schakeling in: ");
      Serial.println(intervals);
    }
  }
}
Train-Science.com
Train-Science github
It ain't rocket science ;-)

Bert55

  • Offline Offline
  • Berichten: 892
Re: lampjes in huizen willekeurig schakelen
« Reactie #16 Gepost op: Vandaag om 15:24:49 »
Bedankt Bas,
Ken het maar was te lui ::)

edit:
Er zit een fout in de sketch:
Compilation error: incompatible types in assignment of 'int' to 'long unsigned int [3]'

In deze regels:
    previousTimes = 0;
    intervals = random(minTimes, maxTimes);

Moet even weer nazoeken waarom incompatible, mocht je het zo weten Bas, graag.

Bij toeval ben ik nu bezig met een eigen gebouwd huisje met leds erin, dus kan ik het mooi testen
« Laatst bewerkt op: Vandaag om 17:40:59 door Bert55 »
Met vriendelijke groet, Bert
Märklin, DCCnext, ECOS
Witmoosdorf afgebroken, Witmoos 2 wordt opgestart na de verhuizing

Patrick Smout

  • Offline Offline
  • Berichten: 441
Re: lampjes in huizen willekeurig schakelen
« Reactie #17 Gepost op: Vandaag om 19:33:06 »
Intervals is een array. Je moet deze indexeren wil je een waarde aan een element toekennen.

M.a..w, intervals vervangen door intervals[ i ]

Komt enkele malen voor in het programma. Ff ook nog nakijken of i de juiste index is op alle plaatsen.
« Laatst bewerkt op: Vandaag om 19:36:00 door Patrick Smout »
Met vriendelijk groeten,

Patrick Smout

RobVille

  • Offline Offline
  • Berichten: 185
  • My Dark Side
    • Modelbanen - Rob
Re: lampjes in huizen willekeurig schakelen
« Reactie #18 Gepost op: Vandaag om 19:54:00 »
Goedemorgen,

Ik ben nu op het punt om de verlichting aan te leggen.
Straatlantaarns, en verlichting voor de huisjes en het station.
Nu wil ik de verlichting in de huisjes een beetje slim maken, af en toe een lamp aan, en uit, en dat willekeurig.
Heb zo'n 30 leds voor huisjes en ongeveer 20-30 straatlantaarns (ook led)
Bestaat er een apparaat om dit slim te schakelen? Heb al de 5074 Multi protocol light decoder gevonden, heeft iemand ervaring hiermee? Is best duur om even te 'proberen'
Of zijn er alternatieven? Analoog of digitaal vind ik niet belangrijk.

Toch maar even terugkomen op de vraag van de TS. Nu de heren verder bakkeleien over het wel en wee van het programmeren van een Arduino, gebruik ik zelf de apparaatjes van Woodland. Hier kan je de Led's makkelijk mee in / uitschakelen, dimmen, ad rondom schakelen. Op beide van mijn modelbanen gebruik ik deze zonder problemen. Geen digitaal gedoe.

Rob
I need to embrace imperfection, anomalies exist everywhere .....
and
asking me if that's black or dark green is not done!

Cornfield Junction / Boulder Crossing
Bypass Junction
Het Boemeltje

bask185

  • Offline Offline
  • Berichten: 4979
Re: lampjes in huizen willekeurig schakelen
« Reactie #19 Gepost op: Vandaag om 20:55:16 »
Bert, je bent echt overal vergeten om  achter te tikken  :P. Dit compileert:
// Configuratie
const int numLeds = 3;              // Aantal LED's
const int ledPins[numLeds] = {2, 3, 4}; // Pinnen waar de LED's op aangesloten zijn

// Min en max aan-tijden in milliseconden voor elke LED
const unsigned long minTimes[numLeds] = {100, 200, 300};  // Minimale aan-tijd per LED
const unsigned long maxTimes[numLeds] = {500, 800, 1000}; // 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

void setup() {
  // Initialiseer seriële communicatie (optioneel voor debugging)
  Serial.begin(9600);
 
  // Initialiseer LED pinnen als OUTPUT
  for (int i = 0; i < numLeds; i++) {
    pinMode(ledPins, OUTPUT);
    ledStates[i] = LOW;
    digitalWrite(ledPins, ledStates);
    previousTimes[i] = 0;
    intervals[i] = random(minTimes, maxTimes);
  }
}

void loop() {
  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, 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("LED ");
      Serial.print(i);
      Serial.print(": ");
      Serial.print(ledStates ? "AAN" : "UIT");
      Serial.print(", Volgende schakeling in: ");
      Serial.println(intervals[i]);
    }
  }
}


Ik ben zelf echter meer dan de object georienteerde aanpak. Niet altijd, maar voor dit soort dingen vind ik het wel handig. Ik zal eerdaags iets in elkaar sleutelen.

Mvg,

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

Bert55

  • Offline Offline
  • Berichten: 892
Re: lampjes in huizen willekeurig schakelen
« Reactie #20 Gepost op: Vandaag om 21:17:39 »
Bedankt Bas en Rob.
Heb zelf overigens niets getypt, is allemaal AI.
Met vriendelijke groet, Bert
Märklin, DCCnext, ECOS
Witmoosdorf afgebroken, Witmoos 2 wordt opgestart na de verhuizing