2、一般来说你的传感器个数应该比较多,可能6~10个吧,如此多的信号不应该都进入中断,再说单片机也没那么多外部中断可给你用,建议戚雹所有信号加或门进入外部中断(可分为左边一组,右边一组,两个中断)。否则在主函数(更好的是,定时器)判断,这个信号最好连接到同一个端口上,如P0端口,通过位判断当前信号值。
3、L298N功率芯片,如果要调速且是直流电机,一般是对其控制使能脚施加占空比变化的信号,以达到不同的驱动效果悉核。如果是步进电机,则控制方式有所不同,请查阅相应文献
几个驱动轮的?可以用笨一点的方法 如果你是四轮车 你可以控制它直线高速四轮虚历全动 低速动两个转弯的话 高速可以正转一边反闷誉粗转 低速一边正转 另一蚂镇边锁死 或者转一个我比较笨 到现在都没学会pwm 所以只有这本办法了~
直流电机常用的调速方法是调电压,为了减小调节功耗,常用PWM方式来调节电压用定时器产生PWM(脉冲宽度调节)信号是不错的 选择
原理是定时器周期性产生中断,用一变量a 来 计算中断次数,每源袜次中断a的值加1
假设中断周期(定时器定时长度)是100us,中断100次(10ms)让a清0,并让单片机某一引脚P1^0输出高电平
另设一变量b(b<100),当a的值和b的值相等时,让该引脚输出低电平,这样就就在P1^0引脚获得了一定频率(本例是100HZ,有点低)和占空比(b/100)的方波,改变b的值就改变了占空比
这个方波经放大和滤波后即可驱动直流电机
中断程序如下:
void timer0 ( ) interrupt 1
{
TH0=(65536-100)/256;//假设运梁时钟频率12M
TH0=(65536-100)%256;
a++
if(a>=b) P1.0=0
if(a==100)
{P1.0=1a=0}
}
如果让定时器工作在自动重装模式,中断可以更频繁雹悄激一些(中断太频繁,中断程序根本完不成),同样调节精度下工作频率可以更高
如果想获得更高的频率,要用带硬件PWM功能的单片机
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)