Se afișează postările cu eticheta ATtiny88. Afișați toate postările
Se afișează postările cu eticheta ATtiny88. Afișați toate postările

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:

miercuri, 1 iunie 2022

Placa de dezvoltare MH-Tiny cu ATtiny88


     Am intrat in posesia unei placa de dezvoltare ce are ca microcontroler un ATtiny88, care semana cu o placa Arduino Nano`


doar ca are mici diferente, inclusiv la pini
Principalale caracterisitici sunt:
- se poate programa cu Arduino IDE 1.0+ (OSX/Win/Linux)
- alimentare prin mufa USB sau in pin cu 5V sau cu 7..12V (desi eu nu as depasi 7-9V)
- stabilizator de tensiune de 5V/50mA
- conector USB
- 26 pini de intrre/iesire (cu anumite restrictii la cei conectati la USB)
- memorie flash 8kb (din care utilizabila doar 6kb, deoarece o parte e consumata de bootloader)
- interfatare pe I2C si SPI
- 26 pin cu iesire PWM: 26 pinis PWM software (simulat), doar doi (D9,10) cu PWM fizic
- intrari analogice (ADC) pe 8 pini
- indicare aliementare (Power LED) si un led de Test/Status (conectat la D0 , cu functionalitate similara cu cel de la D13 la Ardino Nano/Uno)
- dimensiuni fizice: 4,5mm x 18,3mm x 3mm
    Am gasit mai multe articole cum se instaleaza driver-ul, cat si placa in Arduino IDE, dar cel mai simplu si, cred ca de la care au pornit toate, este cel de la producator: MH-ET LIVE Tiny88(16.0Mhz).
   In mare, se folosete executabilul de la https://github.com/MHEtLive/MHEtLiveArduino/releases/download/1.0.0/2.0a4.rar  pentru instalarea driver-ului, care se ascunde ulterior (mie mi-a dat de cap asta, incercand sa fac driverul vizibil si activ mereu, dar am inteles ca abordam gresit problema, dupa ce am vorbit cu Vlad Gheorghe),

apoi se instaleaza placa MH-Tiny adaugand link-ul https://raw.githubusercontent.com/MHEtLive/arduino-boards-index/master/package_mhetlive_index.json la proprietati in programul Arduino IDE.
si apoi in TOOLS ->Board manager
   In programul Arduino IDE apare placa
si ca programator trebuie ales
    Pentru a incarca programul Blink sau unul derivat, cum e cel stoboscopic numit blink_strobo_1.ino in care pune 0 in loc de 13:
se apasa butonul de incarcare (upload)
si se asteapta mesajul
apoi se introduce cablul USB la care e conectata placa MH-Tiny88:
dupa care led-ul va palpaii conform programului:
   Am realizat 2 filmulete, din care se vede modul de incarcare: