标题:
STM32蓝牙遥控 编码器 舵机 小车程序
[打印本页]
作者:
151125
时间:
2018-6-10 15:36
标题:
STM32蓝牙遥控 编码器 舵机 小车程序
参加智能小车比赛,使用代码如下 供大家参考!!!
单片机源程序如下:
#include "sys.h"
#define K 5.55f
#define L 3.14f
#define pwm_zhong 97.0
#define pwm_max_L 25.0
#define pwm_max_R 135.0
int CCR1_Val;
int CCR2_Val;
int Angle=87;
float Velocity,Path;
int number=0;
int Encoder_Left,Encoder_Right; //左右编码器的脉冲计数
int Encoder_EXTI;
double du;
//u8 TIM5CH1_CAPTURE_STA; //输入捕获状态
//u32 TIM5CH1_CAPTURE_VAL; //输入捕获值
u8 Blue[4];
int main(void)
{
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置系统中断优先级分组2
USART3_RX_STA=0;
delay_init(168); //初始化延时函数
uart_init(115200);//初始化串口波特率为115200
usart3_init(9600);
EXTIX_Init();
EXTI0_IRQHandler();
BEEP_Init();
oled_GPIO_init();
LCD_Init();
TIM3_PWM_Init(500-1,84-1);
TIM10_PWM_Init(500-1,84-1);
TIM11_PWM_Init(500-1,84-1);
TIM13_PWM_Init(500-1,84-1);
TIM4_PWM_Init((2000-1),840-1);
Encoder_Left=0;
Encoder_Right=0;
while(1) //实现比较值从0-300递增,到300后从300-0递减,循环
{
OLED_Dis_Float(0,0,Angle,1);
OLED_Dis_Float(0,18,Path,1);
// Printnum(18,18,23,2,2);
// LCD_Print(36,36,0,1,1);
// LCD_Print(18, 18, "mdkdkfl",7, 40);
Velocity=K*L*(Encoder_Left+Encoder_Right)/390;
if(Blue[0] == 'a')
{
Angle=100*(Blue[1]-'0')+10*(Blue[2]-'0')+(Blue[3]-'0');
PWM_Angle();
}
if(Blue[0]=='d')
{
TIM_SetCompare1(TIM3,200);
TIM_SetCompare1(TIM10,500); // 8 high 9 high
TIM_SetCompare1(TIM11,200);
TIM_SetCompare1(TIM13,500);
delay_ms(300);
Angle=30;
PWM_Angle();
delay_ms(1200);
Angle=109;
PWM_Angle();
TIM_SetCompare1(TIM3,200);
TIM_SetCompare1(TIM10,500); // 8 high 9 high
TIM_SetCompare1(TIM11,200);
TIM_SetCompare1(TIM13,500);
delay_ms(500);
TIM_SetCompare1(TIM3,0);
TIM_SetCompare1(TIM10,0); // 8 high 9 high
TIM_SetCompare1(TIM11,0);
TIM_SetCompare1(TIM13,0);
Blue[0] = 'z'; Encoder_Left=0;
number=0;
}
if(Blue[0] == 'b')
{
Angle = 100*(Blue[1]-'0')+10*(Blue[2]-'0');
Path=(10*(Blue[3]-'0'))/12;
Encoder_EXTI=Path/K/L*3900;
while(Encoder_Left<Encoder_EXTI)
{
TIM_SetCompare1(TIM3,200);
TIM_SetCompare1(TIM10,500); // 8 high 9 high
TIM_SetCompare1(TIM11,200);
TIM_SetCompare1(TIM13,500);
//
}
PWM_Angle();
delay_ms(500);
Angle=87;
PWM_Angle();
TIM_SetCompare1(TIM3,0);
TIM_SetCompare1(TIM10,0); // 8 high 9 high
TIM_SetCompare1(TIM11,0);
TIM_SetCompare1(TIM13,0);
Blue[0] = 'z'; Encoder_Left=0;
number = 0;
}
if(Blue[0] == 'p')
{
Path=(100*(Blue[1]-'0')+10*(Blue[2]-'0')+(Blue[3]-'0'))/12;
Encoder_EXTI=Path/K/L*3900;
while(Encoder_Left<Encoder_EXTI)
{
……………………
…………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
所有资料51hei提供下载:
蓝牙遥控 编码器 舵机 小车程序..rar
(1.87 MB, 下载次数: 115)
2018-6-12 04:04 上传
点击文件名下载附件
下载积分: 黑币 -5
作者:
recent
时间:
2019-8-6 17:57
好资料
作者:
鹏博士PBs
时间:
2019-8-6 20:20
感觉8051就绰绰有余了啊
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1