久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
關于51單片機驅動器驅動步進電機的問題,轉動很慢而且發熱
[打印本頁]
作者:
一束光的旅程
時間:
2018-10-6 19:14
標題:
關于51單片機驅動器驅動步進電機的問題,轉動很慢而且發熱
現在做了一個裝置,使用89c52單片機產生pwm脈沖給步進電機驅動器,然后驅動步進電機轉動,F在出現兩個問題,第一:電機轉動很慢,而且起熱。有震動,2-3秒轉動一個齒。第二電機應該按照程序反轉,電機卻沒有倒轉。想請教大家是不是程序的頻率太低(程序產生的頻率是1khz)(怎么調整頻率)。還是線路有問題。先上代碼吧。
然后是線路圖
捕獲.PNG
(33.92 KB, 下載次數: 65)
下載附件
2018-10-6 19:14 上傳
#include <reg51.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit LED_R=P1^0; //紅色指示燈
sbit LED_G=P1^2; //綠色指示燈
sbit LED_B=P1^1; //藍色指示燈
sbit key_D=P3^6; //前進按鈕
sbit key_R=P3^7; //后退按鈕,目前不用
sbit PUL=P2^0; //脈沖口,連步進電機驅動器
sbit DIR=P2^1; //方向口,連步進電機驅動器
uchar time;
uchar count;
uchar temp;
uint t=0;
void Delay200us();
void Delay10ms();
void key_scan(); //按鍵程序
void main()
{
P1=0xff;
P2=0x00;
TMOD= 0x01;
TH0 = (65536-500)/256;
TL0 = (65536-500)%256;
EA=1;
ET0=1;
while(1)
{
key_scan();
}
}
//***********************************************************//
void Delay200us() //@11.0592MHz
{
unsigned char i;
_nop_();
i = 89;
while (--i);
}
//***************************************************************//
void Delay10ms() //@11.0592MHz
{
unsigned char i, j;
i = 18;
j = 235;
do
{
while (--j);
} while (--i);
}
void key_scan()
{
if(key_D==0)
{
Delay10ms();
if(key_D==0)
{
t++;
if(t>=4)
{
t=0;
}
switch(t)
{
case 1:TR0=0;LED_R=0;LED_G=1;LED_B=1;Delay200us();DIR=1;temp=100;TR0=1;break;//ǰ½ø1002½
case 2:TR0=0;LED_R=1;LED_G=0;LED_B=1;Delay200us();DIR=1;temp=200;TR0=1;break;//¼ìDøÇ°Æú2002½
case 3:TR0=0;LED_R=1;LED_G=1;LED_B=0;Delay200us();DIR=0;temp=300;TR0=1;break;//oóíË3002½¡£
default:break;
}
}
while(!key_D);
}
}
void Timer0Init(void) interrupt 1 using 1
{
TH0 = (65536-500)/256;
TL0 = (65536-500)%256;
time++;
if(time>=100)
{
time=0;
count++;
if(count>=temp)
{
TR0=0;
count=0;
LED_R=1;
LED_G=1;
LED_B=1;
PUL=0;
}
}
if(time<=50)
{
PUL=0;
}
else
{
PUL=1;
}
}
復制代碼
步進推桿控制.zip
2018-10-6 19:14 上傳
點擊文件名下載附件
165.28 KB, 下載次數: 9
作者:
一束光的旅程
時間:
2018-10-6 19:19
剛剛發的程序注釋變成亂碼了,再傳一邊。
#include <reg51.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit LED_R=P1^0; //紅色指示燈
sbit LED_G=P1^2; //綠色指示燈
sbit LED_B=P1^1; //藍色指示燈
sbit key_D=P3^6; //前進按鈕
sbit key_R=P3^7; //后退按鈕,目前不用
sbit PUL=P2^0; //脈沖口,連步進電機驅動器
sbit DIR=P2^1; //方向口,連步進電機驅動器
uchar time;
uchar count;
uchar temp;
uint t=0;
void Delay200us();
void Delay10ms();
void key_scan(); //按鍵程序
void main()
{
P1=0xff;
P2=0x00;
TMOD= 0x01;
作者:
文鳳軒
時間:
2018-10-6 21:46
1000Hz是頻率太高了不是太低了
作者:
一束光的旅程
時間:
2018-10-7 15:11
今天試驗了一下頻率太低了。我把頻率提高到4kHZ,步進電機驅動正常。
作者:
一束光的旅程
時間:
2018-10-7 15:16
試驗了一下高頻率4kHZ,驅動器可以正常工作。但是當給驅動器反向信號時,驅動器仍然正轉。在原理圖上模擬無問題。始終都是低電平。最后用單片機控制5V繼電器進行高低電平的切換。(原來用三極管S8050)。
#include <reg51.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit LED_R=P1^0; //紅色指示燈
sbit LED_G=P1^2; //綠色指示燈
sbit LED_B=P1^1; //藍色指示燈
sbit key_D=P3^6; //前進按鈕
sbit key_R=P3^7; //后退按鈕,目前不用
sbit PUL=P2^0; //脈沖口,連步進電機驅動器
sbit DIR=P0^0; //方向口,連步進電機驅動器
uchar time;
uint count;
uint temp;
uint t=0;
void Delay200us();
void Delay10ms();
void key_scan(); //按鍵程序
void main()
{
P1=0xff;
TMOD &= 0xF0;
TH0 = 0xFF;
TL0 = 0X8D; //0xF7
EA=1;
ET0=1;
while(1)
{
key_scan();
}
}
//***********************************************************//
void Delay200us() //@11.0592MHz
{
unsigned char i;
_nop_();
i = 89;
while (--i);
}
//***************************************************************//
void Delay10ms() //@11.0592MHz
{
unsigned char i, j;
i = 18;
j = 235;
do
{
while (--j);
} while (--i);
}
//*****當前進按鈕按下一次,步進電機向前走100步,100走完停止,當按第二次繼續向前走200步,走完停止。當按第三次,后退300步******//
void key_scan()
{
if(key_D==0)
{
Delay10ms();
if(key_D==0)
{
t++;
if(t>=4)
{
t=0;
}
switch(t)
{
case 1:DIR=0;TR0=0;LED_R=0;LED_G=1;LED_B=1;Delay200us();temp=10000;TR0=1;break;//前進100步
case 2:DIR=0;TR0=0;LED_R=1;LED_G=0;LED_B=1;Delay200us();temp=20000;TR0=1;break;//繼續前期200步
case 3:DIR=1;TR0=0;LED_R=1;LED_G=1;LED_B=0;Delay200us();temp=30000;TR0=1;break;//后退300步。
default:break;
}
}
while(!key_D);
}
}
//*********************定時器0*******************************//
void Timer0Init(void) interrupt 1 using 1
{
TH0 = 0xFF;
TL0 = 0x8D; //100,,0xF7
time++;
if(time>=100)
{
time=0;
count++;
if(count>=temp)
{
TR0=0;
count=0;
LED_R=1;
LED_G=1;
LED_B=1;
PUL=0;
}
}
if(time<=10)
{
PUL=0;
}
else
{
PUL=1;
}
}
復制代碼
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
亚洲在线一区二区三区
|
亚洲一区免费在线
|
欧美精品网
|
天天艹
|
日韩精品视频在线观看一区二区三区
|
草逼网站
|
成人免费一区二区三区视频网站
|
午夜小电影
|
成人av免费在线观看
|
手机av在线
|
中文字幕高清免费日韩视频在线
|
亚洲精品久久久久久久久久久久久
|
欧美激情精品久久久久久变态
|
四虎永久免费影院
|
欧美中文在线
|
免费在线观看av
|
91在线中文字幕
|
欧美成人精品在线
|
国产情侣激情
|
99re99
|
国内精品久久久久久影视8 最新黄色在线观看
|
一区二区三区视频在线免费观看
|
欧美一区二区在线
|
成人免费大片黄在线播放
|
国产一区二区在线免费观看
|
99视频网
|
国产激情视频在线观看
|
午夜精品久久久久久久星辰影院
|
亚洲高清在线
|
日本中文字幕在线观看
|
九九久久国产精品
|
精品成人佐山爱一区二区
|
久久性色
|
亚洲精品99
|
91成人午夜性a一级毛片
|
成年人视频免费在线观看
|
欧美二区三区
|
99精品国产一区二区青青牛奶
|
中文字幕在线第一页
|
日本在线免费看最新的电影
|
日韩国产中文字幕
|