完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
我参加了学校的一个迅疾小车比赛,传感器是红外的,基于AT89C52,四个直流电机驱动四个轮子,L289N驱动板
我想请教一下大家,关于过弯,大家有什么好的思路?我尝试过用PWM波控制内侧轮子减速过弯,也尝试过内侧反转过弯,效果都不是很理想。因为速度太快,总是冲出迹线。 下面是我写的PWM调制程序,大家看看有什么问题 TR0=1; TH0=(65536-1000)/256; TL0=(65536-1000)%256; num++; if(num else { if(num<100) P2=0x00; else num=0; } 下面是我应经写出来的,还没有成功的程序,麻烦大家看看在那么改,我是新手,好多东西都不懂,希望大家指导。 #include #define uint unsigned int #define uchar unsigned char #define ZKB 20 #define ZKB1 50 uint num=0,tt; ***it gg1=P1^7; ***it gg2=P1^6; ***it gg3=P1^5; ***it gg4=P1^4; void delay(uint z) { uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } void go_straiht(); void turn_left(); void turn_right(); void main() { P0=0x48; P2=0x48; delay(100); P0=0xe8; P2=0xe8; EA=1; TH0=(65536-10)/256; TL0=(65536-10)%256; ET0=1; while(1) { if((gg1&&gg2&&gg3&&gg4)==1) { go_straiht(); delay(100); } if(gg1==0) { turn_left(); delay(500); } if(gg2==0) { turn_left(); delay(500); } if(gg3==0) { turn_right(); delay(500); } if(gg4==0) { turn_right(); delay(500); } } } void go_straiht() { TR0=1; TH0=(65536-100)/256; TL0=(65536-100)%256; num++; if(num P2=0xe8; P0=0xe8; } else { if(num<100) { P2=0x00; P0=0xe8; } else num=0; } } void turn_left() { TR0=1; TH0=(65536-100)/256; TL0=(65536-100)%256; num++; if(num else { if(num<100) P2=0x00; else num=0; } } void turn_right() { TR0=1; TH0=(65536-100)/256; TL0=(65536-100)%256; num++; if(num else { if(num<100) P0=0x00; else num=0; } } |
|
相关推荐 |
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
使用Keil建立完整的工程,并使用外部中断0触发数码管显示903
418 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-使用AHT20进行环境监测之AHT20传感器介绍
1083 浏览 0 评论
846 浏览 0 评论
886 浏览 1 评论
基于瑞萨FPB-RA4E2智能床头灯项目——1编译环境搭建与点亮驱动ws2812全彩LED
882 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11831 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-30 17:55 , Processed in 0.431742 second(s), Total 40, Slave 32 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号