亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码
標題:
STM32超聲波+電機實現魔術手的源碼
[打印本頁]
作者:
彬Lsl
時間:
2018-7-1 10:10
標題:
STM32超聲波+電機實現魔術手的源碼
根據上篇的超聲波:
http://www.denmoz.com/bbs/dpj-126045-1.html
加上電機之后實現“魔術手”的功能,具體的感應的距離可以通過修改程序
單片機源程序如下:
#include "stm32f10x.h"
#include "interface.h"
#include "motor.h"
#include "sys.h"
#include "delay.h"
#include "LED.h"
#include "UltrasonicWave.h"
#include "usart.h"
void BarrierProc(float distance_cm);
extern u8 TIM5CH1_CAPTURE_STA; //輸入捕獲狀態
extern u16 TIM5CH1_CAPTURE_VAL; //輸入捕獲值
int main(void)
{
u32 temp=0;
float UltrasonicWave_Distance=0; //計算出的距離
delay_init();
GPIOCLKInit();
RedRayInit();
MotorInit();//必須放在TIM3_PWM_Init函數上面,因為TIM3_PWM_Init函數需要復用端口
TIM3_PWM_Init();
uart_init(115200); //串口初始化為115200
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //設置NVIC中斷分組2:2位搶占優先級,2位響應優先級
LED_Init(); //LED端口初始化
UltrasonicWave_Configuration(); //對超聲波模塊初始化
TIM5_Cap_Init(0XFFFF,72-1); //以1Mhz的頻率計數
while(1)
{
UltrasonicWave_StartMeasure();//開始測距
if(TIM5CH1_CAPTURE_STA&0X80)//成功捕獲到了一次上升沿
{
temp=TIM5CH1_CAPTURE_STA&0X3F;
temp*=65536;//溢出時間總和
temp+=TIM5CH1_CAPTURE_VAL;//得到總的高電平時間
//距離計算公式:距離=高電平持續時間*聲速/2
//即 距離= 高電平持續時間*340*100/(2*1000 000) = 高電平持續時間*170/10000
UltrasonicWave_Distance=(float)temp*170/10000;
printf("Distance:%f cm\r\n",UltrasonicWave_Distance);//打印總的高點平時間
TIM5CH1_CAPTURE_STA=0;//開啟下一次捕獲
}
BarrierProc(UltrasonicWave_Distance);
// LED0=!LED0;
// delay_ms(1000);
}
}
void BarrierProc(float distance_cm)
{
if(distance_cm <= 15 && distance_cm >= 2 )
{
CarBack();
}
else if(distance_cm >= 20 && distance_cm <= 50)
{
CarGo();
}
else
CarStop();//防震蕩
}
復制代碼
所有資料51hei提供下載:
超聲波+電機.rar
(285.23 KB, 下載次數: 15)
2018-7-1 16:29 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
歡迎光臨 (http://www.denmoz.com/bbs/)
Powered by Discuz! X3.1