Jump to content
ELFORUM - Forumul electronistilor

Ground comun


Guest dragos408

Recommended Posts

Guest dragos408

Lucrez la un dispozitiv portabil bazat pe ATmega 328, iar tensiunea de 5V o sa fie data de o baterie LiPo (3.7V) si un boost converter (un modul Pololu).

 

Aici e schema modului de incarcare:

Posted Image

 

Aici e modulul in circuitul meu:

Posted Image

 

Vreau sa monitorizez tensiunea pe pinul USB+ si aplicatia sa emita un scurt semnal sonor cand incarcatorul e conectat, prin acest cod:

int piezoPin = 8;boolean alreadyBeeped = false;void setup() { pinMode(piezoPin, OUTPUT); pinMode(9, INPUT);} void loop() {  if(digitalRead(9) == HIGH )   {   if(!alreadyBeeped){   tone(piezoPin, 1000, 500);   alreadyBeeped = true;   delay(1000);   noTone(piezoPin);   }   } else {   alreadyBeeped = false;   }}

Ca sa pot monitoriza tensiunea pe USB+ trebuie sa am ground comun pentru modulul de incarcare si restul aplicatiei.

 

Vreau sa va intreb daca credeti ca o sa fie probleme atunci cand dispozitivul e pus la incarcat. Eu cred ca nu o sa fie, tensiunea va fi mereu stabilizata la 5V de convertorul boost.

 

As vrea sa evit lipirea unui fir pe pinul 7 al IC1 (TP4056) si sa monitorizez tensiunea acolo.

 

Pareri?

Edited by dragos408
Link to comment
  • 2 months later...
  • Replies 12
  • Created
  • Last Reply

Top Posters In This Topic

Guest andreyfitza

Stiu ca intrebarea a fost pusa mai demult dar poate ca raspunsul iti va fi util.

 

Este extrem de recomandat ca alimentarea microcontrolerelor sa fie facuta independent de restul componentelor din circuit. Daca acel "ground" fluctueaza, va fluctua si gndul microcontrollerului. In acest caz referinta iti va creste si vei avea citiri eronate.

 

In locul tau, as citi intrarea aceea pe o intrare analogica si in cazul in care este cu 50% mai mare decat jumatate din rezolutia adc-ului din microcontroller (>512 in cazul arduino) sa iti dea acel semnal sonor.

Link to comment

Nu am inteles care este problema masei, boosterul nu are masa comuna ?

 

Eu as aborda problema nu cu o intrare digitala ci cu una analogica, practic se monitorizeaza constant tensiunea de intrare si se masoara cu o precizie suficienta. Daca detecteaza in jur de 5V poate sa faca un sunet.

Eu as recomanda alimentarea controllerului direct de la baterie, daca nu sunt alte exigente in ceea ce priveste iesirile, nu de alta dar un modul booster va avea randamentul lui si consumul in gol care nu este neglijabil.

 

O alta abordare ar fi ca in locul ledului care indica incarcarea sa se conecteze un optocuplor, bineinteles cu ledul in locul celui eliminat si tranzistorul de iesire conectat (cu rezistenta in colector spre + al controllerului) la o intrare digitala.

Link to comment
Guest andreyfitza

Sunt nspe mii de probleme care pot aparea in functie de cum sunt dispuse traseele pe PCB. Este un fenomen care se cheama ground bounce. Efectele pot fi atat de mari incat tensiunea poate creste cu 1-2 V. Oricare doua trasee formeaza un condensator. Nu? Daca langa traseeul de masa ai un semnal care fluctueaza, deja vei avea referinta de 0 schimbata si convertorul Analog2Digital isi va schimba referintele.

 

De regula se folosesc doua trasee separate pentru masa. Notate deobicei cu AGND pentru circuitul analogic si DGND pentru cel digital.

Link to comment

TP4056 este un incarcator tipic pentru bateriile Li-Ion si nu functioneaza in regim de comutatie. Fenomenul de "ground bounce" apare la circuitele care lucreaza in comutatie, ori nu este aici cazul. Foloseste linistit schema pe care ti-ai propus-o si, ebventual, conecteaza cele doua trasee de masa cat mai aproape de sursa de alimentare.

Link to comment
Guest dragos408

Am terminat aplicatia in urma cu ceva timp. Am folosit GND comun in cele din urma fiindca eram presat de timp si asta a fost cea mai simpla solutie.

Link to comment
Guest andreyfitza

Nu am zis ca nu va functiona. Am mers pe premisa ca nu va folosi un microcontroller doar ca sa faca un buzzer sa bazaie.

Link to comment

putea sa faca cu un ne555, sau cu un attiny mai ieftin ceva. si oricum nu conta prea mult ca danseaza tensiunea acolo, ca in cod nu se face nici o citire, pur si simplu se alimenta  si atat.

 

codul era mult mai simplu...sa fim seriosi:

void setup() { pinMode(8, OUTPUT); tone(8, 1000, 500);}void loop() {}

asta-i tot.

Link to comment
Guest dragos408

Adica inca un IC doar pentru aceasta functie ? In plus, codul propus de tine nu o sa functioneze niciodata pentru aceasta functie.

Link to comment
Guest andreyfitza

Eu tot nu am inteles daca scopul proiectului este sa faca si altceva sau doar sa scoata un bazait cand conectezi alimentatorul.

 

Exista o posibilitate pentru codul lui Aw Genetix sa functioneze si asta daca alimentezi microcontrollerul din mufa USB. Cand alimentarea este conectata pe mufa, microcontroller-ul va porni si va rula functia tone pentru o singura data (fiind in setup). Nu sunt 100% sigur daca Arduino IDE se va plange ca functia tone este pusa in "setup", dar nu cred ca este cazul.

Edited by andreyfitza
Link to comment

Adica inca un IC doar pentru aceasta functie ? In plus, codul propus de tine nu o sa functioneze niciodata pentru aceasta functie.

 Probabil vroiai sa scri, uC, pentru ca IC sunt toate. Si da, uneori e mai ieftin decat un NE555. Esti foarte sigur pe tine, cand afirmi ca nu o sa functioneze ? :) Mai bine incearca apoi fa obiectii... Va face exact ce face si codul lui de mai sus. fara nici o diferenta. Nici eu nu vad sensul beep-ului, dar poate are el vreun motiv...

Edited by Guest
Link to comment
Guest dragos408

Probabil voiai sa scrii "voiai", sau "scrii" cu doi de i, eu "IC" am vrut sa scriu. Intr-o aplicatie portabila un IC in plus pe PCB iti ingreuneaza mult munca.

 

Am spus in primul mesaj ca e vorba de un dispozitiv portabil, insa intr-adevar, n-am oferit foarte multe detalii. E vorba de un dispozitiv ce se poate purta la incheietura, cu ajutorul caruia sa poti scana layoutul mediului inconjucator (folosind ultrasunete). Dispozitivul ofera feedback audio si/sau tactil, in functie de comenzile vocale pe care le primeste de la utilizator (comenzi inregistrate pe telefon si trimise prin Bluetooth catre dispozitiv).

 

Acel sunet pe care il scoate atunci cand e pus la incarcat e doar o functie suplimentara. In situatia asta codul propus de tine nu o sa functioneze, o sa scoata un beep atunci cand pornesti dispozitivul (lucru pe care deja il face folosind o line de cod identica (in void setup), ca sa te averizeze ca e pornit). E nevoie de un flag ca sa implementezi aceasta functie doar din soft (in void loop), fara sa mai folosesti vreo componenta aditionala. In plus, avem nevoie de acest feedback audio in momentul cuplarii incarcatorului si atunci cand dispozitivul e pornit, nu doar la power-on.

Edited by dragos408
Link to comment

tu vrei sa spui ca ai tensiune permanenta pe [uSB+] ?

conform problemei expuse aici, tot ce vroiai era beep-ul, asa ca...

in fine...eu tac. ma bucur ca ti-ai rezolvat problema. pe care ...doar tu sti despre ce e vorba.

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now



×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.Terms of Use si Guidelines