ايران ويج

نسخه‌ی کامل: راهنمائی در مورد کنترل 3 استپر با کامپیوتر
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
صفحه‌ها: 1 2
[b]سلام
من تازه عضو شدم مدتی هست در به در دنبال 1 انجمن داغ میگردم تا شاید جوابی بگیرم فکر کنم اینجا اخرشه..!!

من میخوام 3 تا استپر موتور رو توسط کامپیوتر کنترل کنم البته توسط نرم افزاری که دارم الان بشتر بخش کنترل برام مهمه و اینتر فیس . در ضمن من به مکانیک کاملا اشنا هستم اما الکترونیک نه منظورم اینکه اگه دوستی لطف کرد جواب داد کامل و ساده باشه با تشکر
الان یه چند تا بحث هستش :

می خواین مستقیم راه اندازی کنید یا اینکه یه میکرو بینشون باشه .

می تونید اطلاعاتتون رو از طریق پورت سریال به میکرو ( مثل AVR ) بفرستین و میکروی فوق موتور پله ای ها رو کنترل کنه .

اینو ببینید :
http://www.iranled.com/node/76

موضوعات مشابه تو پایین صفحه رو هم ببینید خوبه !!!

اینم یه برنامه نمونه : ( کنترل یه استپ موتور با پورت سریال )
کد php:
#include <mega8.h> 
#include <delay.h>

// Alphanumeric LCD Module functions
#asm
   
.equ __lcd_port=0x18 ;PORTB
#endasm
#include <lcd.h>

// Standard Input/Output functions
#include <stdio.h> 


#define RXC 7

int s_m[4]={0xC,0x6,0x3,0x9};

unsigned char USART_Recive(void)
{     
 
 if((
UCSRA &(1<<RXC)))
    return 
UDR;
   
   
  
}    
        

void rigth(void);
void left(void);

// Declare your global variables here
char input_ch='s'
bit cb=1;
int cunt=0
;
char out[16];

void main(void)
{
// Declare your local variables here

// Input/Output Ports initialization
// Port B initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In 
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T 
PORTB=0x00;
DDRB=0x00;

// Port C initialization
// Func6=In Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out 
// State6=P State5=0 State4=0 State3=0 State2=0 State1=0 State0=0 
PORTC=0x40;
DDRC=0x3F;

// Port D initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In 
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T 
PORTD=0x00;
DDRD=0x00;

// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
TCCR0=0x00;
TCNT0=0x00;

// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer 1 Stopped
// Mode: Normal top=FFFFh
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;

// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer 2 Stopped
// Mode: Normal top=FFh
// OC2 output: Disconnected
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;

// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
MCUCR=0x00;

// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x00;

// USART initialization
// Communication Parameters: 8 Data, 1 Stop, No Parity
// USART Receiver: On
// USART Transmitter: Off
// USART Mode: Asynchronous
// USART Baud rate: 4800
UCSRA=0x00;
UCSRB=0x10;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0x0C;

// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;

// LCD module initialization
lcd_init(16);

lcd_clear();
lcd_putsf("     HELLO    ");
delay_ms(1000);
lcd_clear();
lcd_gotoxy(0,0);
lcd_putsf("OPEN HYPER... &");
lcd_gotoxy(0,1);
lcd_putsf("PRESS R/L 4 RUN");


while (
1)
      {
      
// Place your code here
     
            
      
lcd_gotoxy(0,0); 
      
input_ch=USART_Recive();  
      
       switch(
input_ch)
       {
        
        case 
'l' :
        case 
'L' :
         {                          
          
lcd_gotoxy(0,0);
          
lcd_putsf("DIRECT IS RIGTH");
          
lcd_gotoxy(0,1);
          
lcd_putsf("PRESS S TO STOP");
          
cunt=1;
          break;
         }
         
        case 
'r' :
        case 
'R' :
         {                          
          
lcd_gotoxy(0,0);
          
lcd_putsf("DIRECT IS LEFT  ");
          
lcd_gotoxy(0,1);
          
lcd_putsf("PRESS S TO STOP ");
          
cunt=2;
          break;
         }
         
         case 
's' 
         case 
'S' :
         {                          
          
lcd_gotoxy(0,1);
          
lcd_putsf("PRESS R/L TO RUN");
          
cunt=3;
          break;
         }      
         
       }
//end of switch 1
      
    
    
switch(cunt)
     {
      case 
:
         {
          
rigth();
          break;
         }      
      case 
:
         {
          
left();
          break;
         }  
      case 
:
         {
          if(
cb==1)
          {
          
cb=!cb;
          
lcd_gotoxy(0,0);
          
lcd_putsf("  STOPED MOTOR  ");
          
delay_ms(300);
          }
          else
          {   
          
cb=!cb;
          
lcd_gotoxy(0,0);
          
lcd_putsf("                ");
          
delay_ms(300);
          }
          
         }     
     }
//end of switch 2                
      
      
};    
      
}
//end of main\
                 
// start function 

void rigth(void//rigth drive motor
{
 
int in_port;
 
int i;
 
 for(
i=0;i<4;i++)
 {
 
in_port=PORTC 0xf0;
 
PORTC=in_port s_m[i];  
 
delay_ms(10);
 } 

  

void left(void//left drive motor
{
 
int in_port;
 
int i;
 
 for(
i=3;i>=0;i--)
 {
 
in_port=PORTC 0xf0;
 
PORTC=in_port s_m[i];
 
delay_ms(10);
 } 

سلام واقعا خسته نباشی !!
باورم نمیشد به این زودی کسی جوابی بده خیلی ممنون از شما.
اما در مورد کار باید بگم میخوام مستقیم از کامپیوتر کنترل بشه نه با میکرو کنترل شاید اگه به این سایت سری بزنی متوجه هدف من بشی .
http://cstep.luberth.com/
در ضمن من 1 کارگاه کوچیک دارم کارم طراحی و ساخت قالب و قطعات صنعتی هست و با نرم افزار catia کار میکنم اگه کمکی از دستم بر بیاد خوشحال میشم.
نقل قول: اما در مورد کار باید بگم میخوام مستقیم از کامپیوتر کنترل بشه نه با میکرو کنترل شاید اگه به این سایت سری بزنی متوجه هدف من بشی .
یعنی هیچی نمی خوای بذاری .

یه DRIVER که دیگه می خواد . مثل L298

چون خروجی پورت موازی 8 بیت هستش فکر کنم باید یه رجیستر هم برای راه اندازیشون بذاری .


البته فکر می کنم که بیشتر کارت برنامه کامپیوتر هستش که نمی تونم کمکت کنم . ( الکترونیکم ! )
ببین یه چیزی برات دارم شاخ در بیاری
من هم خیلی وقت تو فکر ساخت یه چنین چیزیم اگه بخوای از هم کاری هم بدم نمی یاد (امروز چقدر پیشنهاد می دم)
اول بگم مهمترین قسمت اینه که این نرم افزار آزاده و قسمتیش که اصلا مهم نیست اینه که رایگانه
ورودی GCode و خروجی هم فرمان کنترل Step Motor البته Close Loop هم می تونه کارکنه
و یه قسمت جالب هم اینکه ۹ محور بیشتر پشتیبانی نمی کنه
راستی برای راه اندازیش حتی به هارد هم توی کامپیوترت نیاز نداری
http://www.linuxcnc.org/
[تصویر:  screen_thumb.png]
سلام بازم خسته نباشید نمیدونم این حسو فقط من دارم یا همه اینجوری هستن وقتی میبینم که سوالم بی جواب نمیمونه کلی خوشحال میشم شاید جو گیر میشم ..!
ممنون از راهنمائی شما هادی جان من با همکاری موافقم نظرت چی هست که این تایپ کردن رو کنار بزاریم و 1 تماس موبایلی داشته باشیم؟ 09125251646

(دوسته خوبم tirip 2008 لطف کردی تا اینجا همکاری کردی)
بازم تشکر از همه مدیران ایران ویج
ولی اینکه نشد
اینجا خصوصی موصوصی نداشتیم ها!!!!!!!!!!!!
می خواستم زنگ بزنم این آقا مهرداد نزاشت Biggrin
شماره تلفن هم اینجا می ذاری یه دفه دیدی یه خانم زنگ زد (البته برا بازار یابی)
اگه کاری می خوای بکنی همینجا بگو
سلام
اول از همه( البته با اجازه) نمیخوام کسی رو برنجونم اینو گفتم چون دیدم اقای مهرداد ناراحت شده من الان نزدیک 10 ساله که کار میکنم موقعی که مشغول به کار کردن هستم یا در مورد کار بحث میکنم فقط و فقط به کار فکر میکنم نه مسائل اضافه این عنوان کردم تا دیگه از این موارد پیش نیاد .
مهرداد جان اگر شما هم میتونید کمکی به من بکنید یا همکاری بکنی بگو یا شما هم میتونی تماس بگیری ممنون میشم.
هر دو از یه رو ش استفاده می کنن http://cstep.luberth.com/ و http://www.linuxcnc.org/
بنابراین از این روش می شه استفاده کرد
http://abd.manidea.com/blog/archives/113
http://abd.manidea.com/blog/archives/170
http://abd.manidea.com/blog/archives/199
تو سایت http://cstep.luberth.com یه سری PCB هست ولی ظاهرا نمونه کارهایی که با دستگاهش کرده برد های اصلی نیست و خودش از Step Motor های آماده با درایور استفاده کرده

و یه سوال اگه من بخوام این سیستم رو مکانیکش رو البته یه مدل رو میزی رو داشته باشم با سه محور فکر می کنی چقدر هزینه داشته باشه؟
بستگی داره چقدر برات دقتش مهم باشه هم میشه با استفاده از قطعات دست ساز ساخت که قیمتش خیلی میاد پایین نزدیک 350هزار تومان و به همون اندازه دقتش هم میاد پایین مثلا حدود 1mm + -
و اگر قرار باشه از قطعات استاندارد استفاده بشه قیمتش نزدیک 1 میلیون در میاد ولی بادقت بالا 0.05-+
در هر صورت برای ساخت روی من میتونید حساب کنید البته فقط مکانیکش .

هادی جان اینم ببین شاید چیزی داشت http://cstep.luberth.com/myhardware.htm
صفحه‌ها: 1 2