串口控制小车和小车PWM调速

1.串口控制小车

        1. 串口分文件编程进行代码整合,通过现象来改代码

        2.接入蓝牙模块,通过蓝牙控制小车

        3.添加点动控制,如果APP支持按下一直发数据,松开就停止发数据(蓝牙调试助手的自定义按键不能实现),就能实现前进按键按下后小车一直往前走的功能

2.如何进行小车PWM调速

        原理:全速前进是LeftCon1A = 0; LeftCon1B = 1;完全停止是LeftCon1A = 0;LeftCon1B = 0;那么单位时间内,比如20ms, 有15ms是全速前进,5ms是完全停止,速度就会比5ms全速前进,15ms完全停止获得的功率多,相应的速度更快!

总结:前进时间占比少就慢,前进时间占比多就快
 

核心代码:

        

//main.c
extern char speed;
void main()
{Time0Init();//UartInit();while(1){speed = 10;//10份单位时间全速运行,30份停止,所以慢,20ms是40份的500usDelay1000ms();Delay1000ms();speed = 20;Delay1000ms();Delay1000ms();speed = 40;Delay1000ms();Delay1000ms();}
}//time.c
#include "motor.h"
#include "reg52.h"
char speed;
char cnt = 0;
void Time0Init()
{//1. 配置定时器0工作模式位16位计时TMOD = 0x01;//2. 给初值,定一个0.5出来TL0=0x33;TH0=0xFE;//3. 开始计时TR0 = 1;TF0 = 0;//4. 打开定时器0中断ET0 = 1;//5. 打开总中断EAEA = 1;
} void Time0Handler() interrupt 1
{cnt++; //统计爆表的次数. cnt=1的时候,报表了1//重新给初值TL0=0x33;TH0=0xFE;//控制PWM波if(cnt < speed){//前进goForward();}else{//停止stop();} if(cnt == 40){//爆表40次,经过了20mscnt = 0; //当100次表示1s,重新让cnt从0开始,计算下一次的1s}
}

3.通过PWM控制小车转向

        原理: 左轮定时器0调速,右轮定时器1调速,那么左转就是右轮速度大于左轮!

        在main函数中,同时给左右轮速度,一快一慢,从而实现左前右前进
        

void main()
{Time0Init();Time1Init();//UartInit();while(1){speedLeft = 10;//10份单位时间全速运行,30份停止,所以慢,20ms是40份的500usspeedRight = 40;Delay1000ms();Delay1000ms();speedLeft = 40;speedRight = 10;Delay1000ms();Delay1000ms();}
}//time.c
#include "motor.h"
#include "reg52.h"char speedLeft;
char cntLeft = 0;
char speedRight;
char cntRight = 0;void Time1Init()
{//1. 配置定时器1工作模式位16位计时TMOD &= 0x0F;TMOD |= 0x1 << 4;//2. 给初值,定一个0.5出来TL1=0x33;TH1=0xFE;//3. 开始计时TR1 = 1;TF1 = 0;//4. 打开定时器1中断ET1 = 1;//5. 打开总中断EAEA = 1;} void Time0Init()
{//1. 配置定时器0工作模式位16位计时TMOD = 0x01;//2. 给初值,定一个0.5出来TL0=0x33;TH0=0xFE;//3. 开始计时TR0 = 1;TF0 = 0;//4. 打开定时器0中断ET0 = 1;//5. 打开总中断EAEA = 1;}void Time1Handler() interrupt 3
{cntRight++; //统计爆表的次数. cnt=1的时候,报表了1//重新给初值TL1=0x33;TH1=0xFE;//控制PWM波if(cntRight < speedRight){//右前进goForwardRight();
}else{//停止stopRight();
} if(cntRight == 40){//爆表40次,经过了20ms
cntRight = 0; //当100次表示1s,重新让cnt从0开始,计算下一次的1s}
} void Time0Handler() interrupt 1
{cntLeft++; //统计爆表的次数. cnt=1的时候,报表了1//重新给初值TL0=0x33;TH0=0xFE;//控制PWM波if(cntLeft < speedLeft){//左前进goForwardLeft();}else{//停止stopLeft();
} if(cntLeft == 40){//爆表40次,经过了20mscntLeft = 0; //当100次表示1s,重新让cnt从0开始,计算下一次的1s}
}

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

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

相关文章

随笔-我在武汉一周了

做梦一样&#xff0c;已经来武汉一周了&#xff0c;回顾一下这几天&#xff0c;还真是有意思。 周一坐了四个小时的高铁到了武汉站&#xff0c;照着指示牌打了个出租车。司机大姐开得很快&#xff0c;瞅了眼&#xff0c;最快速度到了110&#xff0c;差点把我晃晕。一下车就感觉…

计算机视觉与模式识别实验2-2 SIFT特征提取与匹配

文章目录 &#x1f9e1;&#x1f9e1;实验流程&#x1f9e1;&#x1f9e1;SIFT算法原理总结&#xff1a;实现SIFT特征检测和匹配通过RANSAC 实现图片拼接更换其他图片再次测试效果&#xff08;依次进行SIFT特征提取、RANSAC 拼接&#xff09; &#x1f9e1;&#x1f9e1;全部代…

Java编程常见问题汇总一

系列文章目录 文章目录 系列文章目录前言一、字符串连接误用二、错误的使用StringBuffer三、测试字符串相等性四、数字转换成字符串五、利用不可变对象(Immutable) 前言 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分…

浅谈防勒索病毒的关键

主机加固能否做好防勒索病毒的工作&#xff0c;一直是网络安全领域的重要议题。随着信息技术的飞速发展&#xff0c;勒索病毒等网络威胁层出不穷&#xff0c;对企业和个人数据安全构成了严重威胁。因此&#xff0c;如何通过主机加固提升安全防护能力&#xff0c;防止勒索病毒的…

【微信小程序】小锦哥小程序工具 v2.3.8.0

# 简介 小锦哥小程序工具是一款可以对微信小程序进行解密或者反编译的工具&#xff0c;通过这款工具&#xff0c;可以对别人已经发布的小程序进行解密或者是反编译&#xff0c;然后查看源代码。对于网络安全人员来说&#xff0c;可以使用该工具进行安全审计&#xff0c;发现其…

(函数)判断字符串元音字母(C语言)

一、运行结果&#xff1b; 二、源代码&#xff1b; # define _CRT_SECURE_NO_WARNINGS # include <stdio.h>//声明判断元音函数&#xff1b; void vowel(char a[100], char b[100]);int main() {//初始化变量值&#xff1b;char a[100] { 0 };char b[100] { 0 };//获取…

PR怎么剪辑短视频:成都鼎茂宏升文化传媒公司

PR怎么剪辑短视频&#xff1a;从入门到精通的剪辑技巧 在当今的媒体时代&#xff0c;短视频已经成为了人们日常生活中不可或缺的一部分。而要制作出高质量的短视频&#xff0c;熟练掌握一款强大的视频剪辑软件是必不可少的。在众多软件中&#xff0c;Adobe Premiere Pro&#…

【数据结构】图论——Prim算法和Kruskal算法

目录 Prim算法和Kruskal算法Prim算法的原理数据结构算法步骤解释算法实现代码示例 Kruskal 算法Kruskal算法的原理和步骤Kruskal算法的实现数据结构并查集操作Kruskal算法 Prim算法和Kruskal算法 文章: 【数据结构】图论&#xff08;图的储存方式&#xff0c;图的遍历算法DFS和…

Linux.用户

使用su - 切换用户 切换root时要输入密码&#xff0c;但是看不到 创建用户组 groupadd用户组名&#xff0c;用getent查看有哪些组 getent group 创建用户 在root身份中使用gentent passwd 可以查当前的用户信息 使用getent group查看有哪些组 使用chmod修改权限 快捷方法…

【算法速查】万字图解带你快速入门八大排序(下)

君兮_的个人主页 即使走的再远&#xff0c;也勿忘启程时的初心 C/C 游戏开发 Hello,米娜桑们&#xff0c;这里是君兮_&#xff0c;首先在这里祝大家中秋国庆双节同乐&#xff01;&#xff01;抓住假期的小尾巴&#xff0c;今天来把算法速查的八大排序的后续写完&#xff0c;当…

【网络技术】【Kali Linux】Wireshark嗅探(十六)TLS(传输层安全协议)报文捕获及分析

往期 Kali Linux 上的 Wireshark 嗅探实验见博客&#xff1a; 【网络技术】【Kali Linux】Wireshark嗅探&#xff08;一&#xff09;ping 和 ICMP 【网络技术】【Kali Linux】Wireshark嗅探&#xff08;二&#xff09;TCP 协议 【网络技术】【Kali Linux】Wireshark嗅探&…

Android下HWC以及drm_hwcomposer普法(下)

Android下HWC以及drm_hwcomposer普法(下) 引言 不容易啊&#xff0c;写到这里。经过前面的普法(上)&#xff0c;我相信童鞋们对HWC和drm_hwcomposer已经有了一定的认知了。谷歌出品&#xff0c;必须精品。我们前面的篇章见分析到啥来了&#xff0c;对了分析到了HwcDisplay::in…

K-POP女团X:IN现身韩K联赛 中场表演令人眼前一亮

本月1日&#xff0c;韩国K-POP女团X:IN参加了在韩国京畿道金浦Solteo足球场举办的金浦FC和全南天龙(Jeonnam Dragons)的韩亚银行K联赛2&#xff08;2024第16轮&#xff09;比赛&#xff0c;并带来了精彩的祝贺表演令人眼前一亮。 女团X:IN在比赛中场休息期间&#xff0c;通过《…

Linux配置定时任务crontab

场景 要求每个小时 定时到/home/threeinf 目录下执行 sh run.sh restart 命令 配置 1. crontab -e 编辑定时任务列表&#xff08;相当于vi /etc/crontab, 就是编辑crontab文件&#xff09; crontab -e 在文件中添加 0 * * * * cd /home/threeinf && sh run.sh re…

特征工程技巧——字符串编码成数字序列

这段时间在参加比赛&#xff0c;发现有一些比赛上公开的代码&#xff0c;其中的数据预处理步骤值得我们参考。 平常我们见到的都是数据预处理&#xff0c;现在我们来讲一下特征工程跟数据预处理的区别。 数据预处理是指对原始数据进行清洗、转换、缩放等操作&#xff0c;以便为…

扩散变压器:开创图像生成新纪元

在深度学习领域&#xff0c;变换器&#xff08;Transformer&#xff09;架构已经成为自然语言处理、视觉识别等多个领域的核心技术。最近&#xff0c;一项新的研究探索了基于变换器的一类新型扩散模型——扩散变压器&#xff08;Diffusion Transformers&#xff0c;简称DiTs&am…

VMware Workstation Pro 免费正版安装指南(非常详细)零基础入门到精通,收藏这一篇就够了

随着博通公司在2023年11月对VMware的收购和产品策略的调整&#xff0c;VMware宣布取消“永久许可证”并转向订阅制&#xff0c;这一改变引发了用户的不满。然而&#xff0c;在2024年5月14日&#xff0c;VMware发布了一个令人振奋的消息&#xff0c;宣布为个人用户免费提供两款桌…

Java编程常见问题汇总二

系列文章目录 文章目录 系列文章目录前言一、请使用XML解析器二、请使用JDom组装XML三、XML编码陷阱四、未指定字符编码五、未对数据流进行缓存 前言 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击…

跨平台,不需要下载的串口调试助手

在线串口调试助手是BBAIoT旗下的首款物联网工具&#xff0c;web端显示&#xff0c;不需要下载任何软件到电脑&#xff0c;方便快捷。 在线串口调试 链接地址&#xff1a;在线串口调试在线串口调试助手 Online serial port debugging assistanthttps://www.bbaiot.com/ 软件界…

重新定义你的上网体验,微软WowTab助你一臂之力!

大家好&#xff0c;我是 Java陈序员。 浏览器是我们日常生活工作中必备的工具软件&#xff0c;使用非常频繁。 目前很多浏览器的新标签页虽然说功能齐全&#xff0c;但是充斥着广告和各种无效的信息&#xff0c;十分影响体验&#xff01; 今天&#xff0c;给大家安利一个浏览…