duminică, 13 februarie 2022

4 macazuri comandate cu servomotoare pentru diorama

     Deoarece placa Arduino (Uno, Nano) are mai multi pini, putem extinde proiectul cu macazul actionat de servo 

la 4 macazuri, fiecare macaz cu servomotorasul lui, cate 2 butoane de comanda (in stanga /  in dreapta, drepta inainte / in stanga, etc) si cate o iesire pentru indicare directie.

   Schema este urmatoarea, fiecare servomotor e conectat la cate un pin PWM (am ales D6, D9, D10 si D11)

   In articolul PWM in Arduino este o imagine sugestiva:
   Definirea pinilor folositi, la schema mea, este facuta in programul albasete_macaz_2b.ino
15.02.2022
   Am simulat functionarea programului cu ajutorul programului SimulIDE:
incarcand hex-ul programului meu si am observat ca functionarea este cea corecta, pentru fiecare din cele 4 servomotorase, dupa cum se vede si in cele 2 filmulete:
16.02.2022
   Dragos (albasete) a inceput sa faca teste cu un macaz real conectat la servomotor). A montat pentru teste pe o placa de forex macazul și servo. In capetele macazului a pus pluta de 2 mm sa nu frece tija de placa și sa culiseze lejer.
Dragos mi-a trimis si un filmulet
   Dupa niste discutii cu Dragos, am implementat si memorarea ultimelor pozitii, pentru a evita socurile mecanice la macaze. Programul ce memoreaza pozitiile in EEPROM-ul microcontrolerului de pe placa Arduino este albasete_macaz_3.ino si memoreaza valori doar daca sunt diferite de cele din memorie si la la 5 secunde de la ultima actionare. 

17.02.2022
    Intre timp, am facut 2 filmulete cu doar 2 servo (astea le-am avut la indemana):
   Intarzieree scrierii valorilor fiecarui servo, se recomanda a fi mai mare, in caz ca se tot misca macazele, pentru a uza memoria EEPROM, in ultimul program este dupa 5 secunde dupa ultipa apasare a oricarui buton de comanda (asta si pentru a fi usor de yurmarit la tesste)
dar se poate mari la 30 secunde, valoare variabilei devenind 30000 (reprezentand ms)

sâmbătă, 12 februarie 2022

Control intensitate si stare (banda) led cu 2 butoane (2)

    Fata de ce am prezentat in articolul precedent, am adaugat un led care indica atingerea limitelor (minim si maxim), schema se modifica foarte putin:

Programul, de asemenea, implica modificari minore, rezultand versiunea brightness_control_led_1b.ino care are modul de functionare prezentat in filmuletele:
   Atingerea limitelor, se vede, la montajul de test, prin aprinderea ledului galben:
- limita minima:
- limita maxina:

Control intensitate si stare (banda) led cu 2 butoane

    Pentru un mod de control complex cu doar 2 butoane a unui led sau a unei benzi led, putem folosi o placa Arduino, utilizand urmatoarea schema:

   Cele 2 intrari (D2 si D3) sunt, in repaus, la nivel logic 1 (HIGH), deoarece sunt activate rezistentele internede pull-up (de ridicare a nivelului), astfel ca daca unul din butoanele fara retinere e apasat, intrarea corespunzatoare e la nivel logic 0 (LOW).
   Iesirea (D9) este cu control PWM (semnal cu factor de umplere variabil), ce se va vedea in pozele de mai jos:
- led stins, PWM 0%
- led la nivel luminos scazut, PWM la valoare mica, minimul admis (5, ales de mine) pentru a fi folosita o lumina ambientala;
- led la un nivel luminos crescut, PWM la valoare mare
- led la maxim, PWM 100% (nivel 255 din 255);
    Programul, brightness_control_led_1a.ino, scris de mine, derivat din ce am prezentat in articolul Masurare timpi apasare butoane folosind functia millis(), face urmatoarele:
- buton 1 apasat scurt: stinge led
- buton 2 apasat scurt: aprinde led (la nivelul reglat anterior)
- buton 1 apasat lung: scade progresiv intensitatea luminoasa
- buton 2 apasat lung: creste progresiv intensitatea luminoasa
dupa cu se vede in filmuletele:
  La scurt timp dupa publicarea articolului, Gheorghe Vlad mi-a spus ca acest program poate functiona foarte bine si pe ATTiny85, cu redefineirea pinilor (program PWM-LED-2BT-ATTINY85.ino

vineri, 11 februarie 2022

Macaz comandat cu servomotor pentru diorama (2)

  Fata de macazul prezentat in articolul precedent, acum voi folosi un singur pin pentru a comanda 2 leduri, schema fiind

   Programul adaptat este albasete_macaz_1b.ino si difera, in mare parte, prin modul de comanda al celor 2 leduri, deoarece folosesc doar iesirea D5, astfel:
- cand iesirea este in 1 logic (HIGH) se aprinde LED1
- cand iesirea e in 0 logic (LOW) se aprinde LED2
   In filmuletele urmatoare se vede modul de functionare:

Macaz comandat cu servomotor pentru diorama

   In continuarea articolelor in care am prezentat bariere comandate (din buton sau cu senzori), de data asta voi prezenta un macaz comandat din 2 butoane, cate unl pentru directia de deplasare.

   Prima schema de test, in care am folosit un program adaptat din cel al barieriei cu butoane, este

   Programul folosit este albasete_macaz_1a.ino si modul de functionare este prezentat in filmuleltele:

marți, 1 februarie 2022

Bariera automata pentru diorama

english version

   Dupa cum prezentasem in articolul anterior, am adaugat 4 senzori infrarosii pentru detectia prezentei trenuletelor pe 2 cai de rulare (cate 2 pe o linie, in stanga si dreapta barierelor).

 

   Schema de test este:

si a fost realizata total pe un simplu breadboard de mine
si pe un cablaj adaptor de Dragos (albasete) 
   Programul folosit pentru 4 senzori este doublebarriers_5.ino si filmuletele, realizate de mine, cu aceasta versiune de program, sunt:
   Un filmulet realizat, la teste, de catre Dragos:
PS: Am desenat schema mai frumos, in care se vad conexiunile:

06.02.2021
    Intre timp, Dragos a continuat lucru si a creat si "crucea Sf. Andrei"
realizand si un prim filmulet cu partea de semnalizare optica