参加智能小车比赛,使用代码如下 供大家参考!!!
单片机源程序如下:
- #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)
|