Sari la conținut
ELFORUM - Forumul electronistilor

Comanda motor bipolar stepper


Vlad Mihai

Postări Recomandate

Salut, a reusit careva sa comande un motor de hard tip stepper bipolar cu 4 fire? m-ar interesa un proiect cu pic daca se poate, ca nu gasesc nicaieri. Sau o referinta unde sa ma uit..PS: nu vreau sa folosesc driver dedicat.

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

Top autori în acest subiect

  • Vlad Mihai

    11

  • Mircea

    8

  • Liviu M

    2

  • dinbooo

    2

Top autori în acest subiect

Imagini postate

Salut, a reusit careva sa comande un motor de hard tip stepper bipolar cu 4 fire? m-ar interesa un proiect cu pic daca se poate, ca nu gasesc nicaieri. Sau o referinta unde sa ma uit..PS: nu vreau sa folosesc driver dedicat.

Ti-am mai indicat o data linkul asta, este o idee, si este cu PIC.http://home.clear.net.nz/pages/joecolquitt/0hdd.htmlCe vrei mai simplu decat asta, este intr-adevar basic? In caz ca vrei un proiect complet deja facut, etc... trebuie sa sapi pe google.Dupa cum vezi, nu are sa o faca nimeni pentru tine, si deschizind mai multe topice cu acelasi subiect nu-ti mareste sansele, ci te face sa pari cel mult... milog.No offense, but this is it!Toti suntemm mai mult sau mai putin incepatori, dar ideea este sa incepi cu ceva ca sa avansezi.Eu sunt interesat de proiectul tau, deci vreau sa ajut. Insa nu sunt dispus sa experimentez hardware-ul pentru ca n-am timp de asta (am alte proiecte), insa vreau si pot ajuta cu soft-ul. Dar doar daca tu incepi, iar eu te ajut cand si daca este nevoie.Eu zic ca-i corect pentru amandoi.
Link spre comentariu

Domnule, celălalt topic a fost pentru unipolar, chiar dacă am făcut referire şi la cel bipolar. Dacă asta se numeşte miloagelă să fiu îndrumat undeva de unde să iau, atunci mă las eu. Oricum am găsit ceea ce căutam, adminul sau moderatorul poate şterge acest topic şi celălalt ca să nu se credă că vânez posturi. O zi bună!

Link spre comentariu

salut,am si eu un stepper bipolar cred. are 4 fire care ies din el si am vazut ca asta este deosebirea intre bipolar si unipolar care mai are in plus cel putin un fir.as vrea sa-l controlez fara pc, vreau un montaj care sa-i poata controla viteza mai mare sau mai mica si eventual sa indeplineasca functia de schimbare a sensului in functie de doi senzori, adica la limita stanga sa fie un contact normal deschis care o data inchis sa determine schimbarea sensului de rotatie. daca obiectul pus in micare atinge limita dreapta si inchide contactul sa-si schimbe din nou sensul si tot asa.am gasit o schema cu pic12f675 dar este pentru unipolare. si o schema cu 555 si 74194 pentru bipolare.se poate inlocui partea de generare a semnalului cu un pic?atasat intregul material.multumesc!

stepper_tester (1).zip

post-24453-139829522146_thumb.png

post-24453-13982952215_thumb.gif

Link spre comentariu

multumesc mult pentru raspuns dar l6506 pare a fi un senzor de curent pentru motoarele stepper. mie imi trebuie un ansamblu care sa genereze impulsurile, cu un pic ca sa nu ma mai complic cu ne555 si 74hc194. semnalele din pic vreau sa le aplic unui l297 eventual. asta este problema. daca a mai facut cineva asta si stie poate ma ajuta.multumesc!

Link spre comentariu
  • 1 lună mai târziu...

Revin cu jucăria mea:

Am încercat un proiect găsit pe un site dar n-a mers așa că mă apuc eu de el de la 0:

Am un pic16f876A și driver L293D(care trebuie să vină de pe ebay) și un motor de HDD ata cu 4 fire(bipolar 100%). Atașez fotografia sa:

 

Posted Image

online photo storage

 

 

Atașez o schemă preliminară.. cu ajutorul intrării analogice citesc tensiunea de pe cursorul potențiometrului și în funcție de asta să ajustez delay-ul la impulsuri. Driverul duce vreo 600mA pe canal sper să ajungă oricum pun un radiator pe el cum sugerează în datasheet. O să încerc mâine să pun un cod.

Dacă sunt greșeli, rog să fiu corectat.

hdd-stepper.pdf

Link spre comentariu

Cateva intrebari. 1. Care este scopul proiectului: doar sa invarti motorul?2. Cum vei controla viteza motorului (nu ma refer la potentiometru)? Doar pe baza frecventei (succesiunii de semnale) il vei roti sa zicem de la minimum la maximum de viteza, fara sa ai un feedback. Cum stii daca sari pasi atunci?Ai grija sa pui diodele de protectie cum arata datasheet-ul. In caz ca nu ai acel tip indicat, orice dioda cu un trr<100ns este buna. Nu le neglija, ca risti sa distrugi L293. Pe de alta parte, un tandem 297-298 facea to hardware-ul doar aplicand frecventa dorita de rotatie (un 50% dreptunghiular) si directia (un H sau L). Ma refer la generarea de semnale necesare si ordinea lor. Dar 876a o sa faca totul baniuesc.

Link spre comentariu

1. vreau să îl învârt de la minim la maxim- posibil să pun pe el o elice mai târziu.2. nu am nevoie de feedback deci dacă sare un pas 2 nu cred că m-ar deranja-sau mă deranjează?Apropo de diode uitasem de ele mulțumesc de atenție. Cu toate că zice în datasheet că le are interne.Am făcut un singur montaj de control la stepper unipolar full step și atât, nu am idee cum trebuie să încep portul.

Link spre comentariu
Cu toate că zice în datasheet că le are interne.
Ai dreptate, tipul cu D la coada le are incorporate. Sorry for misleading :jytuiyu

 

pun pe el o elice
Ai idee ce cuplu are un astfel de motor? Crezi ca va ridica zburatoarea ta?

 

nu am idee cum trebuie să încep portul.
In ce limbaj ai sa faci programarea? Oricum, pune pe hartie ce vrei sa faca programul in limbajul tau, apoi il transpui in limbajul ales pentru compliator. Eu te sfatuiesc sa alegi un compilator BASIC.

 

Citeste aici pentru timing: http://www.edn-europe.com/controlsteppermotorsinbothdirections+article+4047+Europe.html. Ma refer la figura 2 Posted Image. Acum stii ce fac cele 4 iesiri din PIC. Mai ramane sa controlezi frecventa (viteza).

Link spre comentariu

Deci folosesc MikroC compilator, Nu știu cum să setez cele 4 ieșiri.

 

Deci o să citesc tensiunea de pe port ADC care e între 0 și 5v și în funcție de asta setez modificarea frecvenței(cred că ai trebuie setate niște limite sau pași).

butoanele sunt conectate la 1 logic și doar când detectează 0 logic adică este apăsat butonul și e pus la masă atunci să intervină la modificarea în soft.

portul de la pic de pe care fac asta e bidirecțional deci nu e nevoie să îl declar în soft ca o intrare sau ieșire nu?- că le conține pe ambele(-butoanele sunt întrări).

Habar am cum să fac acele delay-uri o să studiez problema.

 

Ps:

Știu că e slabuț, dar nu asta e problema dacă poate învârti un disc de hard atunci cred că se descurcă cu o elice de aceleași dimensiuni

am găsit ceva aici http://www.sxlist.com/techref/piclist/jal/drivingbipolarsteppermotors.htm

Link spre comentariu

Vezi exemplele din MikroC. Le gasesti aici Program Files\Mikroelektronika\mikroC PRO for PIC\Examples\Development Systems\BIGPIC6 unde l-ai instalat.

Este f important sa spui PIC-ului care-s intrari, care-s iesiri. El nu stie asta :nebun: . Apoi delay-uri bagi cu functia Delay_ms (milisec), Delay_us (microsec), Delay_cyc (cicluri). Doar scrie Delay in Help si o sa-ti arate tot ce vrei.

Delay_ms - [i]EXEMPLIFICARE DIN HELP[/i]Prototype void Delay_ms(const unsigned long time_in_ms);Returns Nothing.Description Creates a software delay in duration of time_in_ms milliseconds (a constant). Range of applicable constants depends on the oscillator frequency.This is an “inline” routine; code is generated in the place of the call, so the call doesn’t count against the nested call limit. This routine generates nested loops using registers R13, R12, R11 and R10. The number of used registers varies from 0 to 4, depending on requested time_in_ms. Requires Nothing. Example Delay_ms(1000);  /* One second pause */
Uite exemplu blink a LED, lectia urmatoare cu butoane, apoi ADC, apoi ce vrei tu in final :dans: :

/* * Project name:     LED_Blinking (Simple 'Hello World' project) * Copyright:     (c) Mikroelektronika, 2005-2010. * Revision History:     20081218:       - initial release; * Description:     This is a simple 'Hello World' project. It turns on/off LEDs connected to     PORTA, PORTB, PORTC, PORTD, PORTE, PORTF, PORTG, PORTH and PORTJ.  * Test configuration:     MCU:             P18F8520                      http://ww1.microchip.com/downloads/en/DeviceDoc/39609b.pdf     Dev.Board:       BIGPIC6 - ac:LEDs                      http://www.mikroe.com/eng/products/view/300/bigpic6-development-system/     Oscillator:      HS, 10.0 MHz     Ext. Modules:    -     SW:              mikroC PRO for PIC                      http://www.mikroe.com/eng/products/view/7/mikroc-pro-for-pic/ * NOTES:     - Turn ON the PORT LEDs at SW10. (board specific)*/void main() {  ADCON1 |= 0x0F;      // Configure AN pins as digital[b] - aici ii spui ca nu folosesti convertorul A/D (in acest caz, la tine il vei folosi)[/b]  CMCON  |= 7;         // Disable comparators[b] - aici ii spui ca nu folosesti comparatoarele [/b]  TRISA = 0;           // set direction to be output[b] - aici setezi tot PORTA ca fiind iesiri. Evident to poti seta bit cu bit ce-i iesire si ce-i intrare. Ex: TRISA = 01010101 - adica PORTA.0, 2, 4, 8 sunt iesiri, restul intrari[/b]  TRISB = 0;           // set direction to be output  TRISC = 0;           // set direction to be output  TRISD = 0;           // set direction to be output  TRISE = 0;           // set direction to be output  TRISF = 0;           // set direction to be output  TRISG = 0;           // set direction to be output  TRISH = 0;           // set direction to be output  TRISJ = 0;           // set direction to be output  do {    PORTA = 0x00;      // Turn OFF LEDs on PORTA[b] - aici setezi LOW toate iesirile pe PORTA = LED stins [/b]    PORTB = 0x00;      // Turn OFF LEDs on PORTB    PORTC = 0x00;      // Turn OFF LEDs on PORTC    PORTD = 0x00;      // Turn OFF LEDs on PORTD    PORTE = 0x00;      // Turn OFF LEDs on PORTE    PORTF = 0x00;      // Turn OFF LEDs on PORTF    PORTG = 0x00;      // Turn OFF LEDs on PORTG    PORTH = 0x00;      // Turn OFF LEDs on PORTH    PORTJ = 0x00;      // Turn OFF LEDs on PORTJ    Delay_ms(1000);    // 1 second delay [b] - aici bagi un delay ca sa vezi cum palpaie[/b]    PORTA = 0xFF;      // Turn ON LEDs on PORTA[b] - aici setezi HIGH toate iesirile pe PORTA = LED aprins[/b]    PORTB = 0xFF;      // Turn ON LEDs on PORTB    PORTC = 0xFF;      // Turn ON LEDs on PORTC    PORTD = 0xFF;      // Turn ON LEDs on PORTD    PORTE = 0xFF;      // Turn ON LEDs on PORTE    PORTF = 0xFF;      // Turn ON LEDs on PORTF    PORTG = 0xFF;      // Turn ON LEDs on PORTG    PORTH = 0xFF;      // Turn ON LEDs on PORTH    PORTJ = 0xFF;      // Turn ON LEDs on PORTJ    Delay_ms(1000);    // 1 second delay  } while(1);          // Endless loop}
Ai un alt punct de plecare deci!
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