找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2089|回復(fù): 8
打印 上一主題 下一主題
收起左側(cè)

基于stm32的ULN2033求助,電機(jī)在震,但是不轉(zhuǎn)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:558088 發(fā)表于 2019-12-19 21:04 | 只看該作者 回帖獎勵 |倒序?yàn)g覽 |閱讀模式
我電機(jī)在震,但是不轉(zhuǎn)怎么辦呀,用一開始的程序能轉(zhuǎn)起來,但是看了之后改進(jìn)我的里面就不行,可以幫我看看嘛.步進(jìn)電機(jī)c文件
  1. #include "bujin.h"
  2. #include "SysTick.h"

  3. #define uint unsigned int

  4. uint16_t phasecw[4] ={0x0800,0x0400,0x0200,0x0100};

  5. void Delay_xms(uint x)
  6. {
  7. uint i,j;
  8. for(i=0;i<x;i++)
  9.   for(j=0;j<112;j++);
  10. }

  11. void MOTO_Init(void)
  12. {
  13.         
  14. GPIO_InitTypeDef GPIO_InitStructure;
  15. RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD,ENABLE);
  16. GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_10 | GPIO_Pin_11 ;
  17. GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
  18. GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  19. GPIO_Init(GPIOD,&GPIO_InitStructure);
  20. GPIO_ResetBits(GPIOD,GPIO_Pin_8 | GPIO_Pin_9 |GPIO_Pin_10 |GPIO_Pin_11 );
  21.         
  22. }

  23. void Motorcw(uint speed)  
  24. {  
  25.     uint8_t i=0;         
  26.         {
  27.     for(i=0;i<4;i++)  
  28.     {  
  29.         GPIO_Write(GPIOD,phasecw[i]);  
  30.         delay_ms(speed);  
  31.     }
  32.         }
  33. }

  34. void MotorStop(void)  
  35. {
  36. GPIO_Write(GPIOD,0x0000);  
  37. }

  38. void Motorcw_angle(int angle,int speed)
  39. {
  40.         int i,j;
  41.         j=(int)(angle/0.70312);
  42.         for(i=0;i<j;i++)
  43.         {
  44.                 Motorcw(speed);
  45.         }
  46. }
復(fù)制代碼
主程序的
  1. if(hum>=setup||shi>=setup)
  2. {
  3.         led3=!led3;
  4.         beep=!beep;
  5.         Motorcw_angle(90,4);
  6.                  data_pros();
  7.                 }
  8.                 else
  9.                 {
  10.                  data_pros();
  11.                  }
  12. }
復(fù)制代碼





分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:558088 發(fā)表于 2019-12-19 21:06 | 只看該作者
一直在震,但是不會轉(zhuǎn),氣死了
回復(fù)

使用道具 舉報

板凳
ID:558088 發(fā)表于 2019-12-20 08:37 | 只看該作者
有人會不
回復(fù)

使用道具 舉報

地板
ID:25310 發(fā)表于 2019-12-20 08:48 | 只看該作者
看下速度是否太快啟動不了。就是哪個延時。
回復(fù)

使用道具 舉報

5#
ID:558088 發(fā)表于 2019-12-20 09:07 | 只看該作者
步進(jìn)電機(jī)有一個技術(shù)參數(shù):空載啟動頻率,即步進(jìn)電機(jī)在空載情況下能夠正常啟 
動的脈沖頻率,如果脈沖頻率高于該值,電機(jī)不能正常啟動,可能發(fā)生丟步或堵
轉(zhuǎn)。在有負(fù)載的情況下,啟動頻率應(yīng)更低。如果要使電機(jī)達(dá)到高速轉(zhuǎn)動,脈沖頻
率應(yīng)該有加速過程,即啟動頻率較低,然后按一定加速度升到所希望的高頻(電
機(jī)轉(zhuǎn)速從低速升到高速)。

剛剛看到這個,是因?yàn)檫@個嗎
回復(fù)

使用道具 舉報

6#
ID:532541 發(fā)表于 2019-12-20 10:03 | 只看該作者
main()
for(;;)
{
  if(hum>=setup||shi>=setup)
{
        led3=!led3;
        beep=!beep;
        Motorcw_angle(90,4);
                 data_pros();
                }
                else
                {
                 data_pros();
                 }
}
}
主程序應(yīng)該是的死循環(huán)
回復(fù)

使用道具 舉報

7#
ID:558088 發(fā)表于 2019-12-20 11:07 | 只看該作者
pcbboy 發(fā)表于 2019-12-20 08:48
看下速度是否太快啟動不了。就是哪個延時。

我沒調(diào)過,電機(jī)能轉(zhuǎn),但是加到我的程序里,就不轉(zhuǎn)只會震
回復(fù)

使用道具 舉報

8#
ID:558088 發(fā)表于 2019-12-20 11:10 | 只看該作者
  1.         while(1)
  2.         {
  3.                 key=KEY_Scan(0);  
  4.                 switch(key)
  5.                 {
  6.                         case KEY_UP:    setup=setup+1;break;   
  7.                         case KEY_DOWN:  setup=setup-1;break;   
  8.                 }
  9.                 if(setup>=99)
  10.                 {
  11.                         setup=99;
  12.                 }
  13.                 i++;
  14.                 if(i%20==0)
  15.                 {
  16.                         data_pros();  
  17.                 }               

  18.                 delay_us(10);
  19.      hum=humi/10;
  20.                 shi=shidu/10;
  21.                 if(hum>=setup||shi>=setup)
  22.                 {
  23.         led3=!led3;
  24.         beep=!beep;
  25.         Motorcw_angle(90,4);
  26.                  data_pros();
  27.                 }
  28.                 else
  29.                 {
  30.         GPIO_SetBits(LED_PORT,LED_PIN);
  31.                  data_pros();
  32.                 }       
  33.         }
復(fù)制代碼

這個是主程序的while循環(huán)
回復(fù)

使用道具 舉報

9#
ID:558088 發(fā)表于 2019-12-20 11:10 | 只看該作者

我發(fā)了個主程序的while循環(huán) 在樓下
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表