久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1466|回復: 3
收起左側

請大家幫我看看單片機代碼,為什么L298NIN口都是高電平

[復制鏈接]
ID:1016999 發表于 2022-4-16 22:54 | 顯示全部樓層 |閱讀模式
M2MU4RCPB%`H6RCL68IBOW3.png

單片機源程序如下:
void forward(void)                                                    //小車前進控制函數           
{
IN1 = 1;                                                                                         //將電機驅動芯片L298N的控制管腳 IN1設置成高電平
IN2 = 0;                                                                                         //將電機驅動芯片L298N的控制管腳 IN2設置成低電平

IN3 = 1;                                                                                         //將電機驅動芯片L298N的控制管腳 IN3設置成高電平
IN4 = 0;                                                                                     //將電機驅動芯片L298N的控制管腳 IN4設置成低電平
}

void back(void)                                                 //小車后退控制函數           
{
IN1 = 0;                                                                                         //將電機驅動芯片L298N的控制管腳 IN1設置成低電平
IN2 = 1;                                                                             //將電機驅動芯片L298N的控制管腳 IN2設置成高電平

IN3 = 0;                                                                                         //將電機驅動芯片L298N的控制管腳 IN3設置成低電平
IN4 = 1;                                                                     //將電機驅動芯片L298N的控制管腳 IN4設置成高電平
}

void stop(void)                                                 //小車停止控制函數
{
IN1 = 0;                                                                                         //將電機驅動芯片L298N的控制管腳 IN1設置成低電平
IN2 = 0;                                                                                   //將電機驅動芯片L298N的控制管腳 IN2設置成低電平

IN3 = 0;                                                                                         //將電機驅動芯片L298N的控制管腳 IN3設置成低電平
IN4 = 0;                                                                    //將電機驅動芯片L298N的控制管腳 IN4設置成低電平
}

void left(void)                                                 //小車向左轉控制函數
{
IN1 = 0;                                                                                         //將電機驅動芯片L298N的控制管腳 IN1設置成低電平
IN2 = 0;                                                                                   //將電機驅動芯片L298N的控制管腳 IN2設置成低電平

IN3 = 1;                                                                                         //將電機驅動芯片L298N的控制管腳 IN3設置成高電平
IN4 = 0;                                                                                         //將電機驅動芯片L298N的控制管腳 IN4設置成低電平
}

void right(void)                                                  //小車向右轉控制函數
{
IN1 = 1;                                                                                         //將電機驅動芯片L298N的控制管腳 IN1設置成高電平
IN2 = 0;                                                                                           //將電機驅動芯片L298N的控制管腳 IN2設置成低電平

IN3 = 0;                                                                                         //將電機驅動芯片L298N的控制管腳 IN3設置成低電平
IN4 = 0;                                                                                          //將電機驅動芯片L298N的控制管腳 IN4設置成低電平
}

void circle_right(void)                                     //小車向右打轉控制函數                  
{
IN1 = 1;                                                                                       //將電機驅動芯片L298N的控制管腳 IN1設置成低電平
IN2 = 0;                                                                                          //將電機驅動芯片L298N的控制管腳 IN2設置成高電平

IN3 = 0;                                                                                        //將電機驅動芯片L298N的控制管腳 IN3設置成高電平
IN4 = 1;                                                                                         //將電機驅動芯片L298N的控制管腳 IN4設置成低電平
}

void speed_jia(void)                                                  
{
   if(sudu<17)sudu++;
         pwmval_left_init  = sudu;
                   pwmval_right_init = sudu;
}
void speed_jian(void)                                                  
{
   if(sudu>3)sudu--;
         pwmval_left_init  = sudu;
                   pwmval_right_init = sudu;
}
/************************************************************************/                                                         
void left_moto(void)                                                                 //小車左電機PWM調速控制函數
{  
if(left_pwm)                                                                                 //如果變量left_pwm為1,執行左電機pwm調速功能(left_pwm相當于一個開關,只有為1時才有pwm調速功能)
{
  if(pwmval_left <= pwmval_left_init)                                 //當pwmval_left小于等于pwm_left_init時
  {
   EN1 = 1;
                                                                                   //將電機驅動芯片的EN1管腳設置成高電平
  }
  else                                                                                                  //當pwmval_left小不于等于pwm_left_init時
  {                                                                                                         
   EN1 = 0;
                                                                                            //將電機驅動芯片的EN1管腳設置成低電平
  }
  if(pwmval_left >= 20)                                                                 //如果         pwmval_left大于等于20
  {
   pwmval_left = 0;                                                                         //將  pwmval_left設為0
  }
}
else                                                                                             //        如果變量left_pwm為0,將電機驅動芯片的EN1管腳設置成低電平 (left_pwm相當于一個開關,只有為1時才有pwm調速功能)
{
  EN1 = 0;

}
}

/******************************************************************/
void right_moto(void)                                                              //小車右電機PWM調速控制函數
{                                                                                                  
if(right_pwm)                                                                                //如果變量right_pwm為1,執行右電機pwm調速功能(right_pwm相當于一個開關,只有為1時才有pwm調速功能)
{                                                                                                      
  if(pwmval_right <= pwmval_right_init)                                  //當pwmval_right小于等于pwm_right_init時
  {
   EN2 = 1;                                                                                    //將電機驅動芯片的EN2管腳設置成高電平
  }
  else if(pwmval_right > pwmval_right_init)                        //當pwmval_right小不于等于pwm_right_init時
  {
   EN2 = 0;                                                                                        //將電機驅動芯片的EN2管腳設置成低電平
  }
  if(pwmval_right >= 20)                                                       //如果         pwmval_right大于等于20
  {
   pwmval_right = 0;                                                                //將  pwmval_right設為0
  }
}
else                                                                                            //如果變量right_pwm為0,將電機驅動芯片的EN2管腳設置成低電平 (right_pwm相當于一個開關,只有為1時才有pwm調速功能)
{
  EN2 = 0;                                                      
}
}


回復

使用道具 舉報

ID:121859 發表于 2022-4-17 08:50 | 顯示全部樓層
代碼不全,看不出有啥問題,這里只是一些子程序。如果你的主程序里面沒有調用這些子程序,當然IN都是高了。PWM控制一般是定時器實現的,程序里面也沒有看到定時器相關的代碼。
回復

使用道具 舉報

ID:480627 發表于 2022-4-17 16:49 | 顯示全部樓層
你最好把完整的程序和圖紙貼上來,要不然看的云里霧里的。。。
回復

使用道具 舉報

ID:123289 發表于 2022-4-18 17:17 | 顯示全部樓層
你走單步調試一下,不就明白了
回復

使用道具 舉報

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

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲视频在线看 | 国产精品一区一区 | 日韩欧美三区 | av黄在线观看 | av手机免费在线观看 | 亚洲成年影院 | av手机免费在线观看 | 亚洲视频欧美视频 | 欧美一区二区三区视频 | 国产一区2区 | 9999视频 | 日韩av啪啪网站大全免费观看 | 99久久精品国产毛片 | 青草久久免费视频 | 国产精品三级久久久久久电影 | 国产四区 | 精品99在线 | 成人福利电影 | 久久精品久久久久久 | 99精品一区二区三区 | 欧美日韩精品一区二区三区蜜桃 | 日韩在线国产 | 欧美aa在线 | 高清视频一区二区三区 | 久久久夜| 日韩免费看视频 | 玖玖操| 国产成人短视频在线观看 | 亚洲一区二区视频在线观看 | 亚洲日本成人 | 一级免费a | 一本色道久久综合亚洲精品高清 | 在线免费av电影 | 久久久久久久91 | 日韩中文字幕 | 亚洲视频免费观看 | 在线a视频网站 | 国产精品久久久久久久白浊 | 亚洲高清一区二区三区 | 久久无毛 | 男女在线免费观看 |