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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 13717|回復(fù): 11
收起左側(cè)

淺談單片機PWM控制直流電機+編程(L298N)

  [復(fù)制鏈接]
ID:194729 發(fā)表于 2019-4-20 14:52 | 顯示全部樓層 |閱讀模式
此篇文章免費分享給大家,這篇文章結(jié)合筆者所學以及在往上參考大神的講解,通過自己的理解整理成文檔,在此免費分享給大家,由于筆者是一名在讀學生,文中難免有不當之處,如有錯誤,望大家指正!!
實現(xiàn)的主要功能:

1.控制正反轉(zhuǎn)
2.加減速
3.停止
視頻鏈接:后續(xù)再補吧,還要審核好麻煩的

PWM控制直流電機額,,,,由于筆者是一名學生(主要還是經(jīng)驗不豐富),所以,當然,此次,又掉進坑里了。

此次所用的芯片,主要是L298N、直流電機、51單片機;程序非常簡單,在此,我也會貼出來的,工程文件放在附件中,需要的直接下載!


話不多說,看圖講坑:

第一個坑:首先,講一下L298N使能端,L298N的使能端買回來的時候是被一個跳線帽給連接著的呢,那么此時,該如何連接呢?
對于連接有倆種情況:1.如果你只需要控制正反轉(zhuǎn),對速度沒有要求的話,跳線帽需要插上去。只需要控制控制端就可以控制正反轉(zhuǎn)了。2.如果你需要PWM調(diào)速,那么此時就要格外小心了,因為筆者就是跳進這個坑了。看圖~~,使能端拔掉跳線帽有個插頭,紅色箭頭的是1,綠色箭頭的是2,特別注意,如果調(diào)速的話,一定要使輸出PWM波的那段連接在1處,如果連接在2處,則會毫無作用。切記,切記,切記

第二個坑:我是通過外接電源盒來給直流電機供電的,這個時候,記得外接電源盒的地端一定要和單片機地端共地、共地、共地。否則。不轉(zhuǎn)······
0.png
圖2.電池盒和單片機共地

之前寫過一篇詳細介紹L298N的用法的文章,如果有需要的可以直接去下載,
此次主要講這倆個容易忽略的坑,鏈接:http://www.zg4o1577.cn/bbs/dpj-83045-1.html

程序代碼如下:
1.按鍵程序
#ifndef key_h
#define key_h
sbit key_1=P1^0;      //順時針轉(zhuǎn)動
sbit key_2=P1^1;      //逆時針轉(zhuǎn)動
sbit key_3=P1^2;      // 加速轉(zhuǎn)動
sbit key_4=P1^3;      //減速轉(zhuǎn)動
sbit key_5=P1^4;      //停止轉(zhuǎn)動
unsigned char PWM_Count=20;   //占空比控制字
unsigned char n=5;   //速度增減量5
sbit in1=P3^0;
sbit in2=P3^1;
sbit ena=P3^2;
void delays()
{
  unsigned char i;
  for(i=80;i>0;i--);
}
void key()
{
  P1=0XFF;
  if(key_1==0)
  {
    delays();
    if(key_1==0)
    {
      in1=0;
      in2=1;
    }               //順時針轉(zhuǎn)動
    while(!key_1);
  }

    if(key_2==0)
  {
    delays();
    if(key_2==0)
    {
      in1=1;
      in2=0;
    }
    while(!key_2);
  }                //逆時針轉(zhuǎn)動

    if(key_3==0)
  {
    delays();
    if(key_3==0)
    {
      PWM_Count=PWM_Count+n;
      if(PWM_Count>=100)
        PWM_Count=100;
    }
    while(!key_3);
  }               //加速轉(zhuǎn)動 ,如果大于等于100就全速轉(zhuǎn)動

    if(key_4==0)
  {
    delays();
    if(key_4==0)
    {
     if(PWM_Count>10)
     {
       PWM_Count=PWM_Count-n;
     }
      else
      PWM_Count=5;       //減速轉(zhuǎn)動,最低轉(zhuǎn)速為5
    }
    while(!key_4);
  }

    if(key_5==0)
  {
    delays();
    if(key_5==0)
    {
      in1=0;
      in2=0;
    }
    while(!key_5);
  }                  //電機停止轉(zhuǎn)動
}
#endif

2.主程序
#include<reg51.h>
#include "key.h"
unsigned char count=0;           
void Timer_Init()
{
  TMOD=0X01;      //T0定時方式1
  TH0=0Xfc;
  TL0=0X66;       //計數(shù)初值設(shè)置為1ms
  ET0=1;          //打開定時器0的中斷
  TR0=1;          //打開定時器0
  EA=1;           //開總中斷
}
void main()
{
  in1=0;
  in2=1;
  ena=1;
  Timer_Init();
  while(1)
  {
    key();
  }
}
void Timer() interrupt 1      //特別注意此處,0--外部中斷0,1--定時器中斷0,2--外部中斷1,3--定時器中斷1,4--串行口中斷1
{
  TR0=0;
  TH0=0Xfc;
  TL0=0X66;       //重新賦計數(shù)初值為1ms
  if(count<=PWM_Count)
  {
    ena=1;
  }
  else
  {
    ena=0;
  }
  count++;
  if(count>=100)
  {
    count=0;
  }
  TR0=1;
}

全部資料51hei下載地址:
淺談PWM控制直流電機.docx (407.24 KB, 下載次數(shù): 75)
回復(fù)

使用道具 舉報

ID:194729 發(fā)表于 2019-4-20 15:04 | 顯示全部樓層
本人開通了公 號(忙過這段日子,就開始更新文章),致力于初學者的單片機學習-----淺談小白
如果大家有什么問題可以加這個公 號,共同學習
大神也可以進來指導指導
回復(fù)

使用道具 舉報

ID:194729 發(fā)表于 2019-4-20 21:29 | 顯示全部樓層
回復(fù)

使用道具 舉報

ID:511189 發(fā)表于 2019-4-21 10:11 | 顯示全部樓層
利用L298N控制一個電機轉(zhuǎn)動?
回復(fù)

使用道具 舉報

ID:89286 發(fā)表于 2019-4-21 13:16 | 顯示全部樓層
thanks for sharing
回復(fù)

使用道具 舉報

ID:194729 發(fā)表于 2019-4-21 13:43 | 顯示全部樓層
liu0213 發(fā)表于 2019-4-21 10:11
利用L298N控制一個電機轉(zhuǎn)動?

視頻中是控制一個電機的正反轉(zhuǎn)、加減速,如果需要可以自己修改一下,原理就是那么個原理
回復(fù)

使用道具 舉報

ID:194729 發(fā)表于 2019-4-22 09:46 | 顯示全部樓層

也算是簡單記錄一下學習的日常吧,以后還望大佬多多指點
回復(fù)

使用道具 舉報

ID:144816 發(fā)表于 2019-4-22 14:20 | 顯示全部樓層
請問下有原理圖或者仿真嗎
回復(fù)

使用道具 舉報

ID:194729 發(fā)表于 2019-4-22 15:38 | 顯示全部樓層
信陵君 發(fā)表于 2019-4-22 14:20
請問下有原理圖或者仿真嗎

這個東西接線很簡單的,有需要可以幫忙畫
回復(fù)

使用道具 舉報

ID:795526 發(fā)表于 2020-7-2 11:33 | 顯示全部樓層
不用在中斷函數(shù)里再關(guān)開定時器0了吧,就是void Timer() interrupt 1 里面的TR0=0和TR0=1,因為你在中斷里也賦初值了,他就會每隔1ms執(zhí)行一次了吧
回復(fù)

使用道具 舉報

ID:795526 發(fā)表于 2020-7-2 11:51 | 顯示全部樓層
你這個設(shè)置的就是100ms為一個PWM周期嗎
回復(fù)

使用道具 舉報

ID:692524 發(fā)表于 2020-7-2 12:22 | 顯示全部樓層
謝謝樓主,幫忙解決了一個大問題。
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 狠狠干av | 国产精品免费在线 | 欧美日韩高清 | 一区二区三区四区不卡视频 | 亚洲精品在线看 | 黄色网页在线 | 欧美精品一二三 | 欧美一区久久 | 99免费精品视频 | 999久久久久久久久6666 | 欧美日韩亚洲国产综合 | 国产精品久久国产精品99 gif | 中文字幕四虎 | 一区二区三区亚洲视频 | 久久久久久国产精品 | japan25hdxxxx日本| 精品久久久久久中文字幕 | www国产成人免费观看视频,深夜成人网 | 国产一区在线免费观看 | 欧美视频xxx | 99国产精品久久久久 | av在线一区二区 | 色婷婷av久久久久久久 | 成年人在线观看 | 亚洲欧美一区二区在线观看 | 久久国产精品99久久久久久丝袜 | 国产精品久久久久久久久久久久午夜片 | 自拍亚洲 | 日韩三级电影一区二区 | 免费不卡视频 | 色婷婷综合成人av | 色综合久久天天综合网 | 欧美国产日韩在线观看 | 午夜精品久久久久久久99黑人 | 91人人视频在线观看 | 91精品国产综合久久婷婷香蕉 | 久久久久久久久国产精品 | 一本一道久久a久久精品蜜桃 | 黄色大片免费观看 | 天天射天天干 | 黑人巨大精品欧美一区二区免费 |