1. 小车散件组装_推荐相同接线(259.104)
2. L9110s电机控制器接线(260.105)
L9110s电机模块开发
- 接通VCC,GND 模块电源指示灯亮, 以下资料来源官方,但是不对,根据下节课实际调试
- IA1输入高电平,IA1输入低电平,【OA1 OB1】电机正转;
- IA1输入低电平,IA1输入高电平,【OA1 OB1】电机反转;
- IA2输入高电平,IA2输入低电平,【OA2 OB2】电机正转;
- IA2输入低电平,IA2输入高电平,【OA2 OB2】电机反转。
- 和上官一号的接线(外加一根gnd-gnd的线:接地线,否则信号传输会有问题)
3. L9110前后左右控制小车(261.106)
- 代码(20./01. 小车L9110s电机驱动)
#include "reg52.h"
#include "intrins.h"sbit RightCtrlA = P3^2;
sbit RightCtrlB = P3^3;sbit LeftCtrlA = P3^4;
sbit LeftCtrlB = P3^5;void Delay1000ms() //@11.0592MHz
{unsigned char i, j, k;_nop_();i = 8;j = 1;k = 243;do{do{while (--k);} while (--j);} while (--i);
}void goForward(){ LeftCtrlA = 0;LeftCtrlB = 1;RightCtrlA = 0;RightCtrlB = 1;
}
void goLeft(){LeftCtrlA = 0;LeftCtrlB = 0;RightCtrlA = 0;RightCtrlB = 1;
}
void goRight(){LeftCtrlA = 0;LeftCtrlB = 1;RightCtrlA = 0;RightCtrlB = 0;
}
void goBack(){LeftCtrlA = 1;LeftCtrlB = 0;RightCtrlA = 1;RightCtrlB = 0;
}void main(){while(1){goForward();Delay1000ms();Delay1000ms();goBack();Delay1000ms();Delay1000ms();goLeft();Delay1000ms();Delay1000ms();goRight();Delay1000ms();Delay1000ms();}
}
4. 电机相关代码封装_分文件编程(262.107)
- 代码(20./02. 小车L9110s电机驱动分文件函数封装)
5. 串口控制小车(方向)(263.108)
- 串口分文件编程进行代码整合——具体过程看课程,主要考验C语言功底和代码调试能力,通过现象来改代码
- 接入蓝牙模块,通过蓝牙控制小车,实现6.6.1的课程需求,蓝牙透传太容易了。
- 添加点动控制,如果APP支持按下一直发数据、松开就停止发数据(蓝牙调试助手的自定义按键不能实现),就能实现前进按键按下后小车一直往前走的功能
-
若出现项目中找不到某个c文件,解决办法:
- 右键点击“”(已存在的文件添加至工程资料1)
- 点击丢失的文件名、Add、Close
- 成功
- 右键点击“”(已存在的文件添加至工程资料1)
-
代码(20./03. 串口控制小车)
6. 手机通过蓝牙控制小车_自定义按键(264.109)
- 再接一根线5v-VCC,开发板的5v-面包板的正极,即可让小车脱离电脑供电开发板的束缚,自由的跑起来
- 自定义按键
- 点击“设置方向按钮”
- 点击“top”
- 如下设置,确认
- 设置成功,其他按钮同理
- 取消勾选“设置方向按钮”,即可方向控制
- 点击“设置方向按钮”
7. 蓝牙小车的点动控制(265.110)
- 思路:main函数:while
- 代码(20./04. 蓝牙小车点动)
8. 串口自动发送数据测试上节课效果(266.111)
9. 软件调速(267.112)
- 原理: 全速前进是 LeftCon1A = 0 LeftCon1B = 1;完全停止是LeftCon1A = 0;LeftCon1B = 0;那么单位时
间内,比如20ms, 有15ms是前进,5ms是停止,速度就会比5ms前进,15ms停止获得的功率多,相应的速度更快 - 开发: 借用 PWM 的舵机控制代码
- 代码(20./05. PWM小车调速)
10. 左右电机的各自调速管理(268.113)
- 原理: 左轮定时器0调速,右轮定时器1调速,那么左转就是右轮速度大于左轮、右转就是左轮速度大于右轮
- 开发: 有手就行
- 代码(20./06. PWM小车差速转弯)