毕业设计|基于stm32单片机的app视频遥控抽水灭火小车设计

2023-09-19 20:10:12

1、项目简介

1.1 系统构成

本系统采用stm32单片机+esp32 cam wifi摄像头+L298N电机驱动+继电器+水泵+手机app+LED灯设计而成。

1.2 系统功能

  • 1、使用手机APP控制小车移动
  • 2、在手机APP可以查看小车上的视频
  • 3、通过手机APP可以控制水泵、LED的打开与关闭

2、部分电路设计

2.1 L298N电机驱动电路设计

L298N使用注意事项:

  • 1、当你的驱动电压(上图标识为12V输入,实际可以接受的输入范围是7-12V)为7V-12V的时候,可以使能板载的5V逻辑供电,当使用板载5V供电之后,接口中的+5V供电不要输入电压,但是可以引出5V电压供外部使用。(这种即为常规应用!)
  • 2、当驱动电压高于12V,小于等于24V(芯片手册中提出可以支持到35V,但是按照经验一般298保守应用大电压支持到24V已经很了不起!)时,比如要驱动额定电压为18V的电机。首先必须拔除板载5V输出使能的跳线帽。然后在5V输出端口外部接入5V5V使能即 一个电平为5V的控制信号,当此信号输入有效时,且电机驱动模块中电源供电正常时,电机驱动模块输出电流。否则即使电源供电正常,电机上也无电流。电压对L298N内部逻辑电路供电。(这种是高压驱动的非常规应用!)

这里只展示前轮的电机驱动电路图,后轮与前轮一样。

2.2 继电器控制电路设计

电路图如下所示:

3、部分代码展示

3.1 小车控制代码

//占空比 = TIMx_CCRx / TIMx_ARR
//moto_r:右轮电机,moto_l:左轮电机.   数值 0-100
void MOTO_PWM_Out_AB(u16 moto_A, u16 moto_B)
{
	
	TIM_OCInitTypeDef TIM_OCInitSructure;
	
	TIM_OCInitSructure.TIM_OCMode = TIM_OCMode_PWM1;
	TIM_OCInitSructure.TIM_OutputState= TIM_OutputState_Enable;
	//CH1 左前电机-A
	TIM_OCInitSructure.TIM_Pulse = moto_A;//占空比= ccr/100
	TIM_OC1Init(TIM3, &TIM_OCInitSructure);//参数初始化
	TIM_OC1PolarityConfig(TIM3, TIM_OCPreload_Enable);//开始输出pwm
	
	//CH42 右前电机-B
	TIM_OCInitSructure.TIM_Pulse = moto_B;//占空比= ccr /100
	TIM_OC2Init(TIM3, &TIM_OCInitSructure);//参数初始化
	TIM_OC2PolarityConfig(TIM3, TIM_OCPreload_Enable);//开始输出pwm
	
	TIM_ARRPreloadConfig(TIM3, ENABLE);//启动自动重装
	 
}

3.1 水泵控制代码

    //水泵控制
    switch(realy_control)
    {
      case 0x0a:    //打开水泵
        RELAY_ON
      break;
      case 0x0b:    //关闭水泵
        RELAY_OFF
      break;
      default:
        RELAY_OFF     //关闭水泵
      break;
    }

4 演示视频及代码资料获取

更多推荐

如何选择一只股票,待完善。

目录ROE(盈利能力)增长率(成长能力)收现比(营收质量)总资产周转率(经营能力)增长率(成长能力)商誉净资产比(排雷)流动比率(排雷)ROE(盈利能力)什么是ROE?ROE全名叫ReturnofEquity,翻成中文叫“股东回报率”,也叫"净资产收益率"。净资产收益率反映了一个公司的盈利能力,以及企业为股东创造价值的

简单理解事件冒泡和事件捕获

事件冒泡和事件捕获DOM事件流会依次经历3个阶段(事件也会依次触发):(1)捕获阶段:事件从文档的根节点流向目标对象。(2)当前目标阶段:在目标对象上被触发。(3)冒泡阶段:从目标对象回溯到文档的根节点。默认事件是冒泡阶段发生,如果设置了事件,那么会依次触发,内层事件执行完成,才会冒泡触发上一层。1、事件冒泡如图是3个

Vue路由与node.js环境搭建

目录前言一.Vue路由1.什么是spa1.1简介1.2spa的特点1.3spa的优势以及未来的挑战2.路由的使用2.1导入JS依赖2.2定义两个组件2.3定义组件与路径对应关系2.4通过路由关系获取路由对象2.5将对象挂载到vue实例中2.6定义触发路由事件的按钮2.7定义锚点和路由内容2.8测试效果小结二.node.

linux-gic中断分析

linux-gic中断分析这里主要分析linuxkernel中GICv3中断控制器的代码(drivers/irqchip/irq-gic-v3.c)。一、设备树先来看下中断控制器的设备树信息:gic:interrupt-controller@3400000{compatible="arm,gic-v3";#interr

Git分布式版本控制工具

概念Git是一个分布式版本控制工具,主要用于管理开发过程中的源代码文件(Java类、xml文件、html页面等),在软件开发过程中被广泛使用。开发中的实际场景1.备份2.代码还原3.协同开发4.追溯问题代码的编写人和编写时间版本控制器的方式1.集中式版本控制工具版本库是集中存放在中央服务器的,team里每个人work时

Qt(day1)

思维导图Qt实现第一个web的基础页面#include"mywnd.h"#include"ui_mywnd.h"#include<QLabel>#include<QLineEdit>#include<qpushbutton.h>MyWnd::MyWnd(QWidget*parent):QMainWindow(paren

kafka生产者异步发送、同步发送、回调异步发送,是什么情况?

目录标题一、异步发送二、同步发送三、回调异步发送Kafka是一种分布式流处理平台,它是一种高吞吐量、可扩展、可持久化的消息队列系统,用于处理和存储实时流式数据。Kafka基于发布-订阅模式,采用了分布式、多副本、分区的架构。它允许生产者将数据以消息的形式发送到Kafka集群的一个或多个主题(topic)中,而消费者可以

(五)kafka从入门到精通之topic介绍

1、kafka简介Kafka是一个流行的分布式消息系统,它的核心是一个由多个节点组成的分布式集群。在Kafka中,数据被分割成多个小块,并通过一些复杂的算法在节点之间传递。这些小块被称为KafkaTopic。2、topic知识一个Topic是一组具有相同主题的消息。可以将Topic看作是一个数据仓库,在这个仓库中存储着

【Hash表】判断有没有重复元素-力扣 217

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。推荐:kuan的首页,持续学习,不断总结,共同进步,活到老学到老导航檀越剑指大厂系列:全面总结java核心技术点,如集合,jvm,并发编程redis,kaf

ETHERCAT转ETHERCAT协议网关

JM-ECAT-ECAT产品介绍JM-ECAT-ECAT是自主研发的一款ETHERCAT从站功能的通讯网关。该产品主要功能是将2个ETHERCAT网络连接起来。本网关连接到ETHERCAT总线中做为从站使用。产品参数技术参数l网关做为ETHERCAT网络的从站,可以连接倍福、欧姆龙、基恩士等厂家的PLC。l带2个RJ4

从零开始学习软件测试-第44天笔记

adb命令adb存在于androidsdk中全称:AndroidDebugBridge(安卓调试桥)只适用于android系统adb工作原理由client、server、daemon三部分组成client:运行在电脑中,用来发送adb命令server:运行在电脑中,用来管理client和daemon之间的通信daemo

热文推荐