本實驗開發板應用的是mini版stm32f103開發板,通過紅外以實現小車循跡,同時用PWM控速,較為穩定行駛。
小車外觀
功能底板
小車外觀1 小車底板
小車外觀
紅外檢測電路
小車外觀2 紅外檢測原理圖
stm32單片機源程序如下:
- #include "led.h"
- #include "delay.h"
- #include "sys.h"
- #include "usart.h"
- #include "remote.h"
- #include "pwm.h"
- int main(void)
- {
- u16 led0pwmval=0;
- u16 led1pwmval=0;
- int left;
- int right;
- delay_init(); //延時函數初始?
- LED_Init(); //初始化與LED連接的硬件接口
- TIM1_PWM1_Init(899,0);//不分頻。PWM頻率=72000/(899+1)=80Khz
- TIM1_PWM2_Init(899,0);
- Remote_Init(); //紅外接收初始化
- while(1)
- {
- left=LEFTRECEIVE ; //左邊
- right=RIGHTRECEIVE; //右邊
- if(left==1&&right==1)
- {
- led0pwmval=450;
- led1pwmval=450;
- TIM_SetCompare1(TIM1,led0pwmval);
- TIM_SetCompare2(TIM1,led1pwmval);
- }
- if(left==0&&right==0)
- {
- led0pwmval=450;
- led1pwmval=450;
- TIM_SetCompare1(TIM1,led0pwmval);
- TIM_SetCompare2(TIM1,led0pwmval);
- }
- if(left==1&&right==0)
- {
- led0pwmval=899;
- led1pwmval=450;
- TIM_SetCompare1(TIM1,led0pwmval);
- TIM_SetCompare2(TIM1,led1pwmval);
- }
- if(left==0&&right==1)
- {
- led0pwmval=450;
- led1pwmval=899;
- TIM_SetCompare1(TIM1,led0pwmval);
- TIM_SetCompare2(TIM1,led1pwmval);
- }
-
- }
- }
復制代碼
所有資料51hei提供下載:
紅外循跡.rar
(318.74 KB, 下載次數: 335)
2018-6-3 17:17 上傳
點擊文件名下載附件
|