luni, 24 ianuarie 2022

Bariera dubla pentru diorama

english version

    Pentru, Dragos (albasete), un impatimit al dioramelor (trenulist), am inceput sa studiez modalitatea controlului unei bariere duble din 2 butoane (ridicare, respectiv coborare), sa aiba si lumini intermitente (alb pentru bariera ridicata, respectiv 2 rosii alternative pentru bariera coborata) si sa includa si un avertizor acustic pentru bariere coborate.

   Schema de test este:

  Dupa mai multe teste, pe breadboard, am ramas la programul doublebarriers_3a7.ino, ce a fos rescris folosit informatii din articolele:

   Cand nu este un tren in zona, adica a fost apasat butonul de "ridicare bariere" barierele permit deplasarea pe drumul rutier, se aprinde cu intermitenta un led verde (la mine, ar la dioarama ar trebui pus unul alb, ca in cazul real):
iar daca este apasat butonul de "coborare bariere", se aprind cu intermitenta 2 leduri rosii, avertizorul sonor genereaza un sunet "deranjant", iar barierele blocheaza drumul rutier.
   Dragos a facut si el teste pe o macheta "profesionala":
   Am facut si eu 2 filmulete cu programul mentionat mai sus, obtinand:
   Ulterior, am adaugat un sensor optic cu rol de coborare bariere si coborare a acestora dupa un timp, dupa cum se vede in filmuletele:
apoi am aduagat un al doilea senzor, pentru a fi cat mai aproape de adevar, in sensul ca barierele sa fie coborate la apropierea din ambele sensuri a trenului, ridicandu-se dupa indepartarea acestuia, filmuletele facute cu montajul meu pe breadboard sunt:
   Dupa ce am constatat ca senzorii optici depisteaza obstacole doar la 3-4cm, nu pana la 20cm, am mai adaugat 2 senzori, pentru a putea folosi barierele pentru 2 cai de rulare (sine). Simularea functionarii sistemului de bariere se vede in filmuletele:

1.2.2022
   Pentru a avea leduri pe ambele parti ale barierelor, schema de conectare a ledurilor este:
   Schema completa este
   Detalii despre barierele automate se gasesc in articolul urmator !

duminică, 9 ianuarie 2022

Placa de dezvoltare Teensy 4.0 si afisajul led cu 8 cifre din 7 segmente controlate de MAX7219

   In luna noiembrie, am achizitionat o placa de dezvoltare Teensy 4.0, care va fi utilizata pentru un proiect gasit pe net, in care voi citi niste informatii de pe CAN-ul masinii si se foloseste un afisaj grafic cu touch.
   Pana la acel proiect, am lipit conectorii cu pini tata, pentru a putea face teste pe breadboard:

   Placa Teensy 4.0 este mult peste o placa Arduino clasica, fiind de cca. 330 ori mai rapida, dupa cum arata graficul
   Prima data am testat un testat sketch-ul din exemple cu aprinderea cu intermitenta a ledului de pe placa (tot la pinul D13 este conectat la Teensy 4.0), dar pentru asta a trebuit sa adaug placile Teensy in Arduino IDE. Pentru aceasta am instalat programul Teensyduino installer dupa care pot selecta si placile de dezvoltare Teensy
   Am testat pe langa exemplul clasic Blink si unul gen lumina stroboscopica (blink_strobo_1.ino), dupa cum se vede in cele 2 filmulete:
   Cautand un afisaj, am dat de modulul cu 8 cifre led din 7 segmente controlate de un MAX7219, care are documentatie si pe site-ul PRJC in articolul LedControl Library
   Schema care am folosit-o eu este
   Initial am incarcat exemplul din librarie, apoi un sketch adaptat de mine (Teensy_LefControl_8x7leddisplay.ino
Rezultatele se vad si in filmuletele urmatoare:

Control variatie intensitate luminoasa pentru 2 (benzi de) leduri cu encoder

   Fata de articolul precedent, in care am folosit 3 butoane, acum voi folosi un encoder KY-040, schema pentru controlul a 2 leduri cu PWM (sau ulterior a unui driver pentru control sens si turatie motor de curent continuu) este    
   Modul de functionare a fost inspirat din videoul Control a DC Motor using the L9110S driver and a Rotary Encoder with an Arduino - Tutorial
   Am facut 2 filmulete, pentru a vedea cum functioneaza sistemul, daca incarcam programul toy_2leds/blob/main/2leds_encoder_v1a.ino
   Conectarea la un modul driver cu L298 s-ar face astfel:

   Bineinteles, schema si programul pot fi imbunatatite, dar acum exista un punct de plecare 😃

Control variatie intensitate luminoasa pentru 2 (benzi de) leduri cu butoane

       Pornind de la un sistem de control al vitezei si directie unei machete (trenulet, de exemplu) am gandit un sistem de comanda in PWM (semnal cu factor de umplere variabil) a unei punti H (pentru motor), ulterior trealizand ca pot comanda 2 benzi de leduri, sa se aprinda lent si sa se stinga lent.

    Prima schema este una cu 3 butoane, unul pentru aprindere led 1, al doilea pentru aprindere led 2, iar al doilea pentru stingere. Aprinderea si stingerea se fac lent.

   Programul 2leds_3switches_v1_1.ino va realiza un control pentru cele 2 leduri, dupa cum se vede in filmuletele:
    Pentru a se intelege mai bine modul de functionare, am conectat un osciloscop cu 2 canale, observandu-se ca 
- amble led-uri stinse
- ledul 1 aprins partial
- ledul 2 aprins partial

  Daca se comanda un driver cu L298, de exemplu, iesirile montajului,  OUT1 se leaga la intrarea IN1 a modului driver, OUT2 la IN2, se pastreaza jumper-ul pentru EN(able), se conecteaza GND de la Arduino la GND al modului driver si se leaga la iesirile modulului driver OUT1 si OUT2 un motor de curent continuu.

   Schema modului de comanda motoare cu L298 are o schema asemenatoare cu care o gasim in articolul Circuit Schematic of Generic L298N Driver Board
iar pentru intelegerea functionarii integratului L298 puteti studia fisa de catalog (datasheet-ul).