完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
最近在做循迹小车,前面是2驱电机,后面是万向轮;使用2路红外传感器(左和右),现在遇到的问题是小车不能拐弯,我的想法是:左路检测到黑线,小车左拐;右路检测到黑线,小车右拐,同时检测到黑线则直走,同时都没检测到则让小车后退。
//引脚说明 ***it Left_Moto_IN1=P0^0; ***it Left_Moto_IN2=P0^1; ***it Right_Moto_IN3=P0^2; ***it Right_Moto_IN4=P0^3; ***it Left_Led=P1^6; //左路红外 ***it Right_Led=P1^7; //右路红外 我的电机驱动是L298N,2PWM控制速度的方法如下: uchar count = 0; void Init_timer() { //12M晶振 TH0 = (65535-10)/256; TL0 = (65535-10)%256; TMOD = 0x01; TR0 = 1; ET0 = 1; EA = 1; } void Timer0_int()interrupt 1 { TH0 = (65535-10)/256; TL0 = (65535-10)%256; count ++; if(count >= 100){count = 0;} } //PWM控制左轮速度 void Wheel_l(uchar speed) { if(count <= speed) { Left_Moto_IN1 = 1;//左电机的两个输入端 Left_Moto_IN2 = 0;//p0.1 } else { Left_Moto_IN1 = 0; Left_Moto_IN2 = 0; } } //PWM控制右轮速度 void Wheel_r(uchar speed) { if(count<= speed) { Right_Moto_IN3 = 0;//右电机的两个输入端 Right_Moto_IN4 = 1; } else { Right_Moto_IN3 = 0; Right_Moto_IN4 = 0; } } void main() { Init_timer(); while(1) { if((Left_Led==1)&&(Right_Led==0))//左边检测到黑线右边没检测到 小车左转 { Wheel_l(10); Wheel_r(30); } if((Left_Led==0)&&(Right_Led==1))//右边检测到黑线左边没检测到 小车右转 { Wheel_l(30); Wheel_r(10); } if((Left_Led==1)&&(Right_Led==1))//两边同时检测到黑线 小车直走 { Wheel_l(30); Wheel_r(30); } if((Left_Led==0)&&(Right_Led==0))//两边都没检测到黑线 小车后退 { back();//电机同时后退 delayms(10); Stop_All();//两个电机都停止 delayms(10); } } 请问大家,这样做对不对?现在小车在黑线边界的地方不能拐弯,直接跑出去了 |
|
相关推荐
4个回答
|
|
|
|
|
|
|
|
|
|
感觉是你pwm控制的问题,是不是pwm控制和红外巡线有空白区,我以前都是直接在中断中使用,或用硬件pwm的
|
|
|
|
你先看看是不是检测的问题还是程序的问题
|
|
|
|
只有小组成员才能发言,加入小组>>
3320 浏览 9 评论
3000 浏览 16 评论
3497 浏览 1 评论
9069 浏览 16 评论
4090 浏览 18 评论
1190浏览 3评论
612浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
603浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2339浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1899浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-27 23:37 , Processed in 1.050217 second(s), Total 54, Slave 45 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号