Sari la conținut
ELFORUM - Forumul electronistilor

Citire 2 intrari analogice


Rabulea Sergiu

Postări Recomandate

la o prima ocheada as zice la GND-ul sursei dar atunci (dupa exprimarea ta presupun asta ar insemna dupa R1) deoarece daca il pui la -24 atunci va trebui sa stabilizeze 5V din max 48 ceea ce e cam mult. asa cum zic eu stabilizeaza din 24 deci e ok pentru un 7805. Problema apare la AIN+ (pin 3) la U3 care in felul acesta ajunge sa primeasca 12V dar este alimentat la 5V deci trebuie periat acel divizor rezistiv (R4-R5). La fel iesirea din OPAMP (repetor inversor) va fi de +24V. Spun astea pentru ca la max191 cred ca poti depasi valorile lui Vin(+/-) cu foarte putin peste VDD. daca ma insel imi cer scuze de interventie...

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

Top autori în acest subiect

  • Rabulea Sergiu

    29

  • srdjan

    8

  • nooob64

    6

  • puiu

    5

Top autori în acest subiect

@Rabulea Sergiu la ce foloseste R1 ? Asa cum este conectat pare sarcina pentru sursa negativa. Alimentarea ramurei negative pt U2 ar trebui luata inaintea elementului regulator din sursa negativa(bine ar fi sa fie stabilizata si aceasta ramura, cu ceva LM79XX) pentru ca OPA177 nu este rail-to-rail input. Si mai trebuie si divizor rezistiv, pe care il poti pune in fata operationalului, caz in care poti micsora si tensiunea sa de alimentare.

Link spre comentariu

Mercie @srdjan, se pare ca nu m-am exprimat eu bine.Nu este vorba de o sursa simetrica, ci doar de una asimetrica de 24V, nu am stiut cum sa scriu mai bine semnificatia piniilor si am indus in eroare.semnificatia piniilor este urmatoarea: +24V - tensiune dinaintea regulatorului liniar +0-24V - tensiunea de la iesirea regulatorului liniar -24V - masa dinaintea traductorului de curent (acea rezistenta R1) gnd - masa la iesirea din sursa (dupa R1)la legarea acelui stabilizator apar dupa parerea mea 2 brobleme:1. daca leg masa inainte de R1 (pinul -24V) atunci cu U3 o sa masor tensiunea la iesirea sursei + caderea de tensiune pe R1 (care ii variabila in functie de curentul consumat de sarcina)2. daca leg masa stabilizatorului dupa R1 (pinul gnd) atunci iesirea operationalului poate atinge o valoare mai mica decat valoarea minima acceptata la intrarea lui U4, ce l-ar putea distruge.Schema sursei stabilizate este cea de pe Electronics Lab de la 0 la 30V si 0-3A, iar rezistenta R1 semnifica rezistenta de 0,47 ohm din acea sursa, care are rolul de traductor de curent si la care vreau sa ma leg si cu aparatul de masura ca sa nu mai pun o alta rezistenta in serie cu sarcina, ca sa am inca o cadere de tesiune.P.S. A nu se lua in calcul valorile componentelor, ele sunt puse doar reprezentativ.Multumesc anticipat si scuze de greseala.

Link spre comentariu

Plaja de tensiuni acceptate de max191 la intrarile analogice este de la VSS la VDD. Cum tensiunea pe shunt (R1) va fi intotdeauna negativa fata de masa (borna gnd) , rezulta ca la iesirea operationalului vei avea tensiune pozitiva fata de masa. Ar fi doar o problema: curentul consumat de 7805 si cele doua convertoare va trece si el prin shunt, nu stiu in ce masura va influenta acesta masuratorile, si daca nu cumva se poate compensa din soft( presupunand ca acel consum este constant).PS: Observatiile erau pentru cazul al doilea. :da

Link spre comentariu

Mercie de raspunsuri. M-am hotarat sa nu mai folosesc operational, voi reduce tensiunea de referinta la 2.5V si voi masura direct cu convertorul caderea de tensiune de pe traducrorul de curent.La masurarea tensiunii voi scadea din soft caderea de tensiune de pe rezistenta, ca sa obtin tensiunea la iesirea sursei.Toate circuitele de masura se vor alimenta din 24V fix, dinaitea rezistentei de curent.Cam asta a iesit:[attachment=0]control sursa.zip[/attachment]Astept pareri si eventuale observatii in legatura cu schema.

Link spre comentariu
  • 2 săptămâni mai târziu...

As avea o intrebare pentru cei care se pricep mai bine cu numerele:Vreau sa "arhivez" sirurile de constante din tabelele ce reprezinta bitmapurile pentru LCD pentru a salva spatiu in memoria PIC-ului.Am cotrobait un pic pe net si am citit despre RLE (run-lenght encoding), toata problema esste ca nu gasesc un soft stand-alone care sa-mi faca treaba asta cu un sir de valori numerice, am gasit doar fragmente de cod scrise in C.Ma poate ajuta cineva in materie de ahivarea sirurilor?Multumesc anticipat.

Link spre comentariu

Ce program stand-alone ti-ar trebui? Ce contin mai exact tabelele respective? Poti da exemple?Ai implementat pe PIC algoritmul de decodare? Pentru ca vei avea nevoie de acelasi algoritm pe PIC si in programul stand-alone...Sunt mai multi algoritmi de compresie, dar probabil va trebui sa-ti alegi unul care sa poata fi implementat usor si sa mearga repede si pe PIC.LE: Inca ceva: poate daca tabelele contin valori particulare, poate fi implementat un algoritm simplu, particular.

Link spre comentariu

Ce contin mai exact tabelele respective? Poti da exemple?

Tabelele respective contin numere de la 0 la 255, ca de ex.:
255 ,255 ,7 ,3 ,3 ,27 ,51 ,99 ,99 ,115 ,255 ,251 ,3 ,3 ,3 ,3 ,251 ,251 ,3 ,3 ,3 ,251 ,255 ,119 ,3 ,3 ,3 ,115 ,51 ,3 ,131 ,135255 ,255 ,7 ,3 ,3 ,27 ,51 ,99 ,99 ,115 ,255 ,255 ,255 ,191 ,63 ,11 ,3 ,131 ,3 ,3 ,63 ,63 ,255 ,255 ,255 ,255 ,255 ,255 ,255 ,251 ,3 ,33 ,3 ,243 ,243 ,3 ,7 ,15 ,255 ,251 ,3 ,3 ,3 ,3 ,251 ,251 ,3 ,3 ,3 ,251 ,119 ,7 ,3 ,3 ,3 ,115 ,51 ,3 ,7 ,135 ,199 ,251 ,33 ,3 ,3 ,251 ,255 ,255 ,255 ,255 ,255 ,255 ,191 ,63 ,11 ,3 ,131 ,3 ,3 ,63 ,63 ,255 ,255 ,255 ,255 ,255 ,255 ,255 ,255 ,255 ,255 ,255 ,255 ,0255 ,229 ,225 ,226 ,230 ,238 ,230 ,224 ,224 ,240 ,248 ,255 ,248 ,224 ,224 ,224 ,231 ,231 ,224 ,224 ,240 ,255 ,255 ,237224 ,224 ,224 ,239 ,248 ,224 ,225 ,231 ,239 ,229 ,225 ,226 ,230 ,238 ,230 ,224 ,224 ,240 ,248 ,239 ,231 ,225 ,224 ,224232 ,248 ,232 ,224 ,224 ,224 ,230 ,239 ,255 ,255 ,255 ,255 ,255 ,247 ,224 ,224 ,224 ,224 ,231 ,227 ,240 ,240 ,252 ,255255 ,248 ,224 ,224 ,224 ,231 ,231 ,224 ,224 ,112 ,63 ,247 ,224 ,224 ,224 ,224 ,230 ,230 ,224 ,224 ,240 ,240 ,247 ,224224 ,224 ,224 ,231 ,231 ,225 ,225 ,231 ,239 ,231 ,225 ,224 ,224 ,232 ,248 ,232 ,224 ,224 ,224 ,230 ,239 ,255 ,255 ,255127 ,63 ,31 ,15 ,135 ,195 ,241 ,0 ,255 ,255 ,255 ,255 ,255 ,255 ,255 ,255 ,255 ,255 ,255 ,255 ,255 ,255 ,63 ,15, etc
Acesta este un fragment dintr-un tabel ce contine 1024 de valori, iar ca sa ma apuc sa fac toata treaba din "mana" ma iau dracii langa computer.

Sunt mai multi algoritmi de compresie, dar probabil va trebui sa-ti alegi unul care sa poata fi implementat usor si sa mearga repede si pe PIC.

Am spus si mai sus de "Run-lenght encoding", adica la fiecare constanta diferita de 1 byte i se atribuiesc 2 bytes care inseamna urmatorul lucru:-primul byte = constanta respectiva-al 2-lea byte = numarul de repetari consecutive al constantei din byte-ul 1.Eu cu pic-ul citesc cei doi bytes si trimit valoarea din byte-ul 1 de cate ori imi zice valoarea din byte-ul 2 catre LCD.
Link spre comentariu

Sa ma asigur ca am inteles bine.

 

Deci la exemplul de mai sus pe care l-ai dat, ai vrea un program care sa scoata urmatorul ouptut:

 

2,255,1,7,2,3,1,27,1,51,2,99,1,115,1,251,4,3,2,251 ... etc
?

 

Codarea se opreste la sfarsitul fiecarei linii sau la sfarsitul tabelei?

 

Daca asta e ceea ce vrei ti-as putea face un program sa faca asta...

Link spre comentariu

Deci la exemplul de mai sus pe care l-ai dat, ai vrea un program care sa scoata urmatorul ouptut

Exact.

Codarea se opreste la sfarsitul fiecarei linii sau la sfarsitul tabelei?

Tabela este defapt un sir de cifre. L-am organizat in tabela pentru a incapea in pagina si in campul vizual al paginii.Codarea se opreste la sfarsitul tabelei, iar tabela se citeste de la stanga la dreapta si de sus in jos.Mercie pentru raspunsuri si ajutor.
Link spre comentariu

Ti-am atasat un program care "comprima" folosind RLE. Dar mi se pare ineficient cel putin pentru exemplul dat de tine deoarece outputul e mai mare decat inputul. :DVezi pentru tabela intreaga de 1024, dar ma indoiesc ca ar fi eficient.Poate o codare Huffman ar merge.

Link spre comentariu

Mercie mult crispus, programul functioneaza impecabil, am redus aproximativ 1K din memoria ocupata in PIC.

Dar mi se pare ineficient cel putin pentru exemplul dat de tine deoarece outputul e mai mare decat inputul. :d

 

La tabelul cu 1024 de valori am obtinut un raport de 1.06, dar am mai avut si alte tabele de comprimat si la unele am ajuns si la un raport de 2.5 - 3,

depinde cate valori repetitive are tabelul.

Poate o codare Huffman ar merge.

Posibil sa mearga, dar nu am habar de algoritmul de decompresie, si daca se poate implementa intr-un PIC.
Link spre comentariu
  • 2 săptămâni mai târziu...

Pana la urma m-am hotarat sa mut bitmap-urile intr-o memorie.Mi-am cumparat o memorie 25lc640, de 8kB, insa nu stiu cum sa fac hex-ul ca sa o scriu.PicBasic-ul pe care il am nu stie si memorii EEPROM, iar in MPLAB nu am reusit sub nici o forma, HELP.Ms anticipat.

Link spre comentariu

Ca sa scrii memoria cel mai simplu o programezi cu pickit2 partea mai grea este aranjarea informatiilor in eeprom (fiecare bit al "pozei" ti-ar trebuii un program care sa iti genereze direct in hex fiecare bit) apoi iti faci o paginatie sau ceva mai simplu pentru accesarea memoriei in vederea extragerii bitmap'ului ,acea memorie eeprom este pe SPI , daca compilatorul tau stie SPI atunci nu va fii greu de implementat o functie pt citire/scriere eeprom extern.Sincer nu se prea merita sa folosesti memorie eeprom pentru bitmap-uri pentru ca afisarea se va face destul de greu .

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