參加智能小車(chē)比賽,使用代碼如下 供大家參考!!!
單片機(jī)源程序如下:
- #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; //左右編碼器的脈沖計(jì)數(shù)
- int Encoder_EXTI;
- double du;
- //u8 TIM5CH1_CAPTURE_STA; //輸入捕獲狀態(tài)
- //u32 TIM5CH1_CAPTURE_VAL; //輸入捕獲值
- u8 Blue[4];
- int main(void)
- {
-
- NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//設(shè)置系統(tǒng)中斷優(yōu)先級(jí)分組2
- USART3_RX_STA=0;
- delay_init(168); //初始化延時(shí)函數(shù)
- 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) //實(shí)現(xiàn)比較值從0-300遞增,到300后從300-0遞減,循環(huán)
- {
- 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)
- {
-
- ……………………
- …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼
所有資料51hei提供下載:
藍(lán)牙遙控 編碼器 舵機(jī) 小車(chē)程序..rar
(1.87 MB, 下載次數(shù): 115)
2018-6-12 04:04 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|