一、电机驱动模块-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之间的整型数字)]
五、逻辑输入:
IN1和IN2为一组,对应OutA(输出A);
IN3和IN4为一组,对应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);
何时需要设置成下拉输入?
如果你认为“出现高电平的危害更大”,那就要下拉;
如果相反,那就要上拉;
如果无法判断,上还是下,或者不上也不下,随你啦!
下拉输入:在初始化时,强行将所有引脚拉低。
蓝牙控制模块
模块工作角色:从模式
串口参数: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原理图及引脚分析