Mircea Postat Decembrie 31, 2012 Partajează Postat Decembrie 31, 2012 Ai incercat sa faci un programel care face orice f simplu in MikroC? Ai descarcat unul de pe internet sa vezi cum e structurat? Ce nu merge? Ai construit programul tau in pseudocod (adica ceva in limbajul tau), gen: 1. Daca apas butonul UP, mareste viteza; 2. Daca apas butonul DOWN, micsoreaza viteza; 3. Genereaza pulsurile, etc... Fa-ti lista de actiuni si conditii, in ordinea in care vrei sa se intample si bazat pe ce input data ai. Apoi treci la programare. Ai reusit sa palpai un LED? Exemplul Blink a LED este f important, odata realizat, ai urcat 10 trepte pe scara programarii (si increderii in sine ). Apoi programarea pentru proiectul tau: 1. Creezi proiect nou, uite pagina de Edit Project unde specifici tipul de procesor, etc: 2. Setezi PIC (aici citest datasheet de la pagina 1 la sfarsit) si setezi/clear toti bitii dupa cum ai nevoie: Uite un exemplu pentru un alt tip de PIC (nu 876), in Basic, dar iti arata cum am setat toate registrele care afectau programul meu: ' Set-up the PICsub procedure InitMain() OPTION_REG = 0x80 ' Pull-up disabled PORTB INTCON = 0x00 ' No INT OSCCON = 0x56 ' 2MHz clock CM1CON0 = 0x00 ' No COMP C1 CM2CON0 = 0x00 ' No COMP C2 CM2CON1 = 0x00 ' No COMP C2 SRCON = 0x00 ' No SR latch ANSEL = 0x00 ' No AN I/Os ANSELH = 0x00 ' No AN I/Os TRISA = 0x3C ' A2-A5 inputs, A0-A1 outputs WPUA = 0x00 ' Pull-up disabled IOCA = 0x00 ' IOC disabled TRISB = 0x00 ' All outputs WPUB = 0x00 ' Pull-up disabled IOCB = 0x00 ' IOC disabled TRISC = 0x00 ' All outputs PORTA = 0x00 ' Clear PORTA PORTB = 0x00 ' Clear PORTB PORTC = 0x00 ' Clear PORTCend sub 3. Apoi faci programul: void main() {AICI SCRII CE VREI SA FACA PROGRAMUL} Link spre comentariu
Vlad Mihai Postat Decembrie 31, 2012 Autor Partajează Postat Decembrie 31, 2012 Da am făcut un proiect cu LCD+pic+Lm35z cap coadă, citind un tutorial, și am mai facăut și un dual Voltampermetru tot de mine de la 0. deci știu cum se începe un cod dar așa ceva cu motorul pas cu pas nu știu cum se face. habar am cum se începe. Link spre comentariu
Mircea Postat Decembrie 31, 2012 Partajează Postat Decembrie 31, 2012 Pai ai secventele de comutare pentru cele 2 faze. Asignezi 4 iesiri ca fiind cele 4 semnale. Apoi faci in asa fel ca iesirile sa urmeze acele comutatii. Uite aici: http://www.stepperworld.com/Tutorials/pgBipolarTutorial.htm Asta-i motorul tau cu identificare conexiuni la PIC (am ignorat L293D): LE: Cred ca OUT2 si OUT3 trebuie inversate ca sa mearga si in two-phase mode. Asa se succed iesirile de la PIC ca sa roteasca motorul: Link spre comentariu
Mircea Postat Decembrie 31, 2012 Partajează Postat Decembrie 31, 2012 ... cu motorul pas cu pas nu știu cum se face. habar am cum se începe.Ce zici de modul asta f simplist de a genera secventa de comutare? Tu nu vei avea asta ca cod final, o sa cam rada colegii de noi... dar pentru inceput merge. Vreau ca tu sa ai ideile, doar e proiectul tau.1. Iesirile:OUT1=0OUT2=0OUT3=0OUT4=12. Delay 20 msec - atata stau iesirile ca mai sus.3. Iesirile:OUT1=0OUT2=0OUT3=1OUT4=04. Delay 20 msec - atata stau iesirile ca mai sus.5. Iesirile:OUT1=0OUT2=1OUT3=0OUT4=06. Delay 20 msec - atata stau iesirile ca mai sus.7. Iesirile:OUT1=1OUT2=0OUT3=0OUT4=0Felicitari, ai reusit sa comuti cu 50Hz!!! Faci 50 de pasi pe secunda, cam incet nu?!Data viitoare posteaza codul tau, nu conteaza cat de mandru esti de el. Hai sa facem si treaba, ca de discutat am discutat destul. Un an nou fericit, ca-i trecut de miezul noptii in Romania. Link spre comentariu
dancc Postat Ianuarie 7, 2013 Partajează Postat Ianuarie 7, 2013 salut .imi cer scuze ca vin cu o intrebare care nu este pt.acest motor dar ,de ceva timp caut o schema pe intelesul meu (nu caut idei de cum se poate face) de a inversa sensul de rotatie la un motor de 220v 2,4kw asincron Link spre comentariu
Vlad Mihai Postat Ianuarie 22, 2013 Autor Partajează Postat Ianuarie 22, 2013 dupa lungi cautari am gasit o secventa de cod care sa porneasca un motor bipolar, dar acum nu am motorul, adica nu am un motor bipolar cu 2 bobine independente, am unul in 3 faze . void main(){ CMCON = 0x07; // To turn off comparators ADCON1 = 0x06; // To turn off analog to digital converters TRISB = 0; // PORT B as output port PORTB = 0x0F; do { PORTB = 0b00000001; Delay_ms(500); PORTB = 0b00000100; Delay_ms(500); PORTB = 0b00000010; Delay_ms(500); PORTB = 0b00001000; Delay_ms(500); }while(1);} schema de conectarehttp://www.electrosome.com/wp-content/uploads/2012/06/PROTEUS-Bipolar-L293D.png pornind de aici se poate modifica delayul si astfel viteza. Link spre comentariu
Vlad Mihai Postat Februarie 15, 2013 Autor Partajează Postat Februarie 15, 2013 mi-am dezmembrat azi imprimata si am facut rapid un test cu motorul bipolar găsit şi cu codul de mai sus... merge si nu prea... am setat delay la 50 ca să am viteza mai mare, se invarte dar vibreaza, conexiunile sunt ok, probabil din cod ceva nu e ok... schema si codul sunt mai sus. Link spre comentariu
Liviu M Postat Februarie 15, 2013 Partajează Postat Februarie 15, 2013 Daca introduci stari intertmediare, cred ca o sa mearga mai rotund. void main(){ CMCON = 0x07; // To turn off comparators ADCON1 = 0x06; // To turn off analog to digital converters TRISB = 0; // PORT B as output port PORTB = 0x0F; do { PORTB = 0b00000001; Delay_ms(500); PORTB = 0b00000101; Delay_ms(500); PORTB = 0b00000100; Delay_ms(500); PORTB = 0b00000110; Delay_ms(500); PORTB = 0b00000010; Delay_ms(500);//..... PORTB = 0b00001000; Delay_ms(500); }while(1);}.L.E. Uita-te la halfstepping in poza de la wikipedia http://en.m.wikipedia.org/wiki/File:Drive.png Link spre comentariu
Mircea Postat Februarie 16, 2013 Partajează Postat Februarie 16, 2013 ... vibreaza... E normal sa vibreze. Oricum, filmul tau avea muzica pe fundal deci nu prea se auzea ce zgomote facea motorul. Asa cum zicea Liviu M, poti trece la pasi intermediari.Codul l-as modifica asa:Secventa 1 - alimentezi faza 1Delay_ms(20) - vezi daca motorul este capabil sa comute, altfel vei pierde pasiSecventa 2 - tai alimentare faza 1Delay_ms(cat vrei tu sa fie viteza) - aici motorul nu primeste nici o alimentareSecventa 3 - alimentezi faza 2Delay_ms(20)Secventa 4 - tai alimentare faza 2Delay_ms(cat vrei tu sa fie viteza) - aici motorul nu primeste nici o alimentaresamdDa-ne de stire cum a mers, ce ai mai facut. Link spre comentariu
Vlad Mihai Postat Februarie 18, 2013 Autor Partajează Postat Februarie 18, 2013 tot aşa vibrează cu noul cod, voi incerca cu un alt motor(din floppy disk), dar cred ca aveti dreptate... e normal sa vibreze asa.... 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