找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

stc89c52rc單片機+L298n驅(qū)動JGB37-520減速電機為什么電機沒反應(yīng)?該怎么改程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
#
ID:999667 發(fā)表于 2022-5-16 17:38 | 只看該作者 |只看大圖 回帖獎勵 |正序瀏覽 |閱讀模式
100黑幣
單片機源程序如下:謝謝大家
#include <reg52.h>

sbit IN1   = P1^7;
sbit IN2   = P1^6;
sbit IN3   = P1^5;
sbit IN4   = P1^4;
sbit ENA   = P2^1;
sbit ENB   = P2^0;
sbit hdz1=P1^0;     //灰度
sbit hdy1=P1^2;
unsigned char zkb1 = 0;    //占空比左
unsigned char zkb2 = 0;    //占空比右
int t = 0;

void PIT_Init()
{
   EA    = 1;
    TMOD |= 0x01;
    TH0   = (65536 - 200) / 256;
    TL0   = (65536 - 200) % 256;
    ET0   = 1;
    TR0   = 1;
}

void timer()interrupt 1
{
  TH0 = (65536-200)/256;
    TL0 = (65536-200)%256;
   
  if(t<zkb1)
    {
       ENA = 1;
    }
  else
    {
      ENA = 0;
    }
   
    if(t<zkb2)
    {
       ENB = 1;
    }
  else
        
    {
      ENB = 0;
    }
   
    t = (t + 1) %50;
}

void run()
{  zkb1  =  20;
    zkb2  =  20 ;
    IN1   = 1;
    IN2   = 0;
    IN3   = 1;
    IN4   = 0;
}

void stop(void)
{   zkb1 = 0;
    zkb2 = 0;
    IN1  = 0;
    IN2  = 0;
    IN3  = 0;
    IN4  = 0;
}

void rightrun(void)
{
    zkb1 = 45;
    zkb2 = 45;
    IN1  = 1;
    IN2  = 0;
    IN3  = 0;
    IN4  = 1;
}

void leftrun(void)
{
    zkb1 = 45;
    zkb2 = 45;
    IN1  = 0;
    IN2  = 1;
    IN3  = 1;
    IN4  = 0;
}


void main()
{
   
    PIT_Init();
    while(1)
    {
    if(hdy1==1)
    {
      rightrun();
    }
    else if(hdz1==1)
    {
        leftrun();
    }
    else
    {
    run();
    }
  
}

}

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

使用道具 舉報

8#
ID:999667 發(fā)表于 2022-5-17 12:05 | 只看該作者
yaoyao2022 發(fā)表于 2022-5-16 23:23
單片機和減速電機沒有共地?

共了,我好像找到問題了,別的接線問題
回復(fù)

使用道具 舉報

7#
ID:999667 發(fā)表于 2022-5-17 12:03 | 只看該作者
glinfei 發(fā)表于 2022-5-17 08:43
1、你的程序跟圖不一樣啊,程序是從ENA/ENB注入pwm,圖上直接把這倆拉高了。2、你pwm使用的中斷寫法有點問 ...

大佬,這圖不是我的
回復(fù)

使用道具 舉報

6#
ID:999667 發(fā)表于 2022-5-17 12:02 | 只看該作者
glinfei 發(fā)表于 2022-5-17 08:43
1、你的程序跟圖不一樣啊,程序是從ENA/ENB注入pwm,圖上直接把這倆拉高了。2、你pwm使用的中斷寫法有點問 ...

知道了,謝謝大佬
回復(fù)

使用道具 舉報

5#
ID:999667 發(fā)表于 2022-5-17 12:01 | 只看該作者
18701931930 發(fā)表于 2022-5-16 23:05
個人思路:
ENA和ENB是門控位,一般直接高電平.兩個輸入腳,一個接地,另外一個做PWM調(diào)速.這樣只能是單向調(diào)速. ...

好的,謝謝大佬
回復(fù)

使用道具 舉報

地板
ID:94031 發(fā)表于 2022-5-17 10:05 | 只看該作者
增加脈寬調(diào)制導(dǎo)通時間,現(xiàn)在驅(qū)動力不夠。
回復(fù)

使用道具 舉報

板凳
ID:844772 發(fā)表于 2022-5-17 08:43 | 只看該作者
1、你的程序跟圖不一樣啊,程序是從ENA/ENB注入pwm,圖上直接把這倆拉高了。2、你pwm使用的中斷寫法有點問題,最好用自動重裝模式,頻率也沒必要那么高。3、直行時占比調(diào)的太低,電機pwm調(diào)節(jié)不是線性,低于50%扭矩會下降很快,你用萬用表先測一下?傊,主要是電路問題,最好能上個實物圖或你實際用的電路圖。
回復(fù)

使用道具 舉報

沙發(fā)
ID:1026496 發(fā)表于 2022-5-16 23:23 | 只看該作者
單片機和減速電機沒有共地?
回復(fù)

使用道具 舉報

樓主
ID:554500 發(fā)表于 2022-5-16 23:05 | 只看該作者
個人思路:
ENA和ENB是門控位,一般直接高電平.兩個輸入腳,一個接地,另外一個做PWM調(diào)速.這樣只能是單向調(diào)速.
雙向調(diào)速參考下圖:<可下載仿真試試>


L298N驅(qū)動直流電機.zip

20.66 KB, 下載次數(shù): 6

回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

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