Pentru a putea reduce numarul de butoane sau pentru evitatea intrarii in modul de modificare de parametii se foloseste facilitatea de apasare mai lunga a unui buton. De asemenea, se pot comanda 2-3 iesiri diferite functie de timpul de apasare, ce poate fi indicat optic sau pe un ecran. Aplicatiile sunt multe, una din ele este si cea prezentata in articolul anterior, Modul temporizator reglabil pentru stergatoare de Logan/Renault.
In mare, se foloseste functia millis(), care indica la momentul accesarii timpul, in milisecunde, de cand a pornit Arduino, de fapt microcontrolerul ATMega.
Intr-o variabila se stocheaza valoarea cand se apasa butonul si se se verifica daca s-a depasit un timp impus. Eu am pus sa se aprinda un led, iar in ecranul de monitorizare seriala vad cat e tampul de apasare si cu e el fata de cel impus.
Pentru un buton programul este pushtime1button.ino, iar pentru 2 butoane, cu timpi diferiti este pushtime2buttons.ino.
Schemele de conectare sunt:
Materialul mi-a fost trimis de dl Liviu HINOVEANU si nu am o prea mare contributie la conceperea lui, asa ca daca va intereseaza detalii contactati-l de dumnealui pe email (liviuhinoveanu@gmail.com). Pentru cei pasionati de domeniul auto, tot de la dumnealui am primit materialul cu Modul "Daytime Running Light" (DRL) cu ATtiny85.
Funcționare modul stergatoare cu temporizare reglabilă
Timpul de temporizare a stergătoarelor la multe autoturisme este fix . Pentru modificarea timpului de temporizare se trece maneta din pozitiain pozitia zero în poziția de ștergere temporizată (pozitia 1 la Logan, Sandero, Renault ), stergătoarele vor stege initial odată apoi la intervale regulate de 5 secunde cum o facea si UCH-ul si, pentru modificarea timpului se trece maneta din poziția 1 în poziția 0 si se lasa pana cand geamul nu mai ofera suficienta vizibilitate si consideram ca trebuie ca stergatoarele sa baleieze, repunem maneta in pozitia stergere temporizata, moment in care se memoreaza timpul de asteptare in pozitia zero ca timp de temporizare, nici nu ne intereseaza efectiv acest timp si are loc stergerea imediata, urmatoarele stergeri au loc la intervalul memorat. Daca timpul memorat este mai mic de 2 sec sau mai mare de 15 secunde ramane memorat timpul anterior. Ce face intrarea de sprituitoare? La apasarea manetei in pozitia spalare geam, UCH-ul stie sa dea o baleiere daca s-a tinut apasat sub 0,3 secunde sau 3 baleieri daca s-a tinut mai mult, uneori lichidul de parbriz mai ajunge pe plafon si dupa 4-5 secunde incepe sa se scurga pe geam, modulul prin intrarea sprituitoare asteapta 5 secunde si mai comanda o încă baleiere .
Montare
- Firul de la manetă care dădea comanda de ștergere temporizată către UCH (A1 la Logan) se taie. - Capătul dinspre maneta(ieșirea manetei) se leagă la intratea temporizată a modulului. - Ieșirea modulului se leagă la intrarea temporizată a UCH-ului. - Întrarea auxiliară a modulului se leagă la ieșirea sprițuitoare a manetei (A4 la Logan) - Plusul modulului se ia de la plusul contact al manetei (pin A7) - Masa modulului se leagă la caroseria mașinii
Funcționare
R1/R2 ȘI R3/R4 asigură translatarea nivelului analogic de 12 volti in nivel logic(divizor1/3). Microcontrolerul prin optocuplor da cei 12V către UCH pe o perioadă de 200 milisecunde ca și când am pune scurt timp maneta în poziția1, UCH ul comanda stergerea, iar stergătoarele prin contactul lor cu camă continuă până revin la zero. Dacă folosim sprițuitoarele asteaptă 5 secunde apoi prin aceiași ieșire mai comandă o baleiere.
Realizare
Pentru a nu mai da gauri în cablaj pentru microcontroler am realizat cablajul acestuia în oglindă iar integratul l-am lipit direct pe spate dupa ce i-am indoit pinii la 90 de grade .
Liviu HINOVEANU
Modul de temporizare reglabila a baleierii stergatoarelor asigura este realizat cu un microcontroler micut, un ATtiny85 programat cu limbaj Arduino, dupa cum am prezentat in mai multe articole, de exemplu articolul Programator pentru ATtiny25/45/85 cu Arduino Nano. Programul, scris de dl. Liviu Hinoveanu, care se foloseste pentru acest modul este wiper_timer_0.ino.
Am primit si posta un filmulet numit Modul temporizator reglabil pentru stergatoare de Logan / Renault, care descrie si functionarea si cum se monteaza montajul:
Bogdan Argatu mi-a aratat inca un articol interesant, de data asta cu un ceas matriceal animat ce foloseste un ESP8266 ce ia ora de pe un server si o compara cu cea a ceasului RTC (cu DS3231).
Articolul acela este inspirat de materialul de la github.com/schreibfaul1/ESP8266-LED-Matrix-Clock unde se gaseste si schema
Programul, cu foarte mici modificari fata de cel original, este esp8266_ntp_rtc.ino.
Bogdan mi-a trimis poze din timpul realizarii si asamblarii:
Eu am testat doar un motoras de curent continuu, asa ca tot pentru asta voi face testele...
In prima faza am conectat la o placa Arduino Nano (asta era la indemana, dar se pot folosi majoritatea placilor de dezvoltare) la receptor, conectand cele 4 iesiri ale receptorului la placa Arduino (D2, D3, D4, D5) si testand modul de functionare, iesirile A sa aprinda un led la intensitatea reglata, respectiv B pentru a aprinde alt led la intensitatea reglata, iesirea C comanda scaderea intensitatii, iar D cresterea acesteaia, dupa cum se vede in filmuletele;
- Sistem de comanda radio pentru directie si turatie motor de curent continuu
Programul folosit se numeste slider_0.ino si poate fi testat fara probleme... din el reies si conexiunile dintre placa Arduino si receptor; curand voi posta si schema de conexiuni...
In articolul precedent am prezentat pe scurt si am testat un modul ce poate comanda in ambele sensuri doua motorase de curent continuu cu integratul L298, de data asyta voi folosi si un sistem de comanda radio la distanta
Deoarece driverul cu L298 se poate comanda cu semnale logice normale (5V), am legat un modul receptor cu integrat PT2272 ce are 4 iesiri direct la el, alimentarea receptorului facandu-se din driver, ca are stabilizator integrat de 5V.
Am facut o schema de conectare, pentru a fi mai usor de reprodus experimentul:
Am facut si 2 filmulete, in care se vede modul de functionare, doar c ma avut la indemana un singur motoras de curent continuu cu reductor si daca apas pe butonul A de pe telecomanda se invarte in sens trigonometric, iar daca apas pe butonul B se invarte in sensul acelor de ceasornic:
- comanda de la distanta rotire in ambele sensuri motor
Am schimbat sursa de alimentare liniara (realizata cu LM723 de albasete), cu una care este realizata dintr-o sursa de PC de cca 28-30V (modificata de Vlad Gheorghe) si completata cu un stabilizator in comutatie (step-down) cu XL4016 (in film ma referisem la XL4015), curent maxim de 8A, dar in teste e arhisuficient pentru 5A.
Am primit in teste (pentru un mic proiectel) un modul (driver) pentru 2 motoare de curent continuu, care are la baza integratul L298 Acest integrat poate comanda bobine, electromagneti, motoare de curent continuu sau motoare pas cu pas.
Placa de e in teste are o prezentare frumoasa in articolul Introduction to L298 A complete step by step tutorial on Introduction to L298
ATIVA = activare, utilizare functie
Schema este cam cea prea prezentata acolo
in sensul ca:
- alimentarea se poate face de la 8-35V (bineinteles pentru consumatori mici, nu recomand oricum mai mult de 9-12V) sau de la 5V (pe montaj se scoate "jumperul" notat "ATIVA 5V", iar pe schema JP6)
- conectand un motor de curent continuu de 3-5V la iesirea MOTOR A, se da comanda de rotire intr-un sens prin punerea unui semnal logic 1 (5V) pe IN1, respectiv de rotire inversa prin punerea demnalului de 1 logic pe pinul IN2
- conectand un alt motor de curent continuu de 3-5V la iesirea MOTOR B, se da comanda de rotire intr-un sens prin punerea unui semnal logic 1 (5V) pe IN3, respectiv de rotire inversa prin punerea demnalului de 1 logic pe pinul IN4
In articolul L298 H BRIDGE sunt descrisi pinii in engleza, ceea ce e o prezentare mai familiara, in general.
Eu am conectat un mic motor cu reductor pe iesirea MOTOR 2, alimentand cu 8V, ceea ce face ca stabilizatorul de pe placa sa fie in functiune (jumper de conectare iesire stabilizator la placa montat), am lasat si jumpe-ii ceilalti montati si am testat functionarea...
Eu vreau sa-l testez cu o placa Arduino, cum e prezentat si in articolul mentionat intial (acolo a fost uitata "masa" dintre placa Arduino si alimentarea driver-ului cu L298)
dar si sa o comand direct cu o telecomanda cu 4 canale cu integratele PT2262/PT2272:
Dupa cum se observa, trebuei conectate 5v, GND pentru alimentare si iesirile A, B, C, D la IN1, In2, In3 si IN4, cel putin teoretic...
Fata de celelalte versiuni, aceasta are multe animatii, fiindu-mi aratat de unul din cititorii blogului, Ady Sos, care a si tradus indicatiile pentru data si indicatii, eu facand doar adaptare pentru DHT22 (DHT11) fata de ce gasise Ady in articolul Multi Mode Digital Clock, ca se s-a inspirat din acelasi articol Mini LED Clock (gasiti si librariiile utilizate la https://github.com/mrnick1234567/miniclock ) 😉
Pentru teste am folosit aceeasi schema ca si in la celelalte variante, doar ca nu are implementata partea de alarma:
Primul program (Mini_ceas_V.1.0-joergeli-niq_ro.ino) a avut doar mici modificari fata de ce mi-a trimis Ady, folosindu-ma de fisierul neamtului pentru caractere. Modul de prezentare al informatiilor se vede in filmuletele:
01.06.20.19
Deoarece am fost atentionat ca ora n se schimba corect (aparea cu -1 fata de cea reglata), m-am uitat in cod si am gasit o parte de autocorectie functe de vara/iarna, pe care am scos-o si pare ok acum... sketch-ul Mini_ceas_V.1.0-joergeli-1-4a-niq_ro.ino este cu autocorectia scoasa.