Sari la conținut
ELFORUM - Forumul electronistilor

Switch-uri tactile să funcționeze ca o claviatură de 7 comutatoare


Neagu Raul

Postări Recomandate

Acum 16 ore, UDAR a spus:

Dacă ar trebui s-o fac eu, aș face-o așa :

 

Am desenat un singur tranzistor/releu pentru simplificare. Se poate folosi, desigur, și alt microcontroler. 

Selector.jpg

Ideea e buna dar schema e numai pe jumatate.

Trebuie adaugata cite o dioda Zener pentru fiecare tranzistor si, eventual, o rezistenta intre baza si masa pentru a scadea factorul de amplificare. Valorile pieselor trebuie alese astfel incit tranzistorul sa nu deschida la apasarea butonului dar uC sa "simta" 1 pe porturile de intrare.

Daca se realizeaza conditia de mai sus se poate realiza si comutarea BBM si posibilitatea de a conecta doua relee simultan (E-0503 necesita treaba asta).

Link spre comentariu
  • Răspunsuri 68
  • Creat
  • Ultimul Răspuns

Top autori în acest subiect

  • Neagu Raul

    22

  • UDAR

    14

  • Mircea

    7

  • sesebe

    5

Top autori în acest subiect

Imagini postate

soluţia ar fi mai avantajoasă dacă toate releele şi butoanele sunt conectate la acelaşi port. În felul acesta, pentru o perioadă foarte scurtă de timp, butoanele pot fi citite toate in acelaşi timp, fara ca releul anclanşat "să simtă".

Dar soluţia are trei mari dezavantaje:

 

1. se folosesc foarte multe rezistenţe. Dacă s-ar utiliza o mică tastatură multiplexată cu 2X4 butoane pusă pe un port separat, schema nu ar avea nevoie decât de relee, rezistenţe pentru bazele tranzistoarelor şi diode pentru relee. Dacă se folosesc tranzistoare digitale, nu mai este nevoie de rezisenţe. Cu un ULN2003 ca driver, ar ieşi şi mai simplă.

În schimb ar fi nevoie de un microcontroler cu 2 porturi întregi.

 

2. din cauză că la apăsarea unui buton, releul respectiv anclanşează, vor fi întotdeauna două relee anclanşate în acelaşi timp, pentru o perioadă foarte scurtă de timp.

 

3. şi problema cea mai mare: ce se întâmplă dacă vine cineva şi ţine tot timpul apăsate două butoane în acelaşi timp? Sau chiar pe toate, fără să le mai dea drumul. Acuma să presupunem că cu generatorul nu se întâmplă nimic rău dacă toate releele sunt anclanşate în acelaşi timp.

 

Problemele 2 şi 3 ar fi evitate uşor dacă tastatura ar fi pusă pe un port separat. Iar rutina care citeşte tastatura, poate filtra contactele imperfecte ale butoanelor şi nu va lua nici o comandă dacă sunt apăsate mai multe butoane în acelaşi timp.

 

Cea mai simplă soluţie ar fi un microcontroler cu 20 pini + ULN2003 + relee + tastatură 2x4 sau 3x3. Mai trebuie o rezistenţă şi condesatorul pentru RESET, plus condesatorul care se pune obligatoriu pe alimentarea microcontrolerului.

 

 

 

Editat de cimitavita
Link spre comentariu
Acum 11 ore, Neagu Raul a spus:

Se pare că am găsit un integrat care face cam ce vrem să facem noi aici dar nu se mai fabrică...

Membrii forumului au facut de mai multe ori de aici grup-buy ,sunt seriosi si sunt UE 

SAS560S Siemens la 2 euro buc , la 25 buc=1.50

https://electols.com/shopping/en/ic/29297-sas560s.html?search_query=sas560s&results=1

Link spre comentariu

Mai ai și:

   -varianta cu MMP710/MMP711 -caută schema folosită în tv Cromatic 02 (Telecolor 5601),sau poate mai are cineva modulele programatorului   (Tv Cromatic s-a făcut și cu SAS-uri)

 

    -varianta din Tv Elcrom(Alfa ) cu tranzistoare (la fel,cauta schema,sau vezi poate mai gasesti module)

    *deschide topic pentru scheme/pune anunț la cumpărări pentru module (la ”Bodegă”,etc)*

 

 

Link spre comentariu
Acum 2 ore, d2134 a spus:

Ideea e buna dar schema e numai pe jumatate.

Trebuie adaugata cite o dioda Zener pentru fiecare tranzistor si, eventual, o rezistenta intre baza si masa pentru a scadea factorul de amplificare. Valorile pieselor trebuie alese astfel incit tranzistorul sa nu deschida la apasarea butonului dar uC sa "simta" 1 pe porturile de intrare.

Daca se realizeaza conditia de mai sus se poate realiza si comutarea BBM si posibilitatea de a conecta doua relee simultan (E-0503 necesita treaba asta).

Ce să facă dioda Zener?

De ce să scad factorul de amplificare? Ajustarea analogică, din valorile unor rezistențe în funcție de sensibilitatea releului și amplificarea tranzistorilor, mi se pare o monstruozitate într-un context digital. Problema comutării BBM în cazul releelor este rezolvată - am aratătat deja cum - iar necesitățile concrete ale unei aplicații nu au constituit o cerință de proiectare . Repet, este un subiect distinct față de refacerea/recondiționarea/modernizarea E0503. Nu a rezultat de niciunde necesitatea posibilității activării a două relee simultan . De altfel niciuna din soluțiile propuse aici nu face acest lucru. 

Evident că folosirea unui µC cu mai mulți pini ( cum s-a sugerat și mai sus) , folosind deci intrări și ieșiri distincte, ar simplifica problema și ar permite și alte funcții cerute . Schema mea a fost propusă în contextul comparației ”Cum este mai simplu/ieftin ?” . Vă rog să nu o scoateți din acest context .

 

Link spre comentariu

Ce e aici e strict pentru claviatură, deoarece s-a folosit în multe aparate și uneori înlocuirea acesteia este imposibilă așa că un subiect cu o metodă simplă de înlocuire

Link spre comentariu
Acum 5 ore, UDAR a spus:

Problema comutării BBM în cazul releelor este rezolvată - am aratătat deja cum

Daca nu deranjez prea mult cursul discutiilor, cum ai rezolvat BBM cu schema propusa ?
Se poate , utilizand aceasta configuratie hard, sa nu ai doua (sau mai multe) relee actionate simultan ?

 

Editat de Vizitator
Link spre comentariu

Am scris dar poate nu am fost prea explicit deci reiau.

Starea normală a programului este de a face polling pe cei 7 pini . Imediat ce detecteaza un ”1” pe alt pin decât cel care este ieșire activă la momentul respectiv face toți pinii ieșiri și îi pune în ”0” .  Asta face ca intervalul de timp cât baza releului este polarizată să fie de ordinul zecilor de microsecunde - insuficient pentru acționarea releului. Apoi, după o întîrziere de câteva milisecunde (timp suficient ca releul vechi să se dezactiveze) face toți pinii intrări cu excepția pinului corespunzător releului nou pe care îl pune în ”1”. După acest moment menținerea butonului nu mai are relevanță pentru că pinul a devenit o ieșire activă în ”1”.

Rolul rezistențelor din serie cu switch-urile este tocmai de a limita curentul pe perioada cât butonul este apăsat și pinul este ieșire în ”0”. Acest timp este și el destul de scurt - practic întârzierea de câteva ms.

 

PS Încă nu am testat, am eliberat doar un breadboard de un proiect mai vechi.

Editat de UDAR
Link spre comentariu
Acum 25 minute, UDAR a spus:

Imediat ce detecteaza un ”1” pe alt pin decât cel care este ieșire activă la momentul respectiv face toți pinii ieșiri și îi pune în ”0” .  Asta face ca intervalul de timp cât baza releului este polarizată să fie de ordinul zecilor de microsecunde - insuficient pentru acționarea releului.

"Imediat" sună cam ciudat in general. Mai ales in programare.
Nu cred că solutia propusă are sanse să rezolve problema "break before make".

 

Link spre comentariu

Mă surprinde comentariul legat de ”imediat” mai ales că nu e însoțit de o alternativă mai bună dar asta să fie singura problemă.... ( Hi!).

În ce privește funcționalitatea soluției mai mult nu pot să spun acum . Vom vedea după testare.

 

@Neagu Raul Momentan un PICKIT2. Am comandat și un PICKIT3 care va sosi peste vreo două săptămâni.

Link spre comentariu
Acum 7 minute, UDAR a spus:

Mă surprinde comentariul legat de ”imediat”

Asta deoarece "imediat" se va activa si releul corespunsator butonului apasat.
Si vom avea doua relee active.
PIC-ul nu poate face nimic ca sa resolve problema asta. Nu ?

Cam asta am vrut sa zic.


 

Link spre comentariu

Sau eu explic groaznic de prost sau tu citești neatent.

Deci : apăs butonul, după câteva zeci de instrucțiuni îl depistez, îl memorez într-o variabilă, fac toți pinii (deci inclusiv cel la care am apăsat butonul) ieșiri și îi pun în ”0”.  Baza tranzistorului va fi polarizată din momentul apăsării butonului până în momentul trecerii ieșirii în ”0” adică zeci de microsecunde - releul nu are timp să se atragă. 

Da, vor fi doi pini cu potențial ”1” simultan dar un timp insuficient pentru atragerea releului.

Link spre comentariu

Ca sa se evite suprapunerea celor cateva zeci de us, rezistenta de pull-up serie cu butonul poate avea o valoare aleasa cat sa nu asigure suficient curent in baza tranzistorului. Asa se impaca si break-ul, dar si make-ul. Dar cred ca a mai sugerat cineva asta.

Link spre comentariu

Creează un cont sau autentifică-te pentru a adăuga comentariu

Trebuie să fi un membru pentru a putea lăsa un comentariu.

Creează un cont

Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!

Înregistrează un nou cont

Autentificare

Ai deja un cont? Autentifică-te aici.

Autentifică-te acum



×
×
  • Creează nouă...

Informații Importante

Am plasat cookie-uri pe dispozitivul tău pentru a îmbunătății navigarea pe acest site. Poți modifica setările cookie, altfel considerăm că ești de acord să continui.Termeni de Utilizare si Ghidări