Sari la conținut
ELFORUM - Forumul electronistilor

MC && motoare && encodere ffff urgent


Vizitator eulbv

Postări Recomandate

Vizitator eulbv

Salutare. Am si eu o intrebare la care sper macar ceva sfaturi sa primesc. Am realizat un robotel care are montate 2 motare de cc, cuplat la ele sunt 2 encodere(citesc cu un optocuplor) , motoarele sunt comandate dintr-un atmel cu ajutorul unui driver(Sabertooth 2X10 Regenerative Dual Channel Motor Controller),fiecare motor independent. Daca il flosesti in gol merge la diatanta perfect(am facut semne pe roata dintata si am exact acelasi nr de fante si am trimis si distanta pe care o verifica el pe seriala si o afisez in hiperterminal). Problema apare cand il pun pe masa pentru ca merge stramb, se vede si pe encoder dar in programul intern arata ca merge bine.Concluzia personala a fost ca e ceva care imi baga inca un numar de fante, astfel o roata se va opri mai repede. Fantele le numar pe intreruperi exerne

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

Top autori în acest subiect

  • Laci

    5

  • mitescu

    1

Vizitator eulbv

Asa e,acuma am terminat de remontat, deoarece am desfacut tot montajul si mia mers poerfect si intreruperile si distantele, de fiecare data cand invarteam eu encoderul, si nu cred ca motorul ar baga atat de multi paraziti incat sa strice sistemul. O sa reiau si softul.

Link spre comentariu
Vizitator eulbv

Imi cer scuze pentru parerea anterioara dar e gresita. Am refacut si montoajul mecanic ca am crezut ca e vreo problema , si azi am luato din nou de la capat si am gasit o problma cam nasola si anume de fiecare data cand merge un motor si masor fantele pe cellalat(pe unu il alimentez si pe al doilea il invart cu mana), iar la cel la care invart cu mana numar fantele din microcontroler si le afisez pe seriala. Problema e ca in loc de 60 de fante cate sunt am peste 120 de fante, si nu e constanta valoarea numarata. Numararea o fac in intrerupere, una pentru un encoder una pentru cel de al doilea. Aveti idee cum as putea sa fac sa nu mai imi intre "paraziti " si sa imi genereze intrerupere??

Link spre comentariu
Vizitator eulbv

unul din ele merge perfect,opresc motorul celalat cu mana in mers si nu baga pe celalat encoder nici un parazit, invers rupe, schema e simpla 2 rezistente de pull up de 2k pentru citire fotot tranzistor si 2 rez pentru curentul ce alimenteaza dioda(100ohm).si dupa intra in atmega 8 pe intrerupere int1 si int2.

Link spre comentariu
Vizitator eulbv

pe motoare avem de 0,22pF,dar pe encodere am avut de 0,22uF si nu mergea bine citirea. Acuma am vrea sa punem fir de la encodere la mc ecranate da nu stim daca cele de retea FTP ar fi ok . Mai avem un fir litat tot cu ecranare dar nu e torsadat ca acela de retea.

Link spre comentariu

Pai pune condensator mai mic, in loc de 0.22u pune 0.1u sau 47nf ..., se poate filtra si din soft, dar nui bine sa ai o multime de intreruperi fara folos, rezulta un overhead prea mare.

Link spre comentariu
Vizitator eulbv

o sa schimb condensatorul ca am, dar vad ca daca iau firele de la encodere si le departez de firele de la motoare ba merge ba nu merge, si ma gandeam la o ecranare(ce zici e bun un fire de retea stp, e cel cu foita metalica si cu fir legat la masa) intre encodere si mc, cat si a motoarelor.Da o intrebare: in soft cum as putea sa fac, si pls daca poti sa ma indrumi spre o carte in care gasesc cum se aleg condensatoarle si bobinele, respectiv rezistentele pentru a face o filtrare.Mersi.

Link spre comentariu

Nu cred ca este vorba despre "paraziti". Daca ne gandim la proces mai atent, o sa vedem ca atunci cand o fanta ajunge aproape in dreptul optocuplorului fotoreceptorul incepe sa fie iluminat. Presupunand ca sistemul este in miscare ,datorita "jocurilor" mecanice apar vibratii. Eee.., in acest moment "fanta" va oscila in jurul punctului critic, si in loc de un impuls vei avea un tren de impulsuri. Este o situatie destul de des intalnita. Una din solutii pot fi condensatorii, dar fara prea mult succes. Apar tot felul de limitari (viteza, nivel, etc...), si oricum valorile sunt critice. O alta solutie (care este aplica si la mouse) este amplasarea a doua optocuploare decalate cu multiplul de unghi dintre doua fante +1/2 din acest unghi. Adica: cand un optocuplori este "facut" celalat este "desfacut". Se obtin doua semnale. Cu aceste doua semnale se actioneaza un bistabil de tip RS. Iesirea bistabilului poate fi utilizata ca semnal ptr INTx la MC. Explicatia este : Cand unul dintre optocuploare este "actionat" va face Reset sau Set (dupa caz) indiferent de numarul de impulsuri primite, iesirea ramanand "fixa" pe nivelul respectiv. Cand isi schimba pozitia, urmatorul si optocuplor se va "face", primul va fi "demult" in pozitia inactiva ("desfacut"), si nu pot apare erori. Iesirea va bascula in cealalta stare. Personal m-am lovit de aceasta problema acum cativa ani buni in urma. Nu am reusit sa rezolv problema pana cand nu am adopta aceasta solutie.

Link spre comentariu
Vizitator eulbv

Da , solutia propusa de "mitescu " mi se pare perfecta, multulesc pentru ea, o sa o folosesc, dar din pacate nu pot sa o fac acuma pentru ca mai am doar 2 zile pana cand trebuie sa fie gata dipozitivul si ar trebui sa desfac partea mecanica, dar ideea mi se pare foarte buna. Totusi am reusit sa scot problemele prin reducerea mai multor defecte si am ajuns la urmatoarele concluzii pe care poate si altii le pot folosi macar informativ:- am refacut partea mecanica(una dintre cele doua roti mobila, folosita doar la sprijin, era cu jumate de milimetru in aer si asta influenta eneorm sincronizarea motoarelor)- am pus condensatori de filtrare pe motoare- am ecranat firele care treceau pe langa motoare si erau de la encodere( enorma diferenta de dupa ecranare, am folosit cablu de retea STP,cu foita metalica legata la masa)- am pus un mic delay pentru a evita o eventuala recitire accidentala a encoderrului- am reluat programul( o variabila din program nu coresponda cu elementu fizic de afara, din cauza unei lipituri gresite.Cam atat am facut , acuma merge in proportie de 90% cum doream. Multumesc tuturor pentru sfaturi.

Link spre comentariu
Vizitator

Daca asta era atunci baga un monostabil dupa senzor daca e digital sau un trigger schmith daca e analogic. Cel mai simplu e sa faci un debouncing software.

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