Jump to content
ELFORUM - Forumul electronistilor
luciann

Comanda microcontroller prin potentiometru

Recommended Posts

As avea nevoie de un microcontroler programat sa dea niste contacte(cam ce face CD4066) la actionarea unui potentiometru.Impulsurile sa fie proportionale cu cursa potentiometrului.. ceva de genu: la fiecare ohm crescut sa dea cate un contact si ele sa fie egale ca timp.Voi avea nevoie de acest lucru pentru un joc... simulator de trenuri(lucrez la un pupitru de comanda pentru a inlocui tastatura)Am cunostinte mult prea generale in ceea ce priveste programarea(mai mult Web) de aceea as avea nevoie de ajutor la scrierea unui program pentru asta.Multumesc.

Link to comment
Share on other sites

Am vorbit cu rokyronnie inainte sa deschida topicul ,treaba-i cam asa:La tren, forta de franare e proportionala cu unghiul facut de maneta fata de o pozitie de "zero"...Oricum, cam ca la pedala de la masina, ca la tramvaiele V3A, ca la...orice. In joc, cand tii apasat pe o tasta, forta de franare creste. Cand tii apasat pe cealalta, forta scade.De fapt, "numarul de impulsuri" poate fi inlocuit cu un singur impuls de durata mai mare. Dar sa fie strict proportional cu cursa manetei de franare. O idee pe care i-am propus-o: Folosind un encoder, apoi sa separe impulsurile pentru "fatza" si "spate", si sa comande un monostabil. Schema n-ar fi prea complicata, dar apar 2 probleme. In primul rand trebuie un unghi destul de mic intre impulsuri, deci e necesar multiplicator mecanic. In al doilea rand, n-am gasit o varianta de debounce perfecta, care sa nu scape nici un impuls aiurea.Alta idee, ceva ce analogic s-ar face destul de complicat: Sample-and-hold la intervale egale, intre doua intervale preia tensiunea de la un potentiometru si o deriveaza, pana ajunge la tensiunea pastrata in hold. Sensul de crestere/descrestere poate sa determine care din taste sa fie apsata. Probabil s-ar face cu un pumn de operationale, rezultand o precizie indoielnica...In schimb cu microcontroller cred ca ar merge bine. Doar sa dea impulsuri de lungime proportionala cu deplasarea. Problema e ca el nu a mai lucrat cu microcontrollere si eu n-am timp sa-i scriu un program...

Link to comment
Share on other sites

deci eu inteleg asa :am un potentiometru de 100ohmi si la fiecare ohm sa dea cite un contact, adica 100 de contacte (pini) trebuie sa aiba picul respectivcontacte egale in timp nu am auzit de asa cevaiar program moca nu stiu ca face cineva de aicite rog explica mai bine ce vrei sa faciSofian

Link to comment
Share on other sites

Da, deci sa mearga in paralel, la fiecare ohm sa corespunda cate un contact

Nu 100 de pini, ci 3, un comun si inca 2, pentru ca pe placuta din tastatura ma voi conecta la 3 pini(nu retin care sunt acestia pentru ca nu sunt acasa dar nu are asta importanta pentru voi)

 

"contacte egale in timp nu am auzit de asa ceva"

 

Aici ma refer la timpul cat sta "intrerupatorul" conectat, as avea nevoie de ~60ms

 

Pai dupa cum vam spus, cu programarea nu am avut tangente foarte mari, asa ca nu am o idee foarte buna despre cat de lung ar trebui sa fie codul pentru ce vreau eu.Totusi ar fi solutia cea mai buna

 

Va rog spuneti-mi un pret, in care sa fie inclus si microcontroller-ul necesar ca sa imi fac o idee daca merita sau nu.

De bine de rau, exista si alte solutii, dar asta ar fi cea mai buna pentru ce vreau eu sa fac

 

Sper ca am fost explicit, daca aveti nelamuriri, va rog intrebati :)

Link to comment
Share on other sites

ce zic si eu..-cursa scurta (in grade) a manetei de frana si implicit variatia mica a potentiometrului se poate rezolva prin mai multe cai... de exemplu prin folosirea unui operational inainte de adc-ul controlerului cu tensiunea de referinta pusa cat trebuie. Apoi controlerul citeste tensiunea si genereza un PWM corespunzator.. De fapt chiar si adc-ul controlerelor permite fixarea referintelor. Recunosc ca m-a amuzat solutia cu multiplicatorul mecanic.. :jytuiyu no offenceLegatura cu calculatorul cum o faci? scoti sârme din tastatura, de la contactul tastelor? :nas: Ca daca nu esti familiar cu programarea ma indoiesc ca te apuci sa faci interfata usb.. A, ai putea face interfata PS/2 dar dai din lac in put ..In cazul sârmelor din tastatura ti-ar trebui un PWM, nu frecventa variabila cum ai cerut tu.In caz ca vrei interfata adevarata cu compul(usb sau ps/2), ti-as recomanda compilatoarele de la MikroElektronika. Pentru incepatori si hoby-isti sunt aur, datorita multitudinii de biblioteci la botul calului. Dar trebuie sa stii cat de cat un limbaj de programare C/Pascal/Basic

Link to comment
Share on other sites

ce zic si eu..Recunosc ca m-a amuzat solutia cu multiplicatorul mecanic.. :jytuiyu no offence

Faza cu AO-ul nu merge la encoder; d-asta am zis multiplicator mecanic. Sa se comporte ca un encoder cu pas mai mic. Ce gasim in comertz dau vro 10 impulsuri la fiecare tura, lui i-ar trebui mai mult. Un schelet de cod la ce i-ar trebui lui ar fi asa:unsigned adc_new; adc_old; //valorile pe care le retine din ADCsigned t;la fiecare intrerupere timer {citeste_adc(adc_new);t=adc_new - adc_old;adc_old=adc_new;if (t>0) { da un numar de t impulsuri pe pinul A0; }else if (t<0) { da un numar de abs(t) impulsuri pe pinul A1,; }sterge flaguri; reporneste ADC;endObservati ca un simplu convertor tensiune-frecventa n-ar fi suficient.In principiu, atat. Eventual si o mediere a ADC-ului pe mai multe esantioane, si alte chichitze d-astea. Mai departe, de la pinii A0 si A1, vine intr-un MMC4066 (comutatoare analogice bilaterale) care fac contactul intre liniile si coloanele de la tastatura. Deci nu-i nevoie de protocol PS/2 sau USB. Nu-i deloc dificil, cu un 12F675 si cateva linii de cod se rezolva. Sincer eu is cam ocupat lunile astea. In plus tot astept sa-mi vina 2 mosfeti IRLM6402 sa-mi termin un programator Pickit 2; JDM mi-a scos destui peri albi cat am lucrat cu el. Din cauza asta nu pot sa-i fac eu proiectul, si i-am spus sa apeleze la bunavointa dvs. Sau daca are cineva o idee cat de vaga cum s-ar putea face cu integrate logice si componente discrete, il rog sa spuna...
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • 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