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

news2024/9/28 17:36:04

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)

  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
  • 代码(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小车差速转弯)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1073572.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

类图 UML从入门到放弃系列之二

1.劝退说明(开个玩笑) UML包含有许多小组件、修饰符以及其他小巧复杂的东西。UML的内容相当庞大,以至于你可以花大量的时间把自己修成一个UML语言律师,并能够完成所有律师能够完成的工作:编写出所有人都无法理解的文档。现在流行的敏捷开发倡…

MySQL 安装+启动+报错的解决方案

目录 一、安装准备 1.1 下载 1.2 版本说明 二、安装步骤 2.1 解压缩 2.2 配置环境变量 2.3 配置文件 2.4 安装 2.5 启动/停止服务 三、使用说明 3.1 用户名密码登录 3.1 设置用户名密码 四、卸载步骤 4.1 卸载服务 五、安装问题 六、启动问题 6.1 提示【服务无…

VS Code如何给Python配置虚拟环境

在python中,可以通过Conda创建虚拟环境,与PyCharm联合使用。今天,在VS Code 上创建虚拟环境,在虚拟环境中安装第三方库。 首先,打开一个新的空文件夹(CRM)。 然后,新建一个python文件…

自动导入时,Element-plus Message Box组件样式丢失

问题描述 当使用Element-plus ElMessageBox弹出时,样式丢失。具体表现为弹窗显示在左上角,背景页面均为透明。 解决方案 在main.ts中,引入message-box.scss,具体代码为: import element-plus/theme-chalk/src/mes…

神经网络(MLP多层感知器)

分类 神经网络可以分为多种不同的类型,下面列举一些常见的神经网络类型: 前馈神经网络(Feedforward Neural Network):前馈神经网络是最基本的神经网络类型,也是深度学习中最常见的神经网络类型。它由若干个…

算法深度解析:视频实时美颜SDK背后的技术奥秘

美颜技术已经成为了当今数字时代的一种流行趋势。无论是社交媒体上的自拍照片还是在线视频直播,人们都渴望在镜头前呈现出最佳的自己。为了满足这一需求,视频实时美颜SDK应运而生,它们背后蕴含着复杂的算法和技术,今天就让我们一同…

网安周报|Mixin Network 云服务商数据库遭到攻击,涉案金额约 2 亿美元

1、Mixin Network 云服务商数据库遭到攻击,涉案金额约 2 亿美元 Mixin Network是一个开源的数字资产点对点交易网络,今天在Twitter上宣布,由于该平台遭受了黑客攻击,存款和取款立即暂停。据报道,该攻击的目标是Mixin云…

Super-jacoco应用统计代码覆盖率及问题处理

一、原文地址 滴滴开源Super-jacoco:java代码覆盖率收集平台 - 掘金 二、背景 我要使用Super-jacoco,对手工测试,进行代码覆盖率的统计。 为什么使用Super-jacoco,而不是直接使用jacoco,因为Super-jacoco解决了增量…

13 英寸 MacBook Air 与 MacBook Pro 评比

Apple 目前销售两款笔记本电脑系列:MacBook Pro(提供13英寸 M2、14英寸 M1 Pro/Max和16 英寸 M1 Pro/Max型号)和 MacBook Air(提供13.3 英寸 M1或13.6 英寸 M2型号)。该系列中包含一系列规格相似的 13 英寸 Mac 笔记本…

Java中使用C代码

开发工具: Intellij Idea 与 Visual Studio使用方式: Visual生成.dll文件(Windows .dll文件, Linux .so文件); jdk添加.dll文件, Idea java 采用native方式注册与使用c代码.1. 如下图, 打开idea,新建class Demo, 通过命令行生成Demo.h public class Demo {public native voi…

使用kubectl连接远程Kubernetes(k8s)集群

使用kubectl连接远程Kubernetes集群 环境准备下载kubectl下载地址 安装kubectl并处理配置文件Windows的安装配置安装kubectl拉取配置文件安装kubectl拉取配置文件kubectl命令自动补全 Linux的安装配置安装kubectl拉取配置文件kubectl命令自动补全 环境准备 你需要准备一个Kube…

Centos7使用nginx搭建rtmp流媒体服务器

为什么写这篇文章 2023年10月份,公司系统中有个需求,需要使用摄像头记录工程师在维修设备时的工作状态,找到了一家做执法记录仪的厂商,通过厂商发过来的文档了解到该执法记录仪支持通过rtmp协议推流至服务器,第一次接…

redis 管道 pipeline

原生批量命令 VS pipeline 原生批量命令是原子性(mset、mget),pipeline是非原子性原生批量命令一次只能执行一种命令,pipeline支持批量执行不同的命令原生批命令是服务端实现, pipeline 需要服务端与客户端共同完成 …

锁降级 ReentrantReadWriteLock

锁降级 ReentrantReadWriteLock 所谓降级,可以通过一个例子理解,一般都是写的权限大,读的权限小,从写到读自然是降级,这是通俗的理解。 锁降级:同一个线程先获取写锁,在写锁未释放的情况下&…

零编程开发数据可视化大屏须知

随着综合分析多业务系统数据能力的提升,以及将复杂数据可视化效果的加强,数据可视化大屏越来越受到各行各业的喜爱,经常可以在各类博览中心、会议中心、监控中心场合中看到它们的身影。这些数据可视化大屏或用于展示企业经营实力,…

指定加拿大|环境科学老师获阿尔伯塔大学邀请函

U老师入选了省公派出国项目,其指定加拿大,并要求专业为世界排名领先,或者是能填补国内科研和技术空白的短板学科。我们利用广泛资源,开展精准申请,先后得到多所大学反馈,并获得4所大学的邀请函,…

【pytorch】多GPU同时训练模型

文章目录 1. 基本原理单机多卡训练教程——DP模式 2. Pytorch进行单机多卡训练步骤1. 指定GPU2. 更改模型训练方式3. 更改权重保存方式 摘要:多GPU同时训练,能够解决单张GPU显存不足问题,同时加快模型训练。 1. 基本原理 单机多卡训练教程—…

AWS AD Connector 的网络配置

配置 AWS 的 AD Connector 通常遇到的都是些网络问题,且 AD Connector 本身屏蔽了一些网络细节,使得查找root cause往往有点困难,本文就把 AD Connector 网络问题梳理一下。 首先,需要搞清楚的是:AD Connector 是 Microsoft Active Directory 的一种代理,IAM可以通过它联…

如何用CRM客户管理系统有效管理客户

客户是企业重要的收益来源和可持续发展的基础,客户转化和留存率时刻影响着企业的发展。企业要实现更多客户转化,就要科学有效地管理客户。下面说说CRM客户管理系统如何有效管理客户? 一、多渠道获取客户 CRM系统能够帮助企业进行多渠道沟通…

充气膜结构的应用领域

由于充气膜结构具有丰富多彩的造型,优异的建筑特性、结构特性和适宜的经济性等其他传统建筑无法比拟的优势,因此备受人们青睐,被应用于工业、民用、军事等许多领域中,具有广阔的应用前景。 充气膜结构的主要应用领域包括&#xff…