Sari la conținut
ELFORUM - Forumul electronistilor

avr cu adc multiplexat


unuldinei

Postări Recomandate

Salutare , Vreau sa multiplexez adc-ul de la un atmega , in genul asta , adica pe acelasi pin 2 potentiometre , dar unul sa fie cu pinii in HiZ cand il masor pe celalalt ... Cum pun pinii in HiZ? A mai facut cineva traznaia asta . Am deja Solutia implementata cu 74hc4051, dar oare se poate si asa ?

Link spre comentariu
  • 4 luni mai târziu...

Deeci , dupa ce am experimentat dupa schema de mai sus incercarea de a multiplexa 16 potentiometre pe un ADC cu 8 porturi si am vazut ca nu merge deoarece se influenteaza chiar si daca dezactivez rezistentele de pull-up .

As vrea sa intreb daca separ cele doua grupe cu un tristate de genul 74hc126 ar merge . Adica daca e corecta schema in acest caz cea din partea stanga , unde cele doua siruri de potentiometre sunt separate in hiZ .

Posted Image

Link spre comentariu

Schema din stânga nu e corectă deoarece capătul inferior al pot. este legat la o INTRARE , deci el va sta tot timpul într-o stare de Hi-Z, indiferent de comandă. În plus poarta mai are și ieșirea conectată la masă ceea ce nu-i va conveni dacă acolo ar trebui să fie ”1”. Trebuie folosite comutatoare /  multiplexoare ANALOGICE nu porți digitale. De exemplu schema din stânga se poate implementa cu 4066. Cel mai simplu este însă ( dacă tema permite acest lucru ) să se lege toate potențiometrele în paralel la +5V și GND și să se multiplexeze doar cursoarele, cu 4051 ( de exemplu ) așa cum s-a pomenit.  În funcție de nevoile de performanță cerute s-ar putea să fie nevoie de multiplexoare analogice dedicate ( din seriile DG , ADG , etc ).

Link spre comentariu

Va multumesc pentru raspuns si corectii . Am implementat deja schema cu 4051 preluata de pe un site de profil  (www.ucapps.de) , doar ca in acest caz folosesc prea putin din viteza de citire a ADC-ului  microcontrolerului , un potentiometru pe rand si as fi vrut sa profit de tot portul ADC care oricum e si el multiplexat deja . O poza in acest sens doar asa ca sa se vada ca am cablaj facut la CNC ... :) Posted ImageTotusi , as vrea sa gasesc ceva care sa puna in Hi-Z deadevaratelea bornele de  alimentare a potentiometrelor .

 

Si acuma observ ca al 888-lea post l-ati folosit aici, mersi inca odata .

Editat de unuldinei
Link spre comentariu

Pai ca sa citesti cursorul la 8 potentiometre deodata ai nevoie de alta logica de comutare care nu se poate cu 4051 , eventual cu 4066 care are comutatoare independente nu multiplexate

Pentru ce ai nevoie de hi-z pe alimentari ? E pentru audio montajul sau pentru altceva ?

Editat de Depanatoru
Link spre comentariu

Cred ca o sa incerc cu un 4066 care pare a fi un switch iar in Hi-Z are 10^12 Ohmi . De ce fac toate astea ? Avantajul apare undeva intre numarul de intrari ADC ale microcontrolerului si pinii acestuia.Posted Image

Link spre comentariu

Cel mai simplu mod de a citi intrari ADC pe numai doua fire este I2C-bus. Foloseste PCF8591 care are 4 intrari ADC si vei pune doua bucati pentru a avea 8 intrari citite simultan. Toata "pierderea" in acest caz este ca PCF-ul face conversia doar pe 8 biti fata de microcontroller care face conversie pe 10 biti; in rest este avantaj. Iar ca si numar maxim de PCF-uri poti pune 8 bucati deodata adresate corespunzator.

Link spre comentariu

Multumesc pentru idee, e cam exotica pentru mine dar de retinut pentru ca 255 de valori sunt suficiente  pentru aplicatia mea  . Ceea ce vreau sa semnalez aici, schema de legare de mai sus NU e buna deoarece pot aparea cai de curent intre grupele de potentiometre , deci cea mai sigura si corecta (cum era si normal , nu cum m-am scarpinat eu invers), ramane culegerea tensiunii de pe pinul  dedicat acestui lucru , iar mai departe de ales o varianta cu multiplexare sau citire individuala .

Pai ca sa citesti cursorul la 8 potentiometre deodata ai nevoie de alta logica de comutare care nu se poate cu 4051 , eventual cu 4066 care are comutatoare independente nu multiplexate

Pentru ce ai nevoie de hi-z pe alimentari ? E pentru audio montajul sau pentru altceva ?

Nu e pentru audio , e pentru a masura ADC-ul  si a-l transforma in numere de la 0-127 ... ("pentru ca" MIDI Control ). 

Link spre comentariu

Uite ce simplu se poate face citirea unui PCF8591 cu 4 intrari ADC, conectat ca in imaginea de mai jos:

post-176683-0-99097600-1400498849_thumb.gif

'*******************************************************************************Sub Pcf8591'Rutina de citire a semnalelor analogice cu PCF8591'Citirea se face pe 8 biti'Rezolutia de citire la Uref=5V este de 19,6 mVConst Pcf8591write = &H90                                   'comanda de scriereConst Pcf8591read = &H91                                    'comanda de citire'Config byte PCF8591=> B0100_0101'                        |    |||_'                        |    ||__Selectie canal analogic(0,1,2,3)'                        |    |_Auto Increment Flag => (1)scanare automata intrari'                        |_Activare Iesire AnalogicaConst Pcf8591config = &B0100_0101                         Dim Analogic(4) As Byte                                     'defineste 4 variabile BYTEI2cstart                                                    'start I2C busI2cwbyte Pcf8591write                                       'cmd.WRITE I2CI2cwbyte Pcf8591config                                      'cmd.CONFIGI2cstart                                                    'start I2C againI2cwbyte Pcf8591read                                        'cmd.READ I2CI2crbyte Analogic(1) , Ack                                  'citeste valoarea pe intrarea 1I2crbyte Analogic(2) , Ack                                  'citeste valoarea pe intrarea 2I2crbyte Analogic(3) , Ack                                  'citeste valoarea pe intrarea 3I2crbyte Analogic(4) , Nack                                 'citeste valoarea pe intrarea 4I2cstop                                                     'stop I2CEnd Sub'*******************************************************************************

Variabilele rezultate Analogic(1)...Analogic(4), tin informatiile de pe intrarile ADC si pot fi utilizate ulterior in program.

Link spre comentariu
  • 2 luni mai târziu...

Nu prea inteleg de ce vrei sa pui 2 potentiometre pe o intrare, nu mai ai alte intrari? Poti folosi intrarile digitale sau comparatorul analogic, pui potentiometrul sa incarce un condensator si masori timpul de incarcare/descarcare....

 Sau faci un oscilator extern in care un potentiometru sa dea timpul cat impulsul sta in "zero" si celalalt sa dea timpul pentru "1", apoi masori cu timerele.... 

 

 

 Imi amintesc de multiplexarea semnalelor pentru telecomenzile de acum mai multi ani.... acum e o problema depasita.

 

 

In situatii din acestea se alege un controller cu mai multi pini.. e cel mai ieftin.

 

Eu de obicei folosesc un encoder rotativ, care iti da impulsuri stanga/dreapta si ar mai fi si un buton daca apesi pe el.

Astfel, software pot simula oricate potentiometre, daca actionez unul o data. Apas pe encoder, intru in meniul A, aleg sus/jos, apas a doua oara, meniul B, etc....

Editat de one
Link spre comentariu
  • 1 lună mai târziu...

Mda , uite pentru ce cautam alte solutii de multiplexare http://www.elforum.info/topic/95040-sa-interpretam-la-midicontrol-1610/  si cam cum am folosit doar jumatate din schema de mai jos

 

Posted Image

 

32 de intrari ADC multiplexate cu 4051, iesiri ADC A0, A1, A2, A3, si numarate pe bitii ABC , adica  0b000, 0b001, ... 0b111... 

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

Am inteles,

 

voi experimenta si eu prima schema pe care ai postat-o, caci sunt curios de ce se influenteaza potentiometrele. Intr-adevar daca ai avea Hi-Z pinii unui potentiometru, ar trebui sa il poti citi corect pe celalalt.

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