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:
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:
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
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
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.