Un indicator de treapta de viteze se poate face cu contacte, niste diode si un mic afisaj cu 7 segmente, cum prezentasem intr-un articol pe site-ul de baza in articolul afisaj stare lift
dar pentru a putea face si altceva, in viitor, de exemplu indicarea supraturari sau subturarii motorului, trebuie un microcontroler sau, cum prefer eu, o placa de dezvoltare Arduino.
Deorece nu prea dispun de timp liber, am facut acest proiect la dorinta lui George, care o s-o si monteze pe masina, nu doar teste pe masa... el sugerandu-mi folosirea unor senzor magnetici, asa ca o schema de GEAR SHIFT cu Arduino Uno arata asa:
Dupa incarcare sketch-ului GearShift_1.ino pe afisaj apar urmatoarele situatii: P in repaus, 1, 2, 3, 4, si 5 penru treptele de viteza 1, 2, 3, 4 si 5, respectiv ), 0 intermitenta pentru inapoi, iar pentru o stare nedefinita afisajul este stins (la teste s-a folosit Arduino Nano, care functioneaza identic):
Tot George a facut un filmulet, numit Gear Shift Indicator in care se vad totate starile:
Fata de articolul Afisaj cu 4 cifre controlate de TM1637 si Arduino unde am testat afisajul, am pus un senzor de umiditate si temperatura DHT11 si am modficat o librarie pentru a afisa si niste litere, de data asta am conectat un modul de ceas de timp real cu DS3231 obtinand un simplu ceas, in prima faza.
Modul obisnuit de afisare, ararata pentru ore dintr-o cifra 09, lucru, care pe mine ma deranjeaza asa ca imi afiseaza 9 cu un spatiu in loc de 0, dupa ce am modificat sketch-ul, care devine TM1637_DS3231_cloc0a.ino, partea impotrtanta fiind asta, ca se "traduce"asa: daca cifra zecilor de la ore e zero, nu se afiseaza nimic (caracterul nr. 17 din libraria modificata TM1637).
am prezentat diferentele intre aceste doua moduri de functionare.
Dupa asta am conectat un encoder KY-040, dupa cum se vede in schema de mai jos:
montajul aratand asa (se vede si un difuzor/buzzer dintr-un calculator conectat intre pinul D7 si GND)
si am modificat sketch-ul, pentru a putea schimba ora si minutele, se apasa mai lung pe butonul encoderului pentru a intra in modul de modificare, intai se modifica ora, rotind in sensul acelor de ceasornic pentru cresterea valorii, respectiv se roteste in sens trigonometric pentru scaderea valorii orei, dupa care care se apasa pe butonul encoderului pentru a trece la modificarea minutelor, dupa modificare, se apasa iar pe buton pentru a reveni la functionarea normala.
Sketch-ul care face toate acestea este TM1637_DS3231_clock1.ino iar filmuletele in care se vede modul de functionare sunt:
Dupa ce am vazut un comentariu de la un pasionat avizat de Arduino, Vlad Gheorghe, ca functioneaza si cu DS1307 in loc de DS3231 prin inlocuirea liniei RTC_DS3231 rtc; cu RTC_DS1307 rtc; mi-am adus aminte ca eu tastam inainte asa, doar ca merge foarte bine si cu DS3231 si cu DS1307, fara alte modificari.
Am facut si eu modifcarea asta si, in plus, am facut ca la reglaj orele sub 10 sa fie afisate fara 0 in fata.
Acum ceva timp am gasit articolul STABILIZED REGULATED POWER SUPPLY CIRCUIT WITH L200CV 0-30V postat pe site-ul 320volt.com, care prezinta o schema a unui alimentator reglabil de la 0 la 30V si reglaj al curentului la iesire de la 10mA la 1A. Din testele mele curentul maxim este de 1,8-2,1A (prin injumatatirea rezistentei de masurare curent R7, de la valoarea de 1 ohm la 0,44 ohmi obtinuta prin inseriarea a 2 rezistente de putere de 0,22 ohmi fiecare), ceea ce e e suficient pentru experimentele uzuale.
Dupa realizarea cablajului, am inceput sa asamblez montajul:
Am facut mai multe teste, pe diferite transformatoare, cu diversi consumatori (bec de semnalizare, bec cu leduri, etc) iar rezistenta R7 am injumatatit-o (in loc de 1 ohm are 0,44 ohmi, realizata din inseriarea a doua rezistente de 0,22 ohmi)
pana la urma punand ansamblul intr-o cutie metalica cu un transformator de 18V/1,85A si un indicator de panou digital WR-005 (ampermetru-voltmetru pentru 3,2-30V si 0-5A, sunt de 0,1 ohmi), care se conecteaza simplu:
Dupa cum se observa, am optat pentru un radiator micut racit fortat cu ajutorul unui ventilator (cooler) de 12V, alimentat impreuna cu indicatorul de panou din secundarul al doilea de 9V/0,4A.
In timpul testelor initiale, am facut si niste filmultele, in care aveam o problema cu sistemul de indicare al limitarii, datorita unei atingeri intre 2 trasee)
Pe piata se gaseste un kit de asamblat de comutator acustic cu componente discrete, in stilul celor IPRS de pe timpurile de mult apuse, asa ca m-a apucat nostalgia si ...
am achizitionat unul de pe banggood.com, in punga gasindu-se toate pisele necesare, inclusiv schema si pozitionarea pieselor pe cablaj:
Am facut un filmulet cu comutatorul acustic, numit simplu comutator acustic in care se vede modul de functionare:
Led-ul se poate inlocui cu un optocuplor clasic pentru a comanda un releu de 5..12V sau cu unul cu trecere prin zero (MOC3041) pentru a comanda un bec alimentat de retea, dar eu l-am lasat la stadiu de kit asamblat...
Fata de afisajele de 8x8 leduri controlate de MAX7219 care se pot configura dupa dorinta ca pozitionare, dupa cum am prezentat in articolul Afisaj matriceal din 8x8 leduri controlat de MAX7219, pe piata se gaseste un modul cu 4 afisaje:
Daca se incarca un sketch prezentat in articolul mentionat anterior, se observa ca textul este rotit la 90 grade pe fiecare afisaj. La inceputul acelui articol am prezentat libraria LedControl dupa informatiile gasite intr-un articol de pe site-ul tronixstuff.com, doar ca pentru modelul meu, de atunci, nu era ok, fiind rotit.. asa ca e numai bun pentru modulul de acum.
Modul de legare este identic