我用51单片机做个智能小车四驱的!想要实现差速转向,怎么做!要pwm控制!需要几个定时器!一个可以

电子差速从几年前就有人投入了研究,分主动差速和被动差速。被动差速是控制两个电机严格的按照等转矩或等功率运转,主动差速是根据要求控制两个电机按一定的差速比闭环调速运转。
51系列单片机指令周期太长,不适合做电机驱动,无法实现电子差速的要求,建议使用性能更好单片机来完成,比如dsPIC,STM32,AVR系列等。

用51单片机,输出PWM信号控制智能小车的小电机,汇编程序要怎么写?~

&& 我是用PC机控制的, 不知对你有无帮助.

*-- 舵机控制

Local 我的小大脚, 油门, 方向

油门 = 0
方向 = 1
我的小大脚 = Newobject("环奇小大脚")
*-- Inkey(4)
*-- 我的小大脚.发送指令(方向, 0)
*-- 我的小大脚.发送指令(油门, 0)
*-- Inkey(2)
*-- 我的小大脚.发送指令(油门, 0.5)
*-- Inkey(2)
*-- 我的小大脚.发送指令(油门, 0.9)
*-- Inkey(1)
*-- 我的小大脚.发送指令(方向, - 0.4)
*-- Inkey(8)
*-- 我的小大脚.发送指令(方向, 0)
*-- Inkey(2)
我的小大脚.发送指令(方向, 0)
我的小大脚.发送指令(油门, 0)

Cancel

Define Class 环奇小大脚 As 舵机控制
Name = "环奇小大脚"
Procedure Init()
This.COM口 = 9
This.速率 = 115200
Return DoDefault()
Endproc
Procedure 定义油门曲线()
If Not DoDefault() Then
Return .F.
Endif
*-- 油门
Insert Into 油门曲线 (通道, 位置, 脉冲宽度) Values (0, -1, 1700) && 油门 - 倒车最大
Insert Into 油门曲线 (通道, 位置, 脉冲宽度) Values (0, 0, 1500) && 油门 - 中点
Insert Into 油门曲线 (通道, 位置, 脉冲宽度) Values (0, 0.05, 1450) && 油门 - 不动的
Insert Into 油门曲线 (通道, 位置, 脉冲宽度) Values (0, 1, 1350) && 油门 - 最大
*-- 方向舵
Insert Into 油门曲线 (通道, 位置, 脉冲宽度) Values (1, -1, 1450) && 方向舵 - 最左
Insert Into 油门曲线 (通道, 位置, 脉冲宽度) Values (1, 0, 1370) && 方向舵 - 中点
Insert Into 油门曲线 (通道, 位置, 脉冲宽度) Values (1, 1, 1200) && 方向舵 - 最右
Return .T.
Endproc
Enddefine

Define Class 舵机控制 As Form
Name = "舵机控制"
COM口 = 0
速率 = 115200
Procedure Init()
This.定义油门曲线()
Return This.连接舵机控制板()
Endproc
Procedure Destory()
*-- 释放串口。
If Type("This.舵机控制板") = "O" Then
If This.舵机控制板.PortOpen Then
This.舵机控制板.PortOpen = .F.
Endif
Endif
Return .T.
Endproc
Procedure 定义油门曲线()
*-- 创建油门曲线临时表
Create Cursor 油门曲线 (通道 Integer, 位置 N(6, 4), 脉冲宽度 N(4))
Return .T.
Endproc
Procedure 连接舵机控制板()
*-- 没有“舵机控制板”就创建一个。
If Type("This.舵机控制板") "O" Then
This.AddObject("舵机控制板", "Olecontrol", "MSCommlib.MSComm")
Endif
*-- 打开串口。
If This.舵机控制板.PortOpen Then
This.舵机控制板.PortOpen = .F.
Endif
This.舵机控制板.CommPort = This.COM口
This.舵机控制板.Settings = Textmerge(">,n,8,1")
If Not This.舵机控制板.PortOpen Then
This.舵机控制板.PortOpen = .T.
Endif
Return This.舵机控制板.PortOpen
Endproc
Procedure 发送指令(通道, 位置)
Local 下限位置, 下限脉冲宽度, 上限位置, 上限脉冲宽度, 当前脉冲宽度, 串口指令代码
m.下限位置 = -1
m.下限脉冲宽度 = 500
m.上限位置 = 1
m.上限脉冲宽度 = 2500
m.当前脉冲宽度 = 1500
m.串口指令代码 = ""
*-- 1 找到当前位置最近的2个曲线值,如果找不到就取默认值 -1, 500 及 1, 2500。
*-- 2 生成指令。
*-- 3 发送给串口。
*-- 1
Select Top 1 * From 油门曲线 Where 通道 = m.通道 And 位置 = m.位置 Order By 位置 Desc Into Cursor curTemp
If Reccount("curTemp") > 0 Then
m.当前脉冲宽度 = curTemp.脉冲宽度
Else
Select Top 1 * From 油门曲线 Where 通道 = m.通道 And 位置 < m.位置 Order By 位置 Desc Into Cursor curTemp
If Reccount("curTemp") > 0 Then
m.下限位置 = curTemp.位置
m.下限脉冲宽度 = curTemp.脉冲宽度
Endif
Select Top 1 * From 油门曲线 Where 通道 = m.通道 And 位置 > m.位置 Order By 位置 Into Cursor curTemp
If Reccount("curTemp") > 0 Then
m.上限位置 = curTemp.位置
m.上限脉冲宽度 = curTemp.脉冲宽度
Endif
m.当前脉冲宽度 = Int((m.上限脉冲宽度 - m.下限脉冲宽度) / (m.上限位置 - m.下限位置) * (m.位置 - m.下限位置) + m.下限脉冲宽度)
Endif
*-- 2
m.串口指令代码 = Textmerge("#>P>")
Debugout m.串口指令代码
*-- 3
This.舵机控制板.OutBufferCount = 0
This.舵机控制板.Output = 串口指令代码 + Chr(13)
Endproc
Enddefine

看您的提问应该是不太熟悉程序编写。
这里为你推荐表控PLC,可以在不编程的情况下实现对步进电机的多种操作,最多可以同时控制4个步进电机。
表控PLC采用表格设置取代编程,进入中文的表格设置界面,只需鼠标点击就可以完成程序控制、自动控制、手动控制、定时控制、顺序控制、自定顺序控制、同时控制、独立控制、延迟控制、子程序控制、暂停控制、全停控制、逻辑控制、位置控制、循环控制、单次控制、计数控制、感应开关控制、物料检测、超时报警、不到位报警、错误处理等各种自动控制功能、长度控制、角度控制、位置控制、速度控制、方向控制、定时控制、上电回原点、自动回原点、工作结束回原点和手动回原点等动作控制。
希望我的回答对你有帮助。

#19477289064# 同学您好!咨询一下单片机遥控小车的问题~ - ******
#褚曼# PWM的占空比可以控制电机的转速,所以如果你不需要调节速度的话可以直接接高电平,89c52是没有PWM的,想用只能通过定时器模拟,如果需要调速的话还是建议使用STC12C5A60S2等增强型51,自带PWM

#19477289064# 我打算学完之后用51单片机做一个遥控小车,请问我该怎么学,有没有什么教程? - ******
#褚曼# 都是这样,万变不离其宗,单片机就是学你的编程逻辑能力,你别小看数码管显示,要是你程序写长了,动态数码管显示就会出现闪烁现象,这就是你编程要解决的问题,一步一步慢慢学,还有IIC,18b20的单线通讯,lcd屏显示,PWM直流电机驱动,步进电机驱动等

#19477289064# 如何用51编程PID实现智能小车平稳运行 - ******
#褚曼# pwmout=P*(E(0)-E(1))+I*E(0)+D*(E(0)-2*E(1)+E(2))+pwmpre;pwmpre=pwmout;E(0)是当前系统偏差,E(1)是上一次偏差,E(2)上上次偏差.P、I、D分别是比例系数、积分系数和微分系数E=SpeedSet-Speed ;SpeedSet可根据路况设置,是你期望小车行驶的速度.Speed是你当前测量的小车的实际速度

#19477289064# 51单片机智能小车的4个直流电机如何控制才不至于浪费 - ******
#褚曼# 我也是弄四驱动的,你要二驱动也是可以的,而且简单.可是四驱动却可以编码很多特技,像平行左右移动,这是二驱动完全做不到的.如果你很喜欢智能小车的特级运动,建议用四驱动的,完全不浪费.你说的拖动是有的,可是就是拖动产生的特效,建议图书馆找PWN有关的书,这个很多知识的,不是一下就可以讲完的,其实小车的拖动,你也可以自己观察那个轮子拖动了.通过占空比来调节速度.觉得好的话,就给分咯,谢谢

#19477289064# 电脑控制 51单片机小车 - ******
#褚曼# 朋友,你以为高手会来给你编写一个连要求都不完整的程序吗?回答是肯定的,除非有人在做这个题目.有吗?朋友,如果你对单片机懂的话,我可以给你一些思路,或许能帮助你.你把这个问题考虑简单化了,或许我没有完全明白你的要求1...

#19477289064# 自动寻迹智能小车怎么做啊 具体要求如下51单片机 - ******
#褚曼# 接循迹用的光电传感器,用单片机判断,驱动电机执行.传感器越多越好.以比较奇葩的单路传感器为例,0驱动左轮,1驱动右轮,就可以沿黑线一侧摇摆前进.这么简单的判断都可以不用单片机,呵呵.

#19477289064# 我想用51单片机制作小车,需要掌握单片机哪些方面的知识?(比如液晶,红外) - ******
#褚曼# 这些都是传感器与检查上面的东西啊 你先看下传感器与检查这本书 如果你想有调速的话 你可以看看 电力拖动控制 这本书 想要有反馈的话就要看自控原理了

#19477289064# 我想问一下用过51单片机做智能小车的朋友们,我用的是l9110s驱动电路, - ******
#褚曼# 电池有电没有,电池和电路间的焊点是否有虚焊,线是否断路,电路的电源部份是否有故障,是否电路功率太大,电池一上去就用完了等等,当年我我们玩智能小车的时候,也是问题多多,一个一个排除就好了

#19477289064# 基于51单片机的红外传感竞速智能小车程序? - ******
#褚曼# 我做过一个寻一条黑线的智能小车,按照你的问题一个个给你些建议吧.1. 我个人认为寻一条黑线和寻两条黑线在原理上应该是没有差别的,都是用对管来检测黑线和小车的偏差,从而知道小车当前的位置,不过常见的都是寻一个道路中间的...

#19477289064# 自己用stc89c52单片机做的小车,写了个简单的程序............ - ******
#褚曼# 你最好用单片机内部的RC震荡 不用外部晶体这样故障容易被排除晶体的问题,首先示波器检查晶体是否起震! 检查电源VCC 和GND电源是否为5V.判断单片机是否工作了?如果单片机是工作了!那就有可能是P0口的输出被拉低了! 最好把电路图发上来看看!

  • 本人想做一个 智能小车 ,基于51单片机的
  • 答:上位机基本上不需要的,除非你搞摄像头+图像处理。现在单片机做逻辑控制,是可以做到非常复杂的。在硬件设计上对传感器的选择和配置很重要。如果只想用上位机控制的话,推荐用VB + RS232的方式。初学者可以学习很快,VB很...

  • 单片机遥控小车怎么做
  • 答:当然要分步实施 ,先会驱动舵机 ,会使用电机驱动模块L298N,会无线模块的收发 最后组合一块才行 我选的小车是2 个驱动电机带舵机 电机驱动模块是L298N,无线模块是NRF24L01,单片机STC12C5A32S2,小车上用的是51最小...

  • 用单片机做智能小车,分为那几个模块分别是???
  • 答:如果只是最简单的小车,那么电源+单片机+电机+电机驱动就能搞定 单片机最简单的51就行 加上普通的直流电机 然后有电机驱动模块驱动电机(比如l298模块 有能力的话自己焊也行 不行就买吧 l298模块20—30一个)轮胎之类的可以...

  • 求简易智能小车c51程序
  • 答:简易智能小车——2003年全国大学生电子设计竞赛,谁有c51源程序啊?小弟急用!!... 简易智能小车——2003年全国大学生电子设计竞赛,谁有c51源程序啊?小弟急用!! 展开  我来答 1个回答 #热议# 牙齿是越早矫正越好吗?douniwan...

  • 基于51单片机的智能循迹小车如何实现小车的速度不会随电池的电量而变化...
  • 答:1、电池电压高的话可以用稳压的办法,如将12V电池稳压至9V用,当降到9V就要换电池或充电,保证电机驱动供电电压9V不变 2、或者就是速度闭环了,取一个低速作为目标值,保证低压时也能达到该速度 ...

  • 51单片机小车速度控制
  • 答:你好!1、建议采用PWM控制小车速度以及启停等 2、可以增加无线部分,传输PWM控制指令 3、电机驱动,可以采用L298模块 4、具体小车实物和程序,都能完成

  • 做51智能小车,4个电机,应该用多大的电源驱动电机较好,用+5V驱动不了
  • 答:看电机需要几伏工作电源了。智能小车一般5V就可以了,驱动不了说明你的驱动电路不合理。

  • 蓝牙控制51单片机智能小车
  • 答:我简单说一下原理吧,芯片需要慢慢来挑选,这个你可以自己去找,有很多;首先需要解决的是单片机控制小车的问题,要想解决这个问题,首先需要解决智能小车的操作和功能;小车必须要有前后左右控制功能、加速、减速、刹车、左转向...

  • 做了一个51单片机的避障智能小车,但是它在行驶的时候很容易打转,请问各...
  • 答:1.传感器故障 2.程序逻辑问题 3.机械结构故障 首先分析问题出在哪个环节,单独测试每一个传感器在遇到障碍和没有障碍情况下的实时输出信号是否正常,如果没有问题再测试机械结构,给电动机正常加上电源,观察小车能否走直线,...

  • 我想做个单片机控制的小车,请问怎么做
  • 答:先买车模,最好是带电机而且能转弯的那种,四五十块钱,然后网上搜一下电机驱动电路。最节约成本的是H桥,全用三极管和二极管就可以实现,网上都有电路。至于单片机的最小系统的电路相信你都会了。然后自己把电路焊好,至于...

    为传递更多家电数码信息,若有事情请联系
    数码大全网