首先你的先知道什么是PWM。PWM是一種脈寬調(diào)制技術(shù)。

簡(jiǎn)單的說(shuō)就是在一個(gè)周期內(nèi)高電平所占用的時(shí)間,通過(guò)改變脈沖的周期可以調(diào)頻,改變脈沖的寬度或占空比可以調(diào)節(jié)驅(qū)動(dòng)上的電壓。

將產(chǎn)生的PWM信號(hào)接到L298N的ENA和ENB端調(diào)節(jié)不同的占空比從而調(diào)節(jié)速度
第一種方法用單片機(jī)的定時(shí)器模擬出PWM。假如你用定時(shí)器延時(shí)100ms,在50ms之前某一個(gè)引腳為低電平,50ms之后該引腳為高電平,這樣高電平占用的時(shí)間為1/2,此時(shí)該引腳就會(huì)產(chǎn)生50%的占空比信號(hào)。
程序如下:
#include《reg52.h》
unsigned chartimer1;
sbit PWM=P1^1;
void system_Ini()
{TMOD|= 0x11;
TH1 = 0xfe; //11.0592
TL1 = 0x33;
TR1 =1;
IE=0x8A;
}
main()
{ system_Ini() ;定時(shí)器初始化
while(1)
{ if(timer1》100) timer1=0;
if(timer1《=30) pwm=0;//產(chǎn)生30%的占空比
else PWM=1;
}
}
另一種方法就是利用簡(jiǎn)單的延時(shí)產(chǎn)生PWM方波信號(hào)
#include《reg52.h》
unsigned char count=0;
sbit PWM_1=PI^1;//利用P1^1產(chǎn)生PWM
void mian()
{while(1)
for(count=0;count《=100;count++) //讓單片機(jī)記100個(gè)數(shù)
{
If(count《=50){ PWM_1=1;}//前一半時(shí)間為高電平
else
PWM_1=0//后一半時(shí)間為低電平這樣就產(chǎn)生了50%的占空比
}
PWM不僅能夠控制小車速度還可以控制小燈的亮滅程度,朋友們可以去試試
-
單片機(jī)
+關(guān)注
關(guān)注
6063文章
44929瀏覽量
647172 -
PWM
+關(guān)注
關(guān)注
116文章
5391瀏覽量
218156 -
定時(shí)器
+關(guān)注
關(guān)注
23文章
3288瀏覽量
117263
發(fā)布評(píng)論請(qǐng)先 登錄
紅外控制小車速度問(wèn)題
智能小車速度測(cè)量控制系統(tǒng)設(shè)計(jì)
請(qǐng)問(wèn)有如何實(shí)現(xiàn)遙控控制小車速度和方向的資料嗎?
小車運(yùn)動(dòng)及速度控制設(shè)計(jì)

風(fēng)扇速度控制系統(tǒng)中的噪音和如何利用PWM抑制它的方法

單片機(jī)PWM信號(hào)如何控制智能小車?實(shí)現(xiàn)方法詳細(xì)資料概述

使用單片機(jī)PWM信號(hào)控制進(jìn)行智能小車的實(shí)現(xiàn)方法資料說(shuō)明

使用單片機(jī)的PWM信號(hào)控制智能小車的方法詳細(xì)說(shuō)明

抑制PWM風(fēng)扇速度控制系統(tǒng)中的噪音

基于STC89C52的智能小車——PWM調(diào)速篇

使用51單片機(jī)的PWM信號(hào)控制智能小車的實(shí)現(xiàn)方法
STM32通過(guò)PWM控制電機(jī)速度

評(píng)論