Sari la conținut
ELFORUM - Forumul electronistilor

citirea tensiunii cu un PIC


Vizitator comma

Postări Recomandate

Vizitator comma

salut

ma intereseaza sa citesc ce tensiune am la bornele unei baterii cu un PIC 16F628A

mai exact m-ar interesa sa fac un fel de protectie a bateriei in functie de tipul acesteaia

vreau sa folosesc 4 tipuri de baterii care, sub o anumita tensiune, sa fie oprite :

- lipo 3 celule 11.1V ... sa se opreasca sub 9.6V (adica minim 3.2V / celula)

- lipo 2 celule 7.4V ... sub 6.4V

- nimh 8 celule 9.6V ... sub 7.2V (adica sub 0.9V / celula)

- nimh 7 celule 8.4V ... sub 6.4V ... aceeasi tensiune minima ca la lipo 3 celule

programul arata ceva de genu:

if BatteryType = 1 then			-- tip baterie LiPo 3 cell 11.1V	if pin_A0 = high		-- daca am (+) pe pinul respectiv		BatteryPower = 1	-- Baterie ok	elsif pin_A0 = low		-- daca am (-) pe pinul repectiv		BatteryPower = 0	-- Baterie descarcata ... adica tensiune sub 9.6V	end ifelsif BatteryType = 2 then		-- tip baterie LiPo 2 cell 7.4v	if pin_A1 = high		-- daca am (+) pe pinul respectiv		BatteryPower = 1	-- Baterie ok	elsif pin_A1 = low		-- daca am (-) pe pinul repectiv		BatteryPower = 0	-- Baterie descarcata ... adica tensiune sub 6.4V	end ifelsif BatteryType = 3 then		-- tip baterie NiMh 8 cell 9.6V	if pin_A2 = high		-- daca am (+) pe pinul respectiv		BatteryPower = 1	-- Baterie ok	elsif pin_A2 = low		-- daca am (-) pe pinul repectiv		BatteryPower = 0	-- Baterie descarcata ... adica tensiune sub 7.2v	end ifelsif BatteryType = 4 then		-- tip baterie NiMh 7 cell 8.4v	if pin_A1 = high		-- daca am (+) pe pinul respectiv		BatteryPower = 1	-- Baterie ok	elsif pin_A1 = low		-- daca am (-) pe pinul repectiv		BatteryPower = 0	-- Baterie descarcata ... adica tensiune sub 6.4V	end ifend ifif BatteryPower = 0			-- daca bateria (indiferent care ar fi ea) e descarcata	SystemPower = 0			-- opreste sistemulend if
tipul bateriei il specific eu din butoane

fiecare tip de baterie va fi verificat pe pini diferiti

problema e ca pe, pinii chipului nu pot sa pun o tensiune mai mare de 5V ... din cate stiu eu

cand pe pinul A0 am +5V ... => high

cand pinul nu mai are +5V ... ia contact cu masa => low

 

ma gandeam la ceva diode (zener) de 9.6v, 7.2V si respectiv 6.4V care sa intrerupa circuitul cand bateria e sub tensiunea respectiva ... si inca ceva care sa imi reduca tensiunea la 5 volti pe fiecare pin

 

de principiu am atasat o "schema" ... dar cum nu ma pricep prea bine ... as dori putin ajutor. ce piese sa folosesc si cum sa le pun in schema

ma intereseaza si varianta cu snd

sunt deschis si la alte idei ... daca aveti

 

va multumesc anticipat

post-22247-139829347063_thumb.jpg

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

Top autori în acest subiect

  • nico_2010

    7

  • Liviu M

    4

  • nooob64

    2

  • XAN77

    1

Top autori în acest subiect

Imagini postate

Salut!Daca PIC16F628A ar avea intrari ADC ai putea folosi divizoare de tensiune, insa nu are asa ceva ci doar comparator analogic. Si cu comparatorul se poate monitoriza tensiunea bateriilor utilizand un multiplexor gen CD4051 (multiplexor analogic) comandat de PIC.

Link spre comentariu
Vizitator comma

banuiesc ca ADC = Analog to Digital Converterajuta-ma cu acest CD4051 ... cum sa-l folosescm-am uitat putin pe specificatii CD4051 (am vazut ca exista si smd) ... o sa studiez diseara mai multdin cate stiu, parca PIC 18F2321 are ADC ... dar nu stiu daca pot sa-l programes cu programatorul meu JDMdar sa presupun ca o sa reusesc sa programez un 18F2321 ... cum folosesc aceste divizoare de tensiunemerci

Link spre comentariu

Incearca mai bine cu un PIC16F87X (unde X=0, 3, 6, 7).Au intrari de convertor analog digital si pot fi mai usor interfatate cu ceea ce vrei tu.Da-mi MP cu descrierea a ceea ce vrei sa faci exact ca sa te pot ajuta.

Link spre comentariu
Vizitator comma

PICul asta il folosesc pentru comandarea a doi tranzistori mosfet care pornesc si opresc (cu frana activa) un motor (de genul celor de casetofon) ... si intreg ansamblu e alimentat de la o baterie, baterie care nu vreau sa se consume sub limita admisa ca sa nu o bulescideea e ca am nevoie de piese tip smd ... pentru ca spatiul unde va sta montajul respectiv, e destul de micinitial ma gandise-m sa filosesc o dioda zener (stabilizatoare) care sa intrerupa circuitul daca tensiunea scade sub 9.6V ... iar in cazul in care bateria are tensiune mai mare de 9.6v si circuitul nu este intrerupt, sa folosesc ceva, tot o dioda ma gandeam eu, care sa imi reduca tensiunea la maxim 5V, ca sa pot da simnal la PIC

Link spre comentariu

nu cred ca ai nevoie de microcontroler pentru aceasta sarcina. Foloseste comparatoare, adica integrate analogice. De exemplu LM339 care este quad. Pe intrarea inversoare pui o referința care o poți face cu un TL431, orice altceva specializat sau chiar cu un zener, referinta ce o poti folosi pentru toate comparatoarele, care cu diferite divizoare rezistive comparatorul respectiv va trece in ON/OFF la diferite nivele pe intrarea neinversoare. Iesirea comparatoarelor va comanda direct mosfetii de care zici.

Link spre comentariu
Vizitator comma

am nevoie de microcontroler pentru ca vreau sa comand motorul in mai multe moduri, moduri pe care le selectez prin introducerea anumitor coduri (de genu 3 apasari scurte + 2 apasari lungi) cu ajutorul unor butoane conectate la microcontroler

tot ce ma intereseaza e ca microcontrolerul sa stie daca BatteryPower = high sau BatteryPower = low ... iar in momentul in care BatteryPower = low ... indiferent de ce comenzi ii dau eu din butoane, motorul nu se mai invarte ... semn ca trebuie sa schimb bateria

Link spre comentariu

Ce spune Liviu M este ceva normal , daca voi vreti sa cumparati controler gen 16f877 care va costa in jur 30 lei (din cauza ca nu mai este fabricat/motiv de marketing) treaba voastra , eu "voi cumpara" 16f887 care este inlocuitorul lui 16f877 si care costa MAXIM 8 lei .

Pentru a vedea ce microcontroler ai nevoie trebuie mai intai sa stii ceva legat de functionarea lor , pe site la microchip este un configurator pentru nevoile fiecaruia.Pentru aplicatia ta ai nevoie de un controler cu maxim 2KB flash si 1 port pe 8 biti + ADC(maxim , in caz ca mai vrei sa ii pui ceva).

Nici macar 16f877A (cu A la final) nu se mai fabrica (mai exista in depozite/se fabrica "pe vapor"), spune clar pe site la microchip : Please consider this device: PIC16F887 .

Link spre comentariu
Vizitator comma

okidin motive de spatiu as alege 16f886 ... pentru ca e pe 28 pini si are varianta DIP-28 (pentru teste) si QFN-28 (pentru versiunea finala)sper sa pot sal programez cu acest JDM ICSPcum folosesc in schema ADCurile... ce piese tre sa pun ... si banuiesc ca se schimba codul in cazul asta

Pentru aplicatia ta ai nevoie de un controler cu maxim 2KB flash si 1 port pe 8 biti + ADC(maxim , in caz ca mai vrei sa ii pui ceva).

moduri pe care le selectez prin introducerea anumitor coduri (de genu 3 apasari scurte + 2 apasari lungi) cu ajutorul unor butoane

ma mai intereseaza ca, controlerul sa tina minte ultimul cod introdus si dupa ce decuplez bateria ... astfel incat la reconectarea bateriei, sa nu fiu nevoit sa reintroduc codul ultimei setari ... ???
Link spre comentariu
16F87x nu se mai fabrica. Poate ar fi mai bine sa incerce direct cu ceva mai actual.

 

Salut!

De ce spui asta? Exista cele cu sufix "A"!

Pen'ca la microchip pe site, cand cauti informatii despre el, sunt recomandate altele:

PIC16F87XA Datasheet (10/31/2003)

Please consider this device: PIC16F887.

Link spre comentariu

@Liviu M:

Se pare ca nu stii (sau nu vrei sa o intelegi) diferenta dintre expresia "Mature product" si cea de "End of life notice". "Pen'ca" pe site-ul Microchip se specifica prima varianta.

Formularea "Please consider this device: PIC16F886" te indeamna sa folosesti noul produs (fie si numai din considerente de pret) pentru ca cel vechi se va mai fabrica inca vreo 2-3 ani apoi se sisteaza productia.

@noob64: Te-as ruga sa te pronunti cand vei invata sa citesti foaia de catalog a unui integrat sau a altei componente electronice, stii la ce ma refer!!!

Pana atunci, cu exceptia lui XAN77 care a propus o solutie analogica si pertinenta pentru rezolvarea problemei ridicate de colegul de forum, restul nu ati contribuit cu nimic la solutionara problemei ci ati cautat nod in papura in niste afirmatii.

Link spre comentariu

@nico_2010:V-asi ruga frumos sa imi spuneti ce anume omit la citirea unei foi de catalog , pentru ca nu imi dau seama la ce va referiti .@comma:PIC16F886 nu va putea fii programat cu un JDM , poti incerca un PIC16F716 sau PIC16F684 , iti faci un divizor de tensiune simplu cu doua rezistente si scazi nivelul maxim al bateriei verificate la 5V , de exemplu pentru bateria lipo 11.1V vor insemna 5V pe pinul adc , iar 9.6v vor insemna 4.3V , in rest iti pui niste relee care sa iti comute bateriile.

Link spre comentariu

@nico_2010:V-asi ruga frumos sa imi spuneti ce anume omit la citirea unei foi de catalog , pentru ca nu imi dau seama la ce va referiti .@comma:PIC16F886 nu va putea fii programat cu un JDM , poti incerca un PIC16F716 sau PIC16F684 , iti faci un divizor de tensiune simplu cu doua rezistente si scazi nivelul maxim al bateriei verificate la 5V , de exemplu pentru bateria lipo 11.1V vor insemna 5V pe pinul adc , iar 9.6v vor insemna 4.3V , in rest iti pui niste relee care sa iti comute bateriile.

viewtopic.php?f=41&t=89033&start=15
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