小R科技-WIFI机器人网·机器人创意工作室

 找回密码
 立即注册
楼主: liuviking

WIFI机器人网·机器人创意工作室51duino智能小车机器人驱动板源代码

  [复制链接]
 楼主| 发表于 2012-11-12 22:07:55 | 显示全部楼层
uohzhcim 发表于 2012-11-12 16:41
楼主,我用的最简单双马达,两轮驱动底盘。自己根据楼主的小车程序稍微改了下代码,用Timer0控制一个软件串 ...

软串口?你确定的这个串口能正确接收到数据吗?
MOTOR_A_EN这个是使能,也就是这个引脚高电平的时候,A电机才有输出,不然是没有的。
调速就是通过这里产生一个PWM波,来控制电机的转速。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-11-12 22:08:31 | 显示全部楼层
doufuyu 发表于 2012-11-12 20:15
要是最后的几个程序吧管不光光是HEX就好喽

后几个程序只是简单的把前面发布的代码集成在了一起而已,再这里贴出来就画蛇添足了。
回复 支持 反对

使用道具 举报

发表于 2012-11-12 22:34:06 | 显示全部楼层
liuviking 发表于 2012-11-12 22:07
软串口?你确定的这个串口能正确接收到数据吗?
MOTOR_A_EN这个是使能,也就是这个引脚高电平的时候,A电 ...

软串口9600波特率肯定是可以的。因为我用硬串口输出软串口收到的内容,确认可以。

那要A电机输出就是MOTOR_A_EN==1&&MOTOR_A_CON1==1&&MOTOR_A_CON2==0就可以对吧?如果不调制PWM控速,就这样就能前进了对吧?没有别的需要调整的话可以试试看不用Timer1看看能输出么。
回复 支持 反对

使用道具 举报

发表于 2012-11-12 22:36:10 | 显示全部楼层
如果有人想要软串口代码,我上传了。在驱动板上调试通过。

STC_Soft_uart_FullDuplex.rar

5.08 KB, 下载次数: 9

回复 支持 反对

使用道具 举报

发表于 2012-11-12 22:47:49 | 显示全部楼层
顶顶
回复 支持 反对

使用道具 举报

发表于 2012-11-12 22:48:03 | 显示全部楼层
咂咂嘴
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-11-12 23:47:02 | 显示全部楼层
uohzhcim 发表于 2012-11-12 22:34
软串口9600波特率肯定是可以的。因为我用硬串口输出软串口收到的内容,确认可以。

那要A电机输出就是M ...

对,不进行速度调整的情况下,MOTOR_A_EN必须始终为1
回复 支持 反对

使用道具 举报

发表于 2012-11-13 00:29:29 | 显示全部楼层
liuviking 发表于 2012-11-12 23:47
对,不进行速度调整的情况下,MOTOR_A_EN必须始终为1

好像发觉问题了,我把代码里面这一段给去掉了:

        else if(softuart_buffer[0]==0x02)
        {
                if(softuart_buffer[2]>10)
                        return;
                switch(softuart_buffer[1])
                {
                        case 0x01eft_Speed_Hold=Left_Speed  = softuart_buffer[2]; return;
                        case 0x02:Right_Speed_Hold=Right_Speed = softuart_buffer[2]; return;
                        default : return;
                }


这样是不是导致Left_Speed_Hold和Right_Speed_Hold始终为0,从而导致马达永远速度是0?给这两个变量设一个1-9之间的初始值是不是就好了?

对了,按照正常上位机的逻辑,每次都会先发FF 02 01 0x FF,FF 02 02 0x FF来设初始速度才开始控制马达?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-11-13 00:56:36 | 显示全部楼层
uohzhcim 发表于 2012-11-13 00:29
好像发觉问题了,我把代码里面这一段给去掉了:

        else if(softuart_buffer[0]==0x02)

你这个是左右差速的代码,初始速度是0,自然走不动了,要上位机先把速度调上去,然后电机才能动。或者如你所述,直接把速度赋值为10即可全速了。
回复 支持 反对

使用道具 举报

发表于 2012-11-14 20:40:01 | 显示全部楼层
好,顶起,顶起顶起
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

新品特惠推荐上一条 /2 下一条

QQ|QQ技术咨询1|QQ技术咨询2|商务合作微信1:xiaorgeek001|商务合作微信2:XiaoRGEEK|诚聘英才|Archiver|手机版|小R科技-WIFI机器人网·机器人创意工作室 ( 粤ICP备15000788号-6 )

GMT+8, 2024-11-24 01:34 , Processed in 1.105628 second(s), 20 queries .

Powered by XiaoR GEEK X3.4

© 2014-2021 XiaoR GEEK

快速回复 返回顶部 返回列表