STM32智能小车

一、电机驱动模块-L298N介绍

值得注意的是: 它已经内置的5V供电,所以不必从外面再接5V输入。届时5V端子将成为5V输出,为了保证L298N供电的稳定性(供电不足可能引起L298N的烧毁),不建议使用此5V供电作为单片机的电源。

一、12v供电:

  理论上最高可以接入35v(没试过最低和最高的电压,此处是某宝卖家提供的参数),购买直流电机前,先看清楚直流电机的相关参数和性能,如果满足L298N的使用要求,再进行购买使用,否则容易烧毁L298N。

  从12v供电口进去的电,就是输出AB口的电压。但在介绍板载5v跳帽时,会说明当输入电压小于5v和大于5v的情况。

二、供电GND:

  顾名思义,接地线。但要注意的是,此处GND不但要接驱动电源的GND,如果是和别的单片机或者其他系统连接在一起的时候一定要从这里再引出一根GND和单片机或者系统的GND相连。即整个系统的GND连接在一起,如果不连接在一起,电压没有参考电平,无法进行正常的控制。

三、5v供电:

  这是一个特殊的端口。既可以做L298N的逻辑电压的输入,也可以做外部单片机或系统的5v供电口。具体切换在板载5v跳帽中介绍。

四、板载5v跳帽:

12v供电口接≥5V的电源电压时,板载5v跳帽不拔除,5v供电口有电压输出。数值具体大小自己用万用表测,反正当12v口接7.4v时,5v供电口是输出5v的。

12v供电口≤5v的电源电压时,板载5v跳帽需要拔除,因为L298N需要逻辑驱动电压来驱动板子。此时5v供电口就变成了L298N的逻辑电压供电的输入口。供电电压在3.3v -5v之间。

四、通道AB使能跳帽:

需要PWM控制就拔除不需要PWM控制就不用拔除(老玩家就别管这句话了,就算不拔除也可以做到PWM调试的,应该懂的都懂)。

PWM控制对于电机而言表现出来现象的就是转速控制,在Arduino里用analogWrite(Pin,Value)语句来实现 [Pin(对应的针脚),Value(0-255之间的整型数字)]

五、逻辑输入:

IN1IN2为一组,对应OutA(输出A);

IN3IN4为一组,对应OutB(输出B)。

六、输出AB:

  直接接相应的输出即可。

二、利用L298N的PWM调速

L298N介绍 及PWM调速原理_*星里的博客-CSDN博客_l298n

pwm频率的计算:

F = 72M /( (ARR+1)*(PSC+1))->(ARR:自动重装载值;PSC:分频系数)

 

 向上计数,高电平有效,1~1000之间为低电平(无效电平),1001~2000为高电平(有效电平),占空比为1000/2000=50%。

三、SG90舵机使用介绍

SG90舵机使用介绍_ONE_Day|的博客-CSDN博客_sg90舵机数据手册

PWM波的频率不能太高,大约50HZ,即周期=1/频率=1/50=0.02s,20ms左右

舵机的控制一般需要一个20ms左右的时基脉冲,该脉冲的高电平部分一般为0.5ms-2.5ms范围内的角度控制脉冲部分,总间隔为2ms。以180度角度伺服为例,那么对应的控制关系是这样的:

以下是一个周期内高电平所占的时间:

0.5ms————0度; 2.5% 对应函数中占空比为250
1.0ms————45度; 5.0% 对应函数中占空比为500
1.5ms————90度; 7.5% 对应函数中占空比为750
2.0ms————135度; 10.0% 对应函数中占空比为1000
2.5ms————180度; 12.5% 对应函数中占空比为1250

四、红外对管的使用方法

 如果是FT表示可以容忍5V的电压。

如果我们用到了这些引脚,我们需要关闭JTAG-DP启用SW-DP,我们重映射配置应设置为

GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE);

何时需要设置成下拉输入?

如果你认为“出现高电平的危害更大”,那就要下拉;
如果相反,那就要上拉;
如果无法判断,上还是下,或者不上也不下,随你啦!

下拉输入:在初始化时,强行将所有引脚拉低。

蓝牙控制模块

7d3fb422d55fd2dd038ef497b7b9a54a.png

模块工作角色:从模式

串口参数:38400bits/s停止位1位无校验位

配对码:1234

设备名称:HC-05

连接模式:任意蓝牙设备连接模式

二、用USB转UART模块设置

蓝牙HC05模块探究-设置AT指令

蓝牙与USB转串口模块连接方式,RXD-TXTXD-RXVCC-VCCGND-GND

要设置蓝牙AT指令,必须让AT引脚置高,然后接上蓝牙模块,当蓝牙模块state灯变为慢闪,则表明已经进入AT模式。(j将蓝牙模块与转串口模块对插,用跳线将AT对应的引脚接VCC)这时候将转串口模块接入电脑,打开超级终端或者串口调试助手便可以开始设置AT模式。

打开串口调试助手,测试AT指令,找到相应串口号后,注意两点,

1、设置AT模式的波特率为38400

2、输入指令后加上回车后换行,发送后返回OK。

USART_IT_IDLE和USART_IT_RXNE区别
当接收到1个字节,会产生USART_IT_RXNE中断
当接收到一帧数据,就会产生USART_IT_IDLE中断

USART_GetITStatus()和USART_GetFlagStatus()的区别

  都是访问串口的SR状态寄存器,唯一不同是,USART_GetITStatus()会判断中断是否开启,如果没开启,也会返回false。

    ITStatus USART_GetITStatus(USART_TypeDef* USARTx, uint32_t USART_IT)

    该函数不仅会判断标志位是否置1,同时还会判断是否使能了相应的中断。所以在串口中断函数中,如果要获取中断标志位,通常使用该函数。------串口中断函数中使用。

  FlagStatus USART_GetFlagStatus(USART_TypeDef* USARTx, uint32_t USART_FLAG)

  该函数只判断标志位。在没有使能相应的中断时,通常使用该函数来判断标志位是否置1。------做串口轮询时使用。

OLED模块

【常用模块】OLED显示模块(原理讲解、STM32实例操作)_Yngz_Miao的博客-CSDN博客_oled原理图及引脚分析

输入捕获实验

STM32学习笔记一一输入捕获_霁风AI的博客-CSDN博客_stm32输入捕获

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1.时钟源 外部时钟 2.GPIO (实验:点亮LED灯,获取引脚的电平高低,将对应引脚置高置低)。 3.PWM-脉宽调制 主要是调节占空比(在小车中用来实现小车的加减速)。 4.TIMX定时器 5.红外遥控 主要运用了EXTI(外部中断/事件控制器),系统延时(系统滴答定时器SysTick)。 6.超声波避障 了解了超声波工作的原理,主要运用了TIM2定时器(用来定时测距),GPIO口。 7.红外探测 通过对障碍物和光的感应来返回电平的状态,从而达到避障和巡线效果。 8.测速码盘 (通过检测码盘上的凹槽数来获取脉冲数,通过计算公式得到小车当前速度) TIM3定时器(定时测速)。 9.PID算法 为了使小车的速度更快的达到目标值,获取更稳定的速度。 10.系统的使用 我们在小车内加入系统,对小车的数据获取,状态实现任务化,使小车内的运作更加有序。我们主要使用μC/OS-II系统内核来实现系统。在实现过程中,我们了解了系统的任务调度以及任务运行和处理器之间的关系(多任务同时运行)。 μC/OS-II内核中的任务控制块,任务状态,以及多任务和任务的优先级类似操作系统中的进程操作。 11.任务间的通信 主要用到信号量(主要就是PV操作 P操作:占用资源。V操作:释放资源);邮箱(邮箱可以使一个任务或者中断服务子程序向另一个任务发送指针型的变量,通常该指针指向包含了“消息”特定的数据结构)。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值