Sari la conținut
ELFORUM - Forumul electronistilor

Experiente cu intrerupatoare si "wetting current"


Blacksmith

Postări Recomandate

Am un montaj cu microcontroler Raspberry Pi Pico care trebuie sa citeasca daca un intrerupator este inchis sau deschis ca sa stie cand se cere shutdown. Intrerupatorul pe care l-am folosit este in genul asta: https://www.lcsc.com/product-detail/Rocker-Switches_Legion-SS21-BBIWG-D_C6775924.html. Fiind vorba de o chestie atat de serioasa (shutdown) nu trebuie sa existe declansari false. Eu am testat circuitul din imagine cam 1 an de zile, si am tot primit shutdown-uri necerute. Recent am descoperit ca intrerupatoarele au nevoie de un curent minim, numit "wetting current", ca sa functioneze corect. Pentru a rupe stratul de oxid format pe contacte... Dupa cum se vede pe schema, curentul meu era in jur de vreo 70uA ! Deci probabil ca e prea mic...  Voi v-ati lovit cumva de problema asta ? Aveti idee cam ce curent mi-ar trebui pentru intrerupatorul din link ? I-as da 2mA... O fi de ajuns ?

 

screenshot.9.thumb.png.b8b852e26baa5917bed34b6fffc6eb7e.png

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

Top autori în acest subiect

  • Blacksmith

    8

  • mihaiaurul

    3

  • UDAR

    2

  • cimitavita

    1

Zile populare

Top autori în acest subiect

Imagini postate

Rutina soft care trateaza acest buton cum arata ?
Si, in general, este bine ca atunci cand dai o comanda unui procesor printr-un intrerupator să pui la GND acel pin.
La tine starea "activa" (intrarea in shutdown) este cand pin se duce la alimentare.
R2 ce rol are ?

 

Editat de mihaiaurul
Link spre comentariu

Indiferent ce rutina soft ii fac, tot se reseteaza... I-am dat delay de 2s si tot degeaba, se pare ca intreruperea este mai mare de atat.

R2 este pt limitarea curentului prin contact la scurtcircuitarea condului...

 

Acum 6 minute, mihaiaurul a spus:

cand dai o comanda unui procesor printr-un intrerupator să pui la GND acel pin.

 

De ce ? Ce conteaza ca e pe front crescator sau descrescator ? Da, la mine, cererea de shutdown era semnalizata prin 1 logic.

 

M-am gandit sa fac asa:

 

screenshot_10.thumb.png.78a4a1f8c4fa62b4de7939133d30577e.png

Link spre comentariu
21 minutes ago, Blacksmith said:

Ce conteaza ca e pe front crescator sau descrescator ?

Cand pinul este la GND influenta zgomotului electric din jur este mai mică.
Adică, zgomotul poate să facă din High->Low. Invers este mai greu.
 

Editat de mihaiaurul
Link spre comentariu

Stai, ca le-am incurcat...

Deci intrerupatorul meu, este dublu, si cealalta pereche de contacte are alta functie. Din cauza asta comanda de shutdown trebuie data cand comutatorul se deschide... Adica, cand se trece de la "inchis" la "deschis".

Deci tot ca in prima schema tre sa fac. Dar cu valorile din a doua...

 

Pana la urma, despre "wetting current" nu stii nimic ? Ca asta e problema, nu zgomotele. Pe alea pot sa le scot din soft.

Editat de Blacksmith
Link spre comentariu
14 minutes ago, Blacksmith said:

Pana la urma, despre "wetting current" nu stii nimic ? Ca asta e problema, nu zgomotele.

Nu m-a interesat asta. Si nici nu cred ca acest fenomen este cauza problemelor tale.
Eventual pune acolo 4k7, maxim 10k in loc de 47k.

 

Link spre comentariu

Pai altceva ce poate sa fie... ? Ca ti-am zis, nu sint doar spike-uri de tensiune, pentru ca am asteptat si 2 secunde dupa ce am primt frontul crescator, si apoi am citit din nou nivelul pinului, si era tot sus. Nu are cum sa existe zgomote cu durata de peste 2 secunde...

Link spre comentariu

Scoate condensatoare, scoate tot. Nu mai pune piese aiurea. Ori e analogic, ori e digital. Ambele complică lucrurile foarte mult.

Filtrele și temporizările se bagă în softul uC care comandă releul respectiv. Trebuie stabilite niște condiții foarte clare pentru ca uC să facă shut down sau o altă comandă. Eventual să înregistreze pentru debug în eeprom sau într-o memorie externă motivul și condițiile care au apărut și pentru care a făcut shut down ca mai târziu să vezi unde ai greșit în program.

De pildă, rutina de citire a unei tastaturi are filtre software care scot paraziții care apar la apăsarea unui push button în cazul în care contactele sunt un pic oxidate și nu se fac perfect. Fără filtre, în loc de o singură apăsare a butonului, uC ar lua câteva apăsări ale butonului respectiv și programul ar merge total aiurea. În felul ăsta nu este nevoie să pui condensatoare în paralel cu fiecare push button. În plus, la butoanele conectate în matrice e imposibil să pui condensatoare. 

 

La atmega dacă pui un buton care trebuie citit de uC, este de preferat ca butonul să fie pus la masă datorită felului în care atmega citește intrările. Activezi pull-up pe pinul respectiv și nu ai nevoie de nici o rezistență externă. Dacă pui butonul pe plus, nu poți folosi filtrele hardware care sunt puse la fiecare intrare și o să ai multe citiri false. Iar când comanzi un led sau releu, este de preferat ca ieșirea respectivă să absoarbă și nu să dea curent. Adică ledul sau releul îl pui între plus și ieșirea uC (cu eventualele rezistențe de limitare a curentului).

 

Dacă contactele releului merg in cc, pentru curățirea contactelor, se leagă în paralel cu contactele un condensator de 2,2-22nF. Fiecare scânteie ajută la curățarea contactelor. Dar dacă releul este acționat foarte des, condensatorul "ajută" la distrugerea prematură a contactelor. 

Link spre comentariu

Chestia e ca eu nu folosesc nici Atmega, nici tastaturi si nici relee... 

Condensatoarele pe intrarile de butoane sint foarte comune, se numeste "debouncing". Nu conteaza ca e digital, cu cond acolo tensiunea aia scade si creste un pic mai incet, atata tot. Da, fac si din software debouncing. Dar nu strica sa ai si hardware...

La Pico, poti sa faci intrarile si pull-up, si pull-down. Dar rezistentele pe care le foloseste el intern sint de 47k. Ca asa am si facut prima data (de aia era rezistenta aia de 47k pe schema). Si dupa cum am spus, nu a mers... din cauza de "wetting current" de care n-a auzit nimeni.

Link spre comentariu

Eu nu cred că este de la ”wetting current”, ar trebui să fie extrem de prost comutatorul ăla. Ar trebui să prezinte o rezistență de contact de 10kΩ sau mai mult! Și chiar și așa (adică prost fiind) se oxidează în timp ce este închis? Înțeleg să nu facă contact din cauza oxizilor la trecerea de la deschis la închis dar așa, din senin ? 

Și da, am auzit de ”wetting current” dar la relee (pentru ceva proiecte am studiat destul de mult diferențele între releele de semnal și cele de putere) nu la întrerupătoare. Da, întrerupătorul ăla nu este adecvat acolo dar sunt aproape sigur că nu de la el e problema.

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

Ar trebui să prezinte o rezistență de contact de 10kΩ sau mai mult

 

Pai initial poate sa faca bine contact si apoi sa piarda contactul din cauza ca trec doar 70uA prin el.

 

Acum 14 minute, UDAR a spus:

Da, întrerupătorul ăla nu este adecvat acolo

 

Tu cum ai face in locul meu ? Ce fel de intrerupator sa pun si ce schema sa fac ?

Problema este ca mie imi trebuie un intrerupator cu 2 perechi de contacte. Iar una trebuie sa fie de putere (2-3A minim), ca va fi intrerupatorul principal de pe alimentare, iar cealalta e asta care da comanda de shutdown (ca ramane pe baterie, chiar daca ii intrerup eu alimentarea). Din cauza asta nu pot da comanda decat prin intreruperea circuitului. Ca daca era invers, nu era problema... As mai putea folosi un intrerupator DPDT si sa folosesc contactele opuse, dar nu cred ca exista din asta mic si DPDT.

 

Acum 14 minute, UDAR a spus:

dar sunt aproape sigur că nu de la el e problema

 

Inteleg... dar nu prea sint alte variante. Circuitul ala l-am folosit la NAS-ul meu cu Raspberry Pi 4. Si, in afara de ala, altceva nu am avut acolo...

Editat de Blacksmith
Link spre comentariu

Nu știu ce ai tu acolo deci mi-e greu să-ți propun soluții. Poți de pildă să sesizezi lipsa alimentării (după ce s-a deschis cealaltă secțiune care ar deveni unica) cu un optocuplor sau ceva. Nu știu dacă ți se potrivește.

 

Link spre comentariu

Nu merge sa iau semnalul de pe alimentare, ca nu vreau sa-si dea shutdown cand pica reteaua, ci sa ramana pe baterie. Vreau sa isi dea shutdown doar cand actionez eu mecanic intrerupatorul...

Link spre comentariu

Existau butoane de power pt TV-uri veci ce aveau și un contact aditional de mica putere ce dedea comanda la procesor. Poți cauta unul de ala. 

Apoi rezistenta de limitare a curentului din condesator o pui de doar citiva ohmi nu zeci de kohm. 

Iar mai apoi cum demonstrezi ca cele citeva reseturi apărute în decurs de un an au fost generate de acest buton cu probleme și nu au fost generate de altceva? Faptul ca ție posibil să-ți fi rămas un log în care să apară comanda de la buton nu garantează ca intradevar a fost o comanda falsa de la buton (pe partea HW externa procesorului).

Link spre comentariu

Deoarece totul e facut de mine, iti dai seama ca am facut cumva sa ma asigur ca e de la buton. Pe de alta parte, butonul este si acum acolo, insa e dat disable din soft de vreo 6 luni, si nu a mai existat nici un shutdown din senin...

 

Daca ne cunoastem de 10-15 ani si tu imi recomanzi mie sa caut intrerupatoare prin tv-uri vechi... inseamna ca n-ai inteles nimic din ce fac eu... Asta faceam acum 25 de ani. Aveam un boschetar abonat pe care il plateam sa-mi caute placi electronice defecte prin tomberoane, ca nu aveai de unde sa cumperi. Dar intre timp am mai evoluat si noi... Acum, nu doar ca folosesc doar piese noi la produsul final, dar trebuie neaparat sa fie piese in productie activa si sa existe stocuri mari la magazin. Nu fac productie de serie ca sa vand, dar nu concep ca un montaj al meu sa nu poata fi reprodus oricand de oricine doreste, pentru ca nu se mai gasesc piesele. 

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