Vizitator sckippio Postat August 6, 2010 Partajează Postat August 6, 2010 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
catkiller Postat August 6, 2010 Partajează Postat August 6, 2010 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
Vizitator sckippio Postat August 30, 2010 Partajează Postat August 30, 2010 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.aspxam 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
catkiller Postat August 31, 2010 Partajează Postat August 31, 2010 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 Postat August 31, 2010 Partajează Postat August 31, 2010 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
catkiller Postat August 31, 2010 Partajează Postat August 31, 2010 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 Postat Septembrie 1, 2010 Partajează Postat Septembrie 1, 2010 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
catkiller Postat Septembrie 4, 2010 Partajează Postat Septembrie 4, 2010 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
nel65 Postat Septembrie 5, 2010 Partajează Postat Septembrie 5, 2010 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
puiu Postat Septembrie 5, 2010 Partajează Postat Septembrie 5, 2010 1. Motorul se opreste prin oprirea PWM la microcontroler. In setare trebuie sa spui daca valorile respective vor fi pentru conectarea ambelor borne la + sau la -. Link spre comentariu
Vizitator sckippio Postat Septembrie 6, 2010 Partajează Postat Septembrie 6, 2010 n-ar fi mai bine sa ai valoare absoluta 25 si 26? (este o idee)nu-mi dau seama de ce sa fie doua valori absolute....care-i ideea ca nu-mi dau seama. :( Link spre comentariu
catkiller Postat Septembrie 6, 2010 Partajează Postat Septembrie 6, 2010 Deci, am pierdut putin sirul, ce nu iti iese? pe scurt Link spre comentariu
Vizitator sckippio Postat Septembrie 6, 2010 Partajează Postat Septembrie 6, 2010 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
nel65 Postat Septembrie 23, 2010 Partajează Postat Septembrie 23, 2010 rostul ar fi ca intre 25 si 26 motorul clar nu se invarte in niciun sens,adica este definit si domeniul in care nu trebuie sa se invarta. 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