標(biāo)題:
我做的51單片機(jī)循跡小車 改PWM1和PWM2就可以達(dá)到理想狀態(tài)對(duì)嗎?
[打印本頁(yè)]
作者:
better-me
時(shí)間:
2017-7-22 17:30
標(biāo)題:
我做的51單片機(jī)循跡小車 改PWM1和PWM2就可以達(dá)到理想狀態(tài)對(duì)嗎?
用51做循跡小車,不知道程序錯(cuò)沒(méi)錯(cuò),我覺(jué)得改PWM1和PWM2就可以達(dá)到理想狀態(tài)對(duì)嗎?還有輪子的松緊會(huì)不會(huì)影響輪子的轉(zhuǎn)動(dòng)��?
#include<reg52.h>
#include<intrins.h>
#include "xunji.h"
int t=0,PWM1=10,PWM2=1;
unsigned long int shijian=0;
void delayms(unsigned int xms) //誤差 0us
{
unsigned int i,j;
for(i=0;i<xms;i++)
for(j=0;j<110;j++);
}
void Init_T0()
{
TH0 = (65536-10)/256; //0.1ms
TL0 = (65536-10)%256;
EA=1; //開總中斷
ET0=1; //開定時(shí)器1中斷
TR0=1; //啟動(dòng)定時(shí)器1 程序開始在此等待中斷
}
void zhi()
{
IN1=1;IN2=0;IN3=0;IN4=1;
}
void zuo()
{
IN1=0;IN2=0;IN3=0;IN4=1;
}
void you()
{
IN1=1;IN2=0;IN3=0;IN4=0;
}
void ting()
{
IN1=0;
IN2=0;
IN3=0;
IN4=0;
}
void xunji()
{
if((z==1)&&(y==0)) // 左轉(zhuǎn) (亮為高,暗為低)
{
zuo();
PWM1=20;
PWM2=20;
}
if((z==0)&&(y==1)) // 右轉(zhuǎn)
{
you();
PWM1=20;
PWM2=20;
}
if((z==0)&&(y==0)) // 直走
{
zhi();
PWM1=20;
PWM2=20;
}
if((z==1)&&(y==1)) // 停止
{
ting();
PWM1=0;
PWM2=0;
}
}
/************電機(jī)中短*****************/
void T0_time() interrupt 1
{
TH0 = (65536-10)/256; //0.1ms
TL0 = (65536-10)%256;
t++;
shijian++;
if(t==100) //1s
t=0; //清零
if(t<=PWM1)
ENA=1; //當(dāng)計(jì)數(shù)變量小于占空比時(shí)輸出高電平,大時(shí)輸出低電平
else
ENA=0;
if(t<=PWM2)
ENB=1; //當(dāng)計(jì)數(shù)變量小于占空比時(shí)輸出高電平,大時(shí)輸出低電平
else
ENB=0;
}
復(fù)制代碼
作者:
陶墨一
時(shí)間:
2017-7-22 22:27
你說(shuō)的循跡 是黑膠帶還是鐵絲之類的? 改變PWM可以控制輪子的速度 輪子一定要擰緊
作者:
better-me
時(shí)間:
2017-7-23 08:55
陶墨一 發(fā)表于 2017-7-22 22:27
你說(shuō)的循跡 是黑膠帶還是鐵絲之類的? 改變PWM可以控制輪子的速度 輪子一定要擰緊
黑膠帶,改變了pwm但經(jīng)常還是會(huì)經(jīng)常跑出去
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1