unuldinei Postat Ianuarie 12, 2014 Partajează Postat Ianuarie 12, 2014 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
ratza Postat Ianuarie 13, 2014 Partajează Postat Ianuarie 13, 2014 Ca să pui pinii în Hi-Z îi faci intrare şi pui 0 ca ieşire. Ceva de genul PORTA = 0;DDRA = 0; Link spre comentariu
unuldinei Postat Mai 14, 2014 Autor Partajează Postat Mai 14, 2014 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 . Link spre comentariu
UDAR Postat Mai 15, 2014 Partajează Postat Mai 15, 2014 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 ). 1 Link spre comentariu
unuldinei Postat Mai 15, 2014 Autor Partajează Postat Mai 15, 2014 (editat) 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 ... Totusi , 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 Mai 15, 2014 de unuldinei Link spre comentariu
Depanatoru Postat Mai 15, 2014 Partajează Postat Mai 15, 2014 (editat) 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 Mai 15, 2014 de Depanatoru Link spre comentariu
unuldinei Postat Mai 15, 2014 Autor Partajează Postat Mai 15, 2014 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. Link spre comentariu
yo6pir Postat Mai 19, 2014 Partajează Postat Mai 19, 2014 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
unuldinei Postat Mai 19, 2014 Autor Partajează Postat Mai 19, 2014 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
yo6pir Postat Mai 19, 2014 Partajează Postat Mai 19, 2014 Uite ce simplu se poate face citirea unui PCF8591 cu 4 intrari ADC, conectat ca in imaginea de mai jos: '*******************************************************************************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
one Postat Iulie 31, 2014 Partajează Postat Iulie 31, 2014 (editat) 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 Iulie 31, 2014 de one Link spre comentariu
unuldinei Postat Septembrie 27, 2014 Autor Partajează Postat Septembrie 27, 2014 (editat) 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 32 de intrari ADC multiplexate cu 4051, iesiri ADC A0, A1, A2, A3, si numarate pe bitii ABC , adica 0b000, 0b001, ... 0b111... Editat Septembrie 27, 2014 de unuldinei Link spre comentariu
one Postat Octombrie 7, 2014 Partajează Postat Octombrie 7, 2014 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
Postări Recomandate
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 contAutentificare
Ai deja un cont? Autentifică-te aici.
Autentifică-te acum