本設計為步進電機開環驅動,使用STC15W408AS單片機作為主控,12V電源輸入,使用兩個A4950電機驅動,最高電流可達3.5A。三個輸入使用光耦隔離,就算驅動板炸了也不會炸主控,四個撥碼開關可調節細分和電流(扭矩),預留串口接口可燒程序或用于監控調試。
原理圖,PCB,程序都已經上傳附件。
成品圖:正面
背面:
應用外觀:
整體外觀:
Altium Designer畫的原理圖和PCB圖如下:(51hei附件中可下載工程文件)
單片機源程序如下:
- #include <reg51.h>
- #define Timer0_time 35
- #define Timer0_H (65536-Timer0_time)/256
- #define Timer0_L (65536-Timer0_time)%256
- sbit led_green = P3^6; //指示燈
- sbit led_red = P3^7;
- sbit in_clk = P3^2; //輸入信號上限1.2KHz
- sbit in_dir = P1^7;
- sbit in_en = P1^6;
- sbit sw0 = P2^0; //選擇開關
- sbit sw1 = P2^1;
- sbit sw2 = P2^2;
- sbit sw3 = P2^3;
- sbit in1 = P2^4; //電機驅動
- sbit in2 = P2^5;
- sbit in3 = P2^6;
- sbit in4 = P2^7;
- unsigned char code step8_tab[8]={0x8F,0XAF,0X2F,0X6F,0X4F,0X5F,0X1F,0X9F};
- unsigned char duty=0,target=30,set=0,clin=0;
- char step=0;
- void delayms(unsigned int x) //@35MHz
- {
- unsigned int y;
- for(x;x>0;x--)
- for(y=3000;y>0;y--);
- }
- void delay(unsigned int x)
- {
- for(x;x>0;x--);
- }
- void sys_init()
- {
- EX0=1;
- IT0=1;
-
- TMOD=0X01;
- TH0=Timer0_H;
- TL0=Timer0_L;
- EA=1;
- ET0=1;
- TR0=1;
- }
- void main()
- {
- unsigned char div,cur;
- P2=0X0F;
- cur=P2 & 0x03;
- div=P2 >>2;
- div=div & 0x03;
- switch(cur) //撥碼選擇電流/扭矩
- {
- case 0X03: target=30; break;
- case 0X02: target=40; break;
- case 0X01: target=55; break;
- case 0X00: target=65; break;
- default : target=30;break;
- }
- switch(div) //撥碼選擇分頻系數
- {
- case 0X03: set=0; break;
- case 0X02: set=2; break;
- case 0X01: set=4; break;
- case 0X00: set=8; break;
- default : set=0;break;
- }
-
- P3=0XFF;
-
- sys_init();
- while(1)
- {
-
- }
- }
- void init0() interrupt 0
- {
- unsigned char i;
- clin++;
- if(clin>=set) //細分
- {
- clin=0;
- if(in_en)
- {
- if(in_dir) //正轉
- {
- step++;
- if(step>=8)
- step=0;
- P2=step8_tab[step];
-
- }
- else //反轉
- {
- step--;
- if(step<0)
- step=7;
- P2=step8_tab[step];
-
- }
-
- }
-
- }
- }
- void timer0() interrupt 1
- {
- TH0=Timer0_H;
- TL0=Timer0_L;
- duty++;
- if(duty>=100)
- duty=0;
- (duty<target)?(P2=step8_tab[step]):(P2=0X0F);
- }
復制代碼
所有資料51hei提供下載:
步進電機驅動.zip
(59.1 KB, 下載次數: 24)
2020-5-17 00:25 上傳
點擊文件名下載附件
|