duminică, 28 august 2022

Lumini aprinse alternativ sau cu aprindere / stingere lenta

    Pornind de la o solicitare de a reproduce luminile de la o cale ferata cu lumini de avertizare cu aprindere si stingere lenta, cum sunt cele din filmuletul 2nd Avenue Railroad Crossing, Clanton, AL

pentru a adaga unor bariere de diorame, cum prezentasem in articolul Railway Crossing Multi Track Two Way, am zis sa fac un mic proiectel in care sa apara diferentierea intre aprindere cu intermitenta a 2 leduri si apoi cu intarziere la aprindere, respectiv stingere, selectia facand-o dintr-un buton fara retinere.
   Schema de test a fost una simpla (ledurile sunt legate la iesiri cu posibilitate PWM):
   La pornire, pe cele 2 iesiri este semnal cu factor de umplere variabil (PWM) de la 0 la 100%, mai precis de la 0 la 255... cand variabila este 0, ledul este stins, cand este 255 este aprins maxim... pe o iesire este valoare brightness, iar pe cealalta 255-brightness, deci va fi un led in contratimp cu celalalt... daca se apasa butonul pentru scurt timp se trece la aprinderea intermitenta tip circuit bistabil astabil (un led aprins, unul stins).
    Programul este unul simplu, realizat din combinarea celor din exemplele programului Arduino IDE: blink_vs_fade_1a.ino
    Am realizat 2 filmulete:
   Ulterior, am schimbat variabilele (pasii de crestere/descrestere intensitate luminasa, timpii intre modificari, etc), programul devenind blink_vs_fade_1b.ino si cum am inca 2 filmulete:
      Ulterior, am dat de o placa de dezvoltare MH-Tiny cu ATtiny88 si am zis sa vad daca merge... 
am gasit ca are doar 2 iesiri pentru control PWM (suficiente pentru proiectul asta), respectiv D9 si D10 asa ca am conectat cele 2 leduri acolo si butonul fara retinere a ramas la D2.
  Programul modificat este blink_vs_fade_1a1.ino (simular cu anterioarele), asa ca am incarcat 2 filmulete cu placa MH-Tiny:

31.08.2022
   Am explicat in articolul in care am implementat aceste lumini cu aprindere/stingere enta (Railway Crossing Multi Track Two Way), dar o sa  fac si aici:
   Sistemul de aprindere cu intensitate variabila este cel numit PWM, care are valoare de la 0 la 255 (led stins, respectiv aprins la maxim).
  In programele scrise si testate, cele 3 variabile de baza sunt:
care vor fi explicate pentru un led (numit LED3):
Led-ul este stins si dupa perioada de pauza (variabila time_to_stop = 200ms), intensitatealuminasa (brightess) incepe sa creasca valoarea intensitatii cu pas de 1 (fadeAmount = 1) la fiecare 2ms (fade_delay = 2), pana la maxim (PWM = 255),dupa care urmeaza o pauza de 200ms, apoi intensitatea luminoasa scade cu pas de 1 la fiecare 2ms, pana la 0, dupa care urmeaza pauza de 200ms si procesul se repeta.
Led-ul celalalt (notat in poza cu LED 3)  este in contratimp (255-brightness)
comparativ, aprinderea cu intermitenta a ledurilor este ca in figura urmtoare, unde acestea aapr cu LED1 si LED2: