Bouwverslag Ledjes laten knipperen

Je zou eens kunnen kijken naar Xlights. Dat werkt in combinatie met een arduino, maar je kunt ook stand-alone led controllers gebruiken. In combinatie met wat RGB strip of pixels kun je het dan zo gek maken als je wilt.
 
Ik vind het leuk om mijn hersens te breken op dit soort projecten. Ik had al een sketch gepubliceerd in post #14, met een opmerking als "zoek het verder zelf uit". Maar alhoewel de setup wel werkt, en redelijk goed te begrijpen voor de beginnende Arduino-liefhebber is lijkt mij, zou het voor 13 verschillende knipperlichtpatronen
toch wel tot een heleboel regels tekst leiden.
Ik heb daarom een complete sketch geschreven, nu gebaseerd op de wat ingewikkeldere Setup met z.g. arrays. De hoofdmoot is een 2-dimensionale array, waar alle knipperpatronen ingestopt worden ( voor mij ook nieuw, zo leer ik weer wat). Ik heb alleen de knipperlichtpatronen er ingestopt, waar je dan lichten hebt die continu aan staan kun je die beter buiten de Arduino om aansluiten. Ook heb ik alleen de patronen voor de gele (witte?) lichten er ingestopt, als er dan op dezelfde plek ook groene en rode lichten met hetzelfde patroon werken kun je die samen met het gele licht op één pin op de arduino aansluiten. Hier is de sketch:

Code:
/*
The profiles-array has 13 rows and 9 values per row, but is restricted to 2x4=8 profile durations (changes to ON + changes to OFF),
the last value of each row array is set to 0 to trigger repetition of the pattern.
(the last value is 0 automatically, as long as it is not overwritten)
*/
int profiles[13][9]={{9,1},{1,2},{10,10},{1,1,1,3,1,8},{1,1},{1,1,1,1,1,10},{1,1,1,1,1,1,1,13},{4,4},{1,3},{4,4},{4,4},{1,1,1,7},{5,1}};
// resp. Breskens, Westkapelle, Noorderhoofd, Westerschouwen, Verklikker, Westhoofd, Goeree, Kwade Hoek,
// Maasvlakte, Maasmond hoog, Maasmond laag, Scheveningen, Noordwijk aan zee, patterns.

long targets[13];
int actual[13];
bool lightStatus[13];
int leds[13];


void setup() {
  for (int r=0; r<13; r++) {
    targets[r] = random (1000,5000); // random start for each light between 1 and 5 seconds.
    /*
    The profile starts after a random time between 1 and 5 seconds with the light off.
    The actual period is set to 7. When the start target is reached, actual[] increases by 1 and becomes 8.
    Period 8 is intentionally set to zero for all lights, hence the actual[] will upgrade to 0, the light will
    switch to on and the first real period will start.
    */
    actual[r] = 7;
    lightStatus[r] = false; // turn all lights off.

    leds[r] = r + 2; // use pins 2 thru 14(=A0).
    pinMode (leds[r],OUTPUT);
  }
}

void loop() {
  for (int x=0; x<13; x++) {
    if (millis() >= targets [x]) { // if the target has been reached, increase the counter.
      actual[x] = actual[x] + 1;
      if (profiles[x][actual[x]] == 0) {
        actual[x] = 0; // reset the counter if a zero has been encountered.
      }
      targets[x] = targets[x] + (profiles[x][actual[x]])*1000; // increase the target with the next profile value (in milliseconds).
      lightStatus[x] = !lightStatus[x]; // toggle the light status.
      digitalWrite (leds[x], lightStatus [x]);
    }
  }
}

Je kunt deze sketch kopiëren en dan een nieuwe sketch openen in de Arduino IDE, en dan de gekopieerde code over alles heen plakken.

Succes,
Max.
 
Laatst bewerkt:
Ik heb het e.e.a. op de "klassieke" manier getest, met de seriele monitor. En bovendien knippert de ingebouwde led op pin 13 / knipperpatroon 11 in het juiste ritme :).
Als je de simulator van Roelof wilt proberen, de patronen 1 t/m 13 zoals ze in de sketch vermeld zijn zijn aangesloten op pin 2 t/m 14 (ofwel 2 t/m 13 en A0)
 
Laatst bewerkt:
Ik heb de code in post #22 aangepast, nu met beter inschakelgedrag. En alles met een led getest.
 
Uitleg hoe de "profiles"-array tot stand komt:
Scherm­afbeelding 2024-10-18 om 11.18.24.png
 
In bedrijf met een Nano. De leds zijn een type met geïntegreerde serieweerstand.
De rode led heeft geen speciale betekenis, maar in deze positie geeft die patroon nr. 10 weer.
Ik heb maar 10 stuks van dit type led beschikbaar, dus de laatste 3 moet je er even bijdenken....

Ik zag zo gauw geen mogelijkheid om het beeld te draaien.....
 
Laatst bewerkt:
In bedrijf met een Nano. De leds zijn een type met geïntegreerde serieweerstand.
De rode led heeft geen speciale betekenis, maar in deze positie geeft die patroon nr. 10 weer.
Ik heb maar 10 stuks van dit type led beschikbaar, dus de laatste 3 moet je er even bijdenken....

Ik zag zo gauw geen mogelijkheid om het beeld te draaien.....

Super bedankt
 
Nog even een waarschuwing : samen met de rode en groene knipperlichten kom ik op 20 leds die op een arduino aangesloten moeten worden. De sketch hierboven is geschreven om ze allemaal op één Arduino aan te sluiten. Met de beperking van maximaal 200 mA betekent dat dat iedere led maar maximaal een stroom van 10 mA mag trekken. Als dat te weinig is voor de lichtopbrengst die jij wil zien, moet je alles verdelen over ten minste 2 Arduino's (en moet de sketch aangepast worden), of elke led moet een transistor als "stroomversterker" krijgen.
 
Via de zoekfunctie kwam ik hier terecht; ik had een dergelijke vraag, maar veeeel simpeler: ik zoek een paar rood knipperende led's met een lage knipper frequentie, zeg: 0,5 Hz of zo. Denk aan een windturbine lampjes. knipperend heeft de voorkeur, maar het zouden ook "breathing" (hoe heet dat in het Nederlands voor een lampje?) types kunnen zijn.
Die kan ik nergens vinden. Als ik kijk bij Ali, dan zie ik ofwel de snel knipperen de leds, of langzaam-knipperend met roterende kleuren, dus van die kermis dingen; dat wil ik dus niet.
Ook bbv. bij Reichelt kan ik knipperende leds vinden, maar dan is de frequentie nog steed snel, volgens de spec. 1,5-3HZ, en dat is te snel.
Kan/moet ik naar een timer oplossing? dus zo iets als 'vroeggu ' met een 555 werd gerealiseerd.
Ik zou er maar >10 nodig hebben, maar wil er best 50 bestellen als ik ze zou kunnen vinden.....
Cor
 
Knipperledjes die je zo kan kopen knipperen meestal met een frequentie tussen de 1Hz en 2Hz. Als dat te snel is voor jouw zal je waarschijnlijk niet onder een stukje elektronica uit komen. Iets verzinnen en bouwen is geen probleem maar er is zo veel te koop tegen prijzen waar je zelf niet voor kan bouwen.
Kijk bijvoorbeeld eens HIER naar. Een simpele kant en klare schakeling die klein is, niet veel weegt en ook nog eens heel goedkoop.
 
Knipperledjes die je zo kan kopen knipperen meestal met een frequentie tussen de 1Hz en 2Hz. Als dat te snel is voor jouw zal je waarschijnlijk niet onder een stukje elektronica uit komen. Iets verzinnen en bouwen is geen probleem maar er is zo veel te koop tegen prijzen waar je zelf niet voor kan bouwen.
Kijk bijvoorbeeld eens HIER naar. Een simpele kant en klare schakeling die klein is, niet veel weegt en ook nog eens heel goedkoop.
Dàt is nu juist iets waarnaar ik zocht, nadat ik geen juiste snelheid kon vinden, en dit voorbeeld doet dus precies wat ik nodig heb. Wat is uw zoekterm voor dit ding Ernst? want veelal ga ik voor "Choice" oplossingen, en bestel dan bij wat ik nog meer kan gebruiken, dat is er meestal ook nog eens veel sneller. Dit onderdeeltje kost maar 77 cent, maar wèl met 3,07 verzenden en 2 weken levertijd (wat ook niet al te slecht is in dit geval.) In elk geval dank voor de link, maar nogmaals, waar heeft u op gezocht?

Edit: 'K heb hem al:
0.8Hz-60Hz Instelbare Signaalgenerator:
https://nl.aliexpress.com/item/1005...XetJXW85&utparam-url=scene:search|query_from:
Met een 7414 heb je 6 Schmitt trigger inverters waarmee je ook 6 onafhankelijke puls generatoren kunt bouwen
TALKING ELECTRONICS BEC Page 49
Tenminste als je verschillende knipperfrequenties zou willen.
Tja Roelof, dat is de richting waarin ik dacht te moeten gaan als er geen meer pasklare oplossing te koop is, en die is er dus wèl, zie hierboven. Maar bedankt voor de snelle reactie, en het aangeven van de andere richting waarin ik dacht dat ik wel móest gaan.
Cor
 
..... In elk geval dank voor de link, maar nogmaals, waar heeft u op gezocht?
Voor mij stond al vast dat het een schakeling met een 555 zou moeten worden. Klein betrouwbaar en goedkoop. In google heb ik gezocht naar laag frequent 555 oscillator en dan op het label "producten" geklikt. Je krijgt dan een enorme lijst van allerhande schema's maar ook kant en klare printjes. Dan is het klikken op mogelijke kandidaten tot je de juiste hebt gevonden. Dat was gelukkig vrij snel dus kon ik je snel een antwoord geven.
Overigens kan de 555 in SMD vorm maximaal 200mA uitgangsstroom verwerken. Dat is voor ledjes ruim voldoende want per ledje zal je normaal gesproken maar 20mA nodig hebben. Tenzij je natuurlijk power led's hebt, die hebben meer stroom nodig maar geven dan ook een bak licht. Wat ik begrepen heb is dat hier niet de bedoeling.
Je kan dus per schakeling maximaal 10 ledjes aansluiten die elk 20mA gebruiken. Persoonlijk zou ik daar liever onder blijven om de chip niet te zwaar te belasten en dus "maar" maximaal 8 ledjes gebruiken. Maar dat is mijn idee, het zou theoretisch met 10 moeten kunnen.
 
Die max. stroom is meer dan genoeg, want ik voedt het met 12V en heb maar 6 led's nodig in groepen van 1x2 en 1 x 4 stuks in serie.
Maar ik kan ze ook herschikken in 2 x 3stuks in serie, dan zit ik nog maar op 40 mA of daaromtrent.
Geen probleem dus, dat is opgelost, bedankt.
Cor
 
Pas op met (te) veel in serie zetten. Als je witte of blauwe ledjes gebruikt kan je maximaal 3 ledjes in serie zetten anders doen ze het gewoon niet. Elke witte led heeft een doorlaatspanning van 3,2V tot 3,6V afhankelijk van de fabrikant. Als je daar 4 van in serie zet kom je al aan minimaal 12,8V. In de 555 gaat ook altijd een klein beetje van de spanning verloren, er zijn altijd verliezen! Met andere woorden de kans dat de ledjes niet aan zullen gaan is dan knap groot. Ook als ze wel aan gaan zullen ze vrij snel uit gaan als de accu spanning iets zakt. Als de accu net geladen is zal hij rond de 13,5V zijn maar als je er stroom uit gaat trekken zakt dat behoorlijk snel tot rond de 12V.
Andere kleuren hebben een lagere doorlaatspanning, afhankelijk van de kleur is dat tussen de 1,9V tot 2,5V. Daar zou je dus wel tot 4 ledjes van in serie kunnen zetten.
Nog een belangrijk ding.
Ledjes hebben een stroombegrenzing nodig. Zonder die begrenzing kunnen ze bij de eerste keer inschakelen al de geest geven. De simpelste en goedkoopste begrenzing is een kleine weerstand. De juiste waarde daarvan moet je even uitrekenen. Hoe je dat moet doen heb ik HIER als eens uitgelegd met voorbeeld berekeningen.
 
Goed dat je hierop wijst. Maar ik ben voldoende bekend met deze materie, vandaar dat ik schreef dat ik ze ook kan herschikken in 2 x 3stuks (met passende weerstand). Ik heb die led's nog niet uitgezocht, maar heb ze nog wel in mijn voorraad, en zal leds gebruiken met een rode bodykleur. De voeding wordt een stekkerlader van 12V DC.
Ik kom er nu wel uit! Nogmaals bedankt,
Cor
 
Back
Top