赞
踩
1.stm32F103核心板
2.LN298
3.12V电源
4.小车底座(电机随便,普通减速电机也可)
stm32寻迹小车(占空比)
经过测试:
1.可以进行90°直角转弯
2.直行前进偏差几乎为0
3."S"转弯不会偏离轨道
4.最大速度目前还没有具体测试,有兴趣的可以进行测试一下
5.正常上下坡没有任何问题
寻迹采用的是八路的传感器,但是只用了六个,如果说大家想用两个单路的传感器做这个也行,但是尽量把速度降下来,要不然转弯的时候容易跑偏,个人觉得用6个比较稳定。
1.主函数
// An highlighted block /*本程序用keil4编写,您如果用keil5打开会有不兼性,有可能会出现错误,可以下载这个兼容包解决!链接:https://www2.keil.com/mdk5/legacy/ */ /*********接线定义********** 八路传感器: 1号——PB13 2号——PB3 3号——PB4 6号——PB5 7号——PB6 8号——PB15 中间左侧传感器: 接开发板上的PB11 LN298接线定义: IN1——PA6 IN1——PA7 IN1——PB0 IN1——PB1 ***************************/ #include "stm32f10x.h" #include "led.h" #include "moter.h" #include "xunji.h" #include "delay.h" #include "sys.h" #include "bmp.h" #include "cs.h" //循迹检测到黑线后返回高电平 extern void xunji(void); //在这里是因为有警告,所以加上xunji的定义,避免警告 int main(void) { SystemInit(); // 配置系统时钟为72M delay_init(); //延时初始化 xunji_config(); //循迹初始化 TIM3_PWM_Init(); //电机pwm TIM3 while(1) { xunji(); //具体的逻辑在xunji.c里面,这里只是调用一下 } }
2.motor.c
#include "xunji.h" #include "moter.h" #include "delay.h" void xunji_config(void) { GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOB, ENABLE); // 使能PC端口时钟 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3 | GPIO_Pin_4 | GPIO_Pin_8 | GPIO_Pin_9| GPIO_Pin_13| GPIO_Pin_15| GPIO_Pin_11; //选择对应的引脚 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;//配置GPIO模式,输入上拉 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOB, &GPIO_InitStructure); //初始化PC端口 } void Read_xunji_Date(void) { xunji_1; xunji_2; xunji_3; xunji_4; xunji_5; xunji_6; xunji_7; }
1.下载本程序
2.https://download.csdn.net/download/weixin_52553823/20298261?spm=1001.2014.3001.5501
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。