Sari la conținut
ELFORUM - Forumul electronistilor

control motor


Vizitator sckippio

Postări Recomandate

Vizitator sckippio

salut,as vrea sa invart un motor in functie de anumiti parametri. atasez schema facuta de mine si codul in mare. ceea ce vreau e sa citesc un senzor de presiune/ temperatura si in functie de parametri acesstora sa invart motorul, eventual sa-l controlez si din butoane. ce merge in ceea ce am facut : senzorul de temperatura am stiut sa-l citesc, cel de presiune citeste dar nu-mi dau seama de ce nu are o corelare intre senzor si LCD. iar motorul nu stiu sa-l comand nici de-al naibii.ma poat ajuta careva? pornisem programarea in mplab insa m-am confruntat cu niste probleme si am trecut pe mikroC pro. asa ca voi da codul din mikroC.

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

Top autori în acest subiect

  • catkiller

    5

  • nel65

    2

  • puiu

    1

Top autori în acest subiect

Deci vrei sa comanzi un motor in functie de valorile citite de la senzorii de presiune/temperatura sau butoane, senzorul de temperatura DS18x20 pe interfata 1 wire, iar senzorul de presiune presupun ca este analogic?

Ca sa variezi turatia unui motor de CC trebuie sa ii variezi tensiunea de alimentare, adica trebuie sa folosesti un pwm, daca vrei sa faci un regulator de turatie iti mai trebuie un encoder(feedback)

 

te poti inspira de aici

http://www.edaboard.com/ftopic155264.html

http://www.pitt.edu/~sorc/robotics/hand ... ontrol.htm

http://www.upg-ploiesti.ro/sescom/pdf/s ... 06-ci2.pdf

http://www.microchip.com/forums/m327748-print.aspx

Link spre comentariu
  • 4 săptămâni mai târziu...
Vizitator sckippio

Deci vrei sa comanzi un motor in functie de valorile citite de la senzorii de presiune/temperatura sau butoane, senzorul de temperatura DS18x20 pe interfata 1 wire, iar senzorul de presiune presupun ca este analogic?Ca sa variezi turatia unui motor de CC trebuie sa ii variezi tensiunea de alimentare, adica trebuie sa folosesti un pwm, daca vrei sa faci un regulator de turatie iti mai trebuie un encoder(feedback) te poti inspira de aici http://www.edaboard.com/ftopic155264.htmlhttp://www.pitt.edu/~sorc/robotics/hand ... ontrol.htmhttp://www.upg-ploiesti.ro/sescom/pdf/s ... 06-ci2.pdfhttp://www.microchip.com/forums/m327748-print.aspx

am facut ceea ce am dorit , dar am o chestie care nu reusesc sa-mi dau seama cum se face. ce fac:am un interval de presiune in care invart motorul si anume 14-34 (25 fiind valoarea "absoluta"/de mijloc).in cazul in care presiunea e intre 14 si 25 motorul se invarte intr-o directie, si daca e intre 25-34 se invarte in directia opusa. ce fac cand ajung la valoarea de 25? cum echiibrez motorul? cum il opresc? atasez codul si chema de simulare. sper sa fie o solutie. multam.
Link spre comentariu

Nu merge arhiva termometru_mpLab.rar

 

In fine, ai asa

 

speed =5;while (pres !=25){if (pres>=14 && pres<25)    roteste_dreapta(speed);if (pres>25 && pres <=34)    roteste_stanga(speed);}motor_stop();//presupun ca vrei sa opresti motorul inainte sa schimbi sensul//daca vrei sa il opresti lent faci o functie care iti decrementeaza pwm-ul pana ajunge la 0 PWM--;//sau daca vrei brusc dai vloare 0 la ambele pwm-uri
Link spre comentariu
Vizitator sckippio

uite aici arhiva, sper sa se deschida de data asta (prima data posibil sa fi facut figuri din cauza ca am creat arhica cu mplab-ul si proteusul deschis)am alea sunt functiile facute de mine si ce ai zis tu catkiller cam aia am facut si eu (numai ca ai grija la conditia aia din if && trbuie & pe biti) . eu am incercat cu && si nu a fost ok.arata-mi te rog cum sa configurez pwm-ul si cum sa-l folosesc.fata de prima arhiva am facut mici modificari ( am adaugat si o comunicare seriala).multumesc anticipat.

Link spre comentariu

Legat de && si & ar trebuii sa fie &&, acum depinde si de compilator.Te intereseaza initializarea pwm-uluiIncerc sa ma uit desi nu prea am experienta cu pic-uri, dar cam tot ce ai nevoie legat de initializare gasesti in datasheet

Link spre comentariu
Vizitator sckippio

eu folosesc HiTech. si eu am incercat in ambele seensuri si-mi face figuri.inca o intrebare: in cazul asta care l-am simulat procesorul initial mergea la 4 MHz. acum l-am facut sa mearga la 16. cum e mai bine sa mearga la frecventa cat mai mare sau cat mai mica? ai sa zici " de ce nu folosesti procesorul la capacitate maxima " . e intrebare de neinitiat.... sorry. varianta de ieri atasata comunicarea USART era facuta in graba (adika deloc o data ce nu mergea nik). acum am reusit comunicarea usart insa am nelamurirea de care te-am rugat sa ma ajuti legata de motor.aproppo catkiller , tu lucrezi cu atmel sau ce tipuri de proc?

Link spre comentariu

salut va ca ai functiile de pwm

 

simularea nu e 100% acurate

chiar daca simulezi la 16mhz nu o sa mearga la atat, nu in timp real

eu nu lucrez cu microchip, prefer atmel freescale ti

void PWM_INIT(){	TRISB = 0;		PR2 = 199;	CCPR2L = 0;	CCP2CON = 0x0C;	T2CON = 0x06;}void PWM_ON(unsigned int val){	CCPR2L=val;}void PWM_OFF(){	CCP2CON = 0x00;	if(PR2) PR2 = 0;	if(CCPR2L) CCPR2L =0;	TMR2ON = 0;	}
Link spre comentariu

am un interval de presiune in care invart motorul si anume 14-34 (25 fiind valoarea "absoluta"/de mijloc).in cazul in care presiunea e intre 14 si 25 motorul se invarte intr-o directie, si daca e intre 25-34 se invarte in directia opusa. ce fac cand ajung la valoarea de 25? cum echiibrez motorul? cum il opresc? atasez codul si chema de simulare. sper sa fie o solutie. multam.n-ar fi mai bine sa ai valoare absoluta 25 si 26? (este o idee)

Link spre comentariu
Vizitator sckippio

de iesit trebuie sa iasa. discutam cu nel65 nu intelegeam e ce sa pun doua valori absolute, nu ii vad rostul.practic e ca si cum as pune un interval valoarea absoluta, si ma gandesc ca ar fi mai dificil de interpretat. in fine in cod nu mi-e greu sa schimb la if limitele dar ... eu stiu? asta pe partea de embadded, dar dar pe parte umana nu vad rostul....

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

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