• STC89C51基础及项目第13天:小车go、软件调速


    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();
    	}
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71

    4. 电机相关代码封装_分文件编程(262.107)

    • 代码(20./02. 小车L9110s电机驱动分文件函数封装)

    5. 串口控制小车(方向)(263.108)

    1. 串口分文件编程进行代码整合——具体过程看课程,主要考验C语言功底和代码调试能力,通过现象来改代码;
    2. 接入蓝牙模块,通过蓝牙控制小车,实现6.6.1的课程需求,蓝牙透传太容易了;
    3. 添加点动控制,如果APP支持按下一直发数据、松开就停止发数据(蓝牙调试助手的自定义按键不能实现),就能实现前进按键按下后小车一直往前走的功能。
    • 若出现项目中找不到某个c文件,解决办法:

      1. 右键点击“”(已存在的文件添加至工程资料1)
        在这里插入图片描述
      2. 点击丢失的文件名、Add、Close
        在这里插入图片描述
      3. 成功
        在这里插入图片描述
    • 代码(20./03. 串口控制小车)

    6. 手机通过蓝牙控制小车_自定义按键(264.109)

    • 再接一根线 5V-VCC,开发板的 5V-面包板的正极,即可让小车脱离电脑供电开发板的束缚,自由的跑起来
    • 自定义按键
      1. 点击“设置方向按钮”
        在这里插入图片描述
      2. 点击“top”
        在这里插入图片描述
      3. 如下设置,确认
        在这里插入图片描述
      4. 设置成功,其他按钮同理
        在这里插入图片描述
      5. 取消勾选“设置方向按钮”,即可方向控制
        在这里插入图片描述

    7. 蓝牙小车的点动控制(265.110)

    • 思路:main函数:while(1){stop()}
    • 代码(20./04. 蓝牙小车点动)
    #include "motor.h"
    #include "delay.h"
    #include "uart.h"
    
    void main(){
    	UartInit();
    	
    	while(1){
    		stop();
    	}
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    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小车差速转弯)
  • 相关阅读:
    部署java程序的服务器cpu过高如何排查和解决
    《吐血整理》保姆级系列教程-玩转Fiddler抓包教程(5)-Fiddler监控面板详解
    clang插件对llvm源码插桩,分析函数调用日志(2)--google镜像
    c# String.Format
    前端 CSS(一)
    VSCode很好,但我以后不会再用了
    Springboot实现拦截器功能
    position left设置居中,除了auto以外,还有什么方式
    基于JAVA旅游景区预约管理系统计算机毕业设计源码+系统+mysql数据库+lw文档+部署
    痞子衡嵌入式:在i.MXRT启动头FDCB里使能串行NOR Flash的QPI/OPI模式
  • 原文地址:https://blog.csdn.net/Jaci133/article/details/133650710